From c3c16de49442a3d83d6f23c4c2b98b6dbf5dd38d Mon Sep 17 00:00:00 2001 From: Adam Blazejack Date: Mon, 17 Jul 2023 00:40:28 +0200 Subject: [PATCH] Updates --- asset-manifest.json | 18 +++++++ favicon.ico | Bin 0 -> 270398 bytes index.html | 1 + logo192.png | Bin 0 -> 5347 bytes logo512.png | Bin 0 -> 9664 bytes logo_full_icon_transparent.png | Bin 0 -> 18916 bytes manifest.json | 25 ++++++++++ robots.txt | 3 ++ static/css/main.980d44f8.css | 2 + static/css/main.980d44f8.css.map | 1 + static/js/297.7470cad2.chunk.js | 2 + static/js/297.7470cad2.chunk.js.map | 1 + static/js/787.86e4971e.chunk.js | 2 + static/js/787.86e4971e.chunk.js.map | 1 + static/js/main.83cb6605.js | 3 ++ static/js/main.83cb6605.js.LICENSE.txt | 47 ++++++++++++++++++ static/js/main.83cb6605.js.map | 1 + .../logo.6ce24c58023cc2f8fd88fe9d219db6c6.svg | 1 + 18 files changed, 108 insertions(+) create mode 100644 asset-manifest.json create mode 100644 favicon.ico create mode 100644 index.html create mode 100644 logo192.png create mode 100644 logo512.png create mode 100644 logo_full_icon_transparent.png create mode 100644 manifest.json create mode 100644 robots.txt create mode 100644 static/css/main.980d44f8.css create mode 100644 static/css/main.980d44f8.css.map create mode 100644 static/js/297.7470cad2.chunk.js create mode 100644 static/js/297.7470cad2.chunk.js.map create mode 100644 static/js/787.86e4971e.chunk.js create mode 100644 static/js/787.86e4971e.chunk.js.map create mode 100644 static/js/main.83cb6605.js create mode 100644 static/js/main.83cb6605.js.LICENSE.txt create mode 100644 static/js/main.83cb6605.js.map create mode 100644 static/media/logo.6ce24c58023cc2f8fd88fe9d219db6c6.svg diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 0000000..aecf5d2 --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,18 @@ +{ + "files": { + "main.css": "/tom_777/static/css/main.980d44f8.css", + "main.js": "/tom_777/static/js/main.83cb6605.js", + "static/js/297.7470cad2.chunk.js": "/tom_777/static/js/297.7470cad2.chunk.js", + "static/js/787.86e4971e.chunk.js": "/tom_777/static/js/787.86e4971e.chunk.js", + "static/media/logo.svg": "/tom_777/static/media/logo.6ce24c58023cc2f8fd88fe9d219db6c6.svg", + "index.html": "/tom_777/index.html", + "main.980d44f8.css.map": "/tom_777/static/css/main.980d44f8.css.map", + "main.83cb6605.js.map": "/tom_777/static/js/main.83cb6605.js.map", + "297.7470cad2.chunk.js.map": "/tom_777/static/js/297.7470cad2.chunk.js.map", + "787.86e4971e.chunk.js.map": "/tom_777/static/js/787.86e4971e.chunk.js.map" + }, + "entrypoints": [ + "static/css/main.980d44f8.css", + "static/js/main.83cb6605.js" + ] +} \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4abbae440b75aefbfaafb33f6473786da1c34f85 GIT binary patch literal 270398 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 777
\ No newline at end of file diff --git a/logo192.png b/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/logo_full_icon_transparent.png b/logo_full_icon_transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..56c824716cc9a5697d099edaa155eeefdbb2f226 GIT binary patch literal 18916 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 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/static/css/main.980d44f8.css b/static/css/main.980d44f8.css new file mode 100644 index 0000000..a68b3e0 --- /dev/null +++ b/static/css/main.980d44f8.css @@ -0,0 +1,2 @@ +body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{height:100%}.App,body{background-color:#282c34;margin:0}.App{height:100vmin;text-align:center}.App-logo{height:40vmin;pointer-events:none}.toolbar{align-self:center;flex:0 1 auto;margin-bottom:10px}.dataContainer{border-radius:12px;flex:0 1 auto;margin:10;overflow:hidden;width:100%}.search{background-color:#fff0;border-radius:10px;color:#fff;cursor:pointer;padding:5px;position:absolute;right:25px;top:25px}.logoContainer{left:25px;position:absolute;top:15px}.logoContainer img{height:55px;width:55px}.iconContainer{height:19px;width:19px}.footer{color:#eee;flex:0 1 20px;font-family:philosopher;font-size:15px}.data{flex:1 1 auto}.title{font-size:44px}.subtitle,.title{background-color:#0000;border-width:0;color:#eee;font-family:philosopher}.subtitle{font-size:18px;font-weight:400}@media (prefers-reduced-motion:no-preference){.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;border-width:0;display:flex;flex-flow:column;font-size:calc(10px + 2vmin);height:100%;justify-content:flex-start;padding-left:10px;padding-right:10px}.App-link{color:#61dafb}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.test{color:#fff;color:#87ceeb;color:#dc143c;color:#9400d3;color:#ffe1ff;color:#a020f0;color:#ffff9d;color:#ff0;color:#ffbf00;color:#adff2f;color:#00c957;color:#00008b;color:#006400;color:#00f;color:#ff2400;color:violet;color:#8a2be2;color:orange;color:#ff4500;color:indigo}.d1t1th9s{--overlay-top:var(--d1t1th9s-0);box-sizing:border-box;display:flex;flex-direction:column;font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);left:var(--d1t1th9s-1);max-height:calc(100vh - var(--d1t1th9s-5));max-width:400px;min-height:var(--d1t1th9s-4);min-width:var(--d1t1th9s-3);overflow:hidden;position:absolute;text-align:start;top:var(--d1t1th9s-2);width:-webkit-max-content;width:max-content}@-webkit-keyframes glide_fade_in-d1t1th9s{0%{opacity:0}to{opacity:100%}}@keyframes glide_fade_in-d1t1th9s{0%{opacity:0}to{opacity:100%}}.d1t1th9s.gdg-style{-webkit-animation:glide_fade_in-d1t1th9s 60ms 1;animation:glide_fade_in-d1t1th9s 60ms 1;background-color:var(--gdg-bg-cell);border-radius:2px;box-shadow:0 0 0 1px var(--gdg-accent-color),0 0 1px rgba(62,65,86,.4),0 6px 12px rgba(62,65,86,.15)}.d1t1th9s.pad{padding:var(--d1t1th9s-6) 8.5px 3px}.d1t1th9s .clip-region{border-radius:2px;display:flex;flex-direction:column;flex-grow:1;overflow-x:hidden;overflow-y:auto}.d1t1th9s .clip-region .gdg-growing-entry{height:100%}.d1t1th9s .clip-region input.gdg-input{border:0;outline:none;width:100%}.d1t1th9s .clip-region textarea.gdg-input{border:0;outline:none}.m15w2ly5{background-color:var(--gdg-bg-cell);background:linear-gradient(var(--gdg-bg-cell),var(--gdg-bg-cell-medium));border-radius:4px;bottom:44px;box-shadow:0 0 0 1px var(--gdg-border-color),0 2px 5px rgba(0,0,0,.08);overflow:hidden;position:absolute;right:44px;z-index:1}.m15w2ly5 .header{background-color:var(--gdg-bg-header);box-shadow:0 0 0 1px var(--gdg-border-color);height:4px;left:0;position:absolute;top:0;width:100%}.m15w2ly5 .locationMarker{background-color:var(--gdg-accent-light);border:1px solid var(--gdg-accent-color);position:absolute}.s1jz82f8 .dvn-scroller{overflow:var(--s1jz82f8-0);-webkit-transform:translateZ(0);transform:translateZ(0)}.s1jz82f8 .hidden{visibility:hidden}.s1jz82f8 .dvn-scroll-inner{display:flex;pointer-events:none}.s1jz82f8 .dvn-scroll-inner>*{flex-shrink:0}.s1jz82f8 .dvn-scroll-inner .dvn-spacer{flex-grow:1}.s1jz82f8 .dvn-scroll-inner .dvn-stack{display:flex;flex-direction:column}.s1jz82f8 .dvn-underlay>*{left:0;position:absolute;top:0}.s1jz82f8 canvas{outline:none}.s1jz82f8 canvas *{height:0}.sxep88s{background-color:var(--gdg-bg-cell);border:1px solid var(--gdg-border-color);border-radius:6px;color:var(--gdg-text-dark);font-size:var(--gdg-editor-font-size);padding:8px;position:absolute;right:20px;top:4px;-webkit-transform:translateX(var(--sxep88s-0));transform:translateX(var(--sxep88s-0));transition:-webkit-transform .15s;transition:transform .15s;transition:transform .15s,-webkit-transform .15s}.sxep88s .search-bar-inner{display:flex}.sxep88s .search-status{font-size:11px;padding-top:4px}.sxep88s .search-progress{background-color:var(--gdg-text-light);bottom:0;height:4px;left:0;position:absolute}.sxep88s input{background-color:var(--gdg-bg-cell);border:0;color:var(--gdg-textDark);outline:none;width:220px}.sxep88s button{align-items:center;background:none;border:none;color:var(--gdg-text-medium);cursor:pointer;display:flex;height:24px;justify-content:center;outline:none;padding:0;width:24px}.sxep88s button:hover{color:var(--gdg-text-dark)}.sxep88s button .button-icon{height:16px;width:16px}.sxep88s button:disabled{opacity:.4;pointer-events:none}.r1kzy40b{background-color:var(--gdg-bg-header-has-focus);border:none;border-radius:9px;box-shadow:0 0 0 1px var(--gdg-border-color);color:var(--gdg-text-group-header);flex-grow:1;font:var(--gdg-header-font-style) var(--gdg-font-family);min-height:var(--r1kzy40b-0);outline:none;padding:0 8px}.c1sqdbw3{align-items:center;background-color:var(--gdg-bg-header);display:flex;padding:0 8px}.wzg2m5k{contain:strict;height:var(--wzg2m5k-1);max-height:100%;max-width:100%;min-height:10px;min-width:10px;overflow:hidden;overflow:clip;position:relative;width:var(--wzg2m5k-0)}.wzg2m5k>:first-child{height:100%;left:0;position:absolute;top:0;width:100%}.b1bqsp5z{display:flex;flex-wrap:wrap}.b1bqsp5z .boe-bubble{align-items:center;background-color:var(--gdg-bg-bubble);border-radius:100px;color:var(--gdg-text-dark);display:flex;height:20px;justify-content:center;margin:2px;padding:0 8px}.b1bqsp5z textarea{height:0;left:0;opacity:0;position:absolute;top:0;width:0}.df2kt4a{display:flex;flex-wrap:wrap}.df2kt4a .doe-bubble{align-items:center;background-color:var(--gdg-bg-cell);border-radius:100px;border-radius:6px;box-shadow:0 0 1px rgba(62,65,86,.4),0 1px 3px rgba(62,65,86,.4);color:var(--gdg-text-dark);display:flex;height:24px;justify-content:center;margin:2px;padding:0 8px}.df2kt4a .doe-bubble img{height:16px;margin-right:4px;object-fit:contain}.df2kt4a textarea{height:0;left:0;opacity:0;position:absolute;top:0;width:0}.i1eozt10{display:flex;height:100%}.i1eozt10 .centering-container{align-items:center;display:flex;height:100%;justify-content:center}.i1eozt10 .centering-container canvas,.i1eozt10 .centering-container img{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;-webkit-user-select:none;user-select:none}.i1eozt10 .centering-container canvas{max-width:380px}.i1eozt10 .edit-icon{align-items:center;color:var(--gdg-accent-color);cursor:pointer;display:flex;height:48px;justify-content:center;position:absolute;right:0;top:12px;width:48px}.i1eozt10 .edit-icon>*{height:24px;width:24px}.i1eozt10 textarea{height:0;left:0;opacity:0;position:absolute;top:0;width:0}.mlbeo71{-webkit-touch-callout:default;padding-top:6px;word-break:break-word}.mlbeo71>*{margin:0}.mlbeo71 :last-child{margin-bottom:0}.ijuk0po,.mlbeo71 p img{width:100%}.ijuk0po{background-color:initial;border:0;border-radius:0;bottom:0;color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);height:100%;left:0;line-height:16px;margin:0;min-width:100%;overflow:hidden;padding:0;position:absolute;resize:none;right:0;top:0;white-space:pre-wrap}.ijuk0po::-webkit-input-placeholder{color:var(--gdg-text-light)}.ijuk0po::placeholder{color:var(--gdg-text-light)}.invalid .ijuk0po{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:#d60606}.saq3p5l{word-wrap:break-word;color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);line-height:16px;margin:0;max-width:100%;min-width:100%;padding:0 0 2px;visibility:hidden;white-space:pre-wrap;width:-webkit-max-content;width:max-content}.gf8vzix{margin-top:6px;position:relative}.mdwzdl1{align-items:flex-start;color:var(--gdg-text-dark);display:flex;justify-content:space-between;min-width:var(--mdwzdl1-0);position:relative;width:100%}.mdwzdl1 .gf8vzix{flex-shrink:1;min-width:0}.mdwzdl1 .spacer{flex:1 1}.mdwzdl1 .edit-icon{align-items:center;border-radius:6px;color:var(--gdg-accent-color);cursor:pointer;display:flex;flex-shrink:0;height:24px;justify-content:center;padding:0;position:relative;transition:all "0.125s ease";width:24px}.mdwzdl1 .edit-icon>*{height:16px;width:16px}.mdwzdl1 .edit-hover:hover{background-color:var(--gdg-accent-light);transition:background-color .15s}.mdwzdl1 .checkmark-hover:hover{background-color:var(--gdg-accent-color);color:#fff}.mdwzdl1 .md-edit-textarea{height:0;left:0;margin-top:25px;opacity:0;padding:0;position:relative;top:0;width:0}.mdwzdl1 .ml-6{margin-left:6px}.n1czszh3{display:flex;margin:6px 0 3px}.n1czszh3,.n1czszh3>input{color:var(--gdg-text-dark)}.n1czszh3>input{background-color:var(--gdg-bg-cell);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);padding:0}.uf0sjo8{align-items:center;display:flex;flex-grow:1;min-height:21px}.uf0sjo8 .link-area{color:var(--gdg-link-color);cursor:pointer;flex-grow:1;flex-shrink:1;margin-right:8px;overflow:hidden;-webkit-text-decoration:underline!important;text-decoration:underline!important;text-overflow:ellipsis;white-space:nowrap}.uf0sjo8 .edit-icon{align-items:center;color:var(--gdg-accent-color);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;width:32px}.uf0sjo8 .edit-icon>*{height:24px;width:24px}.uf0sjo8 textarea{height:0;left:0;opacity:0;position:absolute;top:0;width:0} +/*# sourceMappingURL=main.980d44f8.css.map*/ \ No newline at end of file diff --git a/static/css/main.980d44f8.css.map b/static/css/main.980d44f8.css.map new file mode 100644 index 0000000..bbcf6df --- /dev/null +++ b/static/css/main.980d44f8.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.980d44f8.css","mappings":"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","sources":["index.css","App.css","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/data-grid-overlay-editor-style.tsx","../node_modules/@glideapps/glide-data-grid/dist/index.css","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/scrolling-data-grid/scrolling-data-grid.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/scrolling-data-grid/infinite-scroller.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-search/data-grid-search-style.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor/group-rename.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor-container/data-grid-container.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/bubbles-overlay-editor-style.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/drilldown-overlay-editor.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/image-overlay-editor-style.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/markdown-div/private/markdown-container.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/growing-entry/growing-entry-style.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/markdown-overlay-editor-style.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/number-overlay-editor-style.tsx","../../../../../../../home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/uri-overlay-editor-style.tsx"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","body {\n background-color: #282c34;\n height: 100%;\n margin: 0;\n}\n\n.App {\n text-align: center;\n background-color: #282c34;\n height: 100vmin;\n margin: 0;\n}\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n.toolbar {\n /* position: relative; */\n /* top: -32px; */\n align-self: center;\n flex: 0 1 auto;\n margin-bottom: 10px;\n}\n\n.dataContainer {\n margin: 10;\n flex: 0 1 auto;\n width:100%;\n border-radius: 12px;\n overflow: hidden;\n}\n\n.search {\n background-color: #fff0;\n color: white;\n padding: 5px 5px;\n border-radius: 10px;\n cursor: pointer;\n\n position: absolute;\n right: 25px;\n top: 25px;\n}\n\n.logoContainer {\n position: absolute;\n left: 25px;\n top: 15px;\n}\n\n.logoContainer img {\n height: 55px;\n width: 55px;\n}\n\n.iconContainer {\n height: 19px;\n width: 19px;\n}\n\n.footer {\n flex: 0 1 20px;\n font-family: 'philosopher';\n color:#eee;\n font-size: 15px;\n}\n\n.data {\n flex: 1 1 auto;\n}\n\n.title {\n background-color: #0000;\n border-width: 0px;\n color:#eee;\n font-size: 44px;\n font-family: 'philosopher';\n}\n\n.subtitle {\n background-color: #0000;\n border-width: 0px;\n color:#eee;\n font-size: 18px;\n font-family: 'philosopher';\n font-weight: 400;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.App-header {\n background-color: #282c34;\n /* min-height: 100vh; */\n display: flex;\n /* flex-direction: column; */\n align-items: center;\n justify-content: flex-start;\n font-size: calc(10px + 2vmin);\n /* color: white; */\n border-width: 0px;\n\n display: flex;\n flex-flow: column;\n height: 100%;\n\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.App-link {\n color: #61dafb;\n}\n\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n.test {\ncolor: #FFFFFF;\ncolor: #87CEEB;\ncolor: #DC143C;\ncolor: #9400D3;\ncolor: #FFA500;\ncolor: #FFE1FF;\ncolor: #FFBF00;\ncolor: #A020F0;\ncolor: #4B0082;\ncolor: #FFFF00;\ncolor: #FFFF9D;\ncolor: #FFFF00;\ncolor: #0000FF;\ncolor: #00C957;\ncolor: #FF2400;\ncolor: #FF4500;\ncolor: #FFA500;\ncolor: #FFBF00;\ncolor: #ADFF2F;\ncolor: #ADFF2F;\ncolor: #EE82EE;\ncolor: #00C957;\ncolor: #00008B;\ncolor: #006400;\ncolor: #0000FF;\ncolor: #4B0082;\ncolor: #FF2400;\ncolor: #EE82EE;\ncolor: #8A2BE2;\ncolor: #FFA500;\ncolor: #FF4500;;\ncolor: #4B0082;;\n}","import { styled } from \"@linaria/react\";\nexport const DataGridOverlayEditorStyle = styled.div`\n position: absolute;\n\n display: flex;\n flex-direction: column;\n overflow: hidden;\n box-sizing: border-box;\n\n --overlay-top: ${(p) => p.targetY}px;\n\n left: ${(p) => p.targetX - 1}px;\n top: ${(p) => p.targetY - 1}px;\n min-width: ${(p) => p.targetWidth + 2}px;\n min-height: ${(p) => p.targetHeight + 2}px;\n width: max-content;\n max-width: 400px;\n max-height: calc(100vh - ${(p) => p.targetY + 10}px);\n\n font-family: var(--gdg-font-family);\n font-size: var(--gdg-editor-font-size);\n\n @keyframes glide_fade_in {\n from {\n opacity: 0%;\n }\n\n to {\n opacity: 100%;\n }\n }\n\n &.gdg-style {\n border-radius: 2px;\n background-color: var(--gdg-bg-cell);\n\n box-shadow: 0 0 0 1px var(--gdg-accent-color), 0px 0px 1px rgba(62, 65, 86, 0.4),\n 0px 6px 12px rgba(62, 65, 86, 0.15);\n\n animation: glide_fade_in 60ms 1;\n }\n\n &.pad {\n padding: ${(p) => Math.max(0, (p.targetHeight - 28) / 2)}px 8.5px 3px;\n }\n\n .clip-region {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n border-radius: 2px;\n flex-grow: 1;\n\n .gdg-growing-entry {\n height: 100%;\n }\n\n & input.gdg-input {\n width: 100%;\n border: none;\n border-width: 0;\n outline: none;\n }\n\n & textarea.gdg-input {\n border: none;\n border-width: 0;\n outline: none;\n }\n }\n\n text-align: start;\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWdyaWQtb3ZlcmxheS1lZGl0b3IvZGF0YS1ncmlkLW92ZXJsYXktZWRpdG9yLXN0eWxlLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gICAgdGFyZ2V0WDogbnVtYmVyO1xuICAgIHRhcmdldFk6IG51bWJlcjtcbiAgICB0YXJnZXRXaWR0aDogbnVtYmVyO1xuICAgIHRhcmdldEhlaWdodDogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IERhdGFHcmlkT3ZlcmxheUVkaXRvclN0eWxlID0gc3R5bGVkLmRpdjxQcm9wcz5gXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC0tb3ZlcmxheS10b3A6ICR7cCA9PiBwLnRhcmdldFl9cHg7XG5cbiAgICBsZWZ0OiAke3AgPT4gcC50YXJnZXRYIC0gMX1weDtcbiAgICB0b3A6ICR7cCA9PiBwLnRhcmdldFkgLSAxfXB4O1xuICAgIG1pbi13aWR0aDogJHtwID0+IHAudGFyZ2V0V2lkdGggKyAyfXB4O1xuICAgIG1pbi1oZWlnaHQ6ICR7cCA9PiBwLnRhcmdldEhlaWdodCArIDJ9cHg7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICR7cCA9PiBwLnRhcmdldFkgKyAxMH1weCk7XG5cbiAgICBmb250LWZhbWlseTogdmFyKC0tZ2RnLWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXNpemU6IHZhcigtLWdkZy1lZGl0b3ItZm9udC1zaXplKTtcblxuICAgIEBrZXlmcmFtZXMgZ2xpZGVfZmFkZV9pbiB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgb3BhY2l0eTogMCU7XG4gICAgICAgIH1cblxuICAgICAgICB0byB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5nZGctc3R5bGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1iZy1jZWxsKTtcblxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tZ2RnLWFjY2VudC1jb2xvciksIDBweCAwcHggMXB4IHJnYmEoNjIsIDY1LCA4NiwgMC40KSxcbiAgICAgICAgICAgIDBweCA2cHggMTJweCByZ2JhKDYyLCA2NSwgODYsIDAuMTUpO1xuXG4gICAgICAgIGFuaW1hdGlvbjogZ2xpZGVfZmFkZV9pbiA2MG1zIDE7XG4gICAgfVxuXG4gICAgJi5wYWQge1xuICAgICAgICBwYWRkaW5nOiAke3AgPT4gTWF0aC5tYXgoMCwgKHAudGFyZ2V0SGVpZ2h0IC0gMjgpIC8gMil9cHggOC41cHggM3B4O1xuICAgIH1cblxuICAgIC5jbGlwLXJlZ2lvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgLmdkZy1ncm93aW5nLWVudHJ5IHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYgaW5wdXQuZ2RnLWlucHV0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYgdGV4dGFyZWEuZ2RnLWlucHV0IHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcbmA7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQVFPLGFBQU0sNkJBQTZCLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVE1QixPQUFLLEVBQUU7QUFBQTtBQUFBLFlBRWhCLE9BQUssRUFBRSxVQUFVO0FBQUEsV0FDbEIsT0FBSyxFQUFFLFVBQVU7QUFBQSxpQkFDWCxPQUFLLEVBQUUsY0FBYztBQUFBLGtCQUNwQixPQUFLLEVBQUUsZUFBZTtBQUFBO0FBQUE7QUFBQSwrQkFHVCxPQUFLLEVBQUUsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBMEI3QixPQUFLLEtBQUssSUFBSSxHQUFJLEdBQUUsZUFBZSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/","/* linaria:data-grid-overlay-editor-style_115vs9w.linaria.css */\n.d1t1th9s {\n position: absolute;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-flex-direction: column;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow: hidden;\n box-sizing: border-box;\n --overlay-top:var(--d1t1th9s-0);\n left: var(--d1t1th9s-1);\n top: var(--d1t1th9s-2);\n min-width: var(--d1t1th9s-3);\n min-height: var(--d1t1th9s-4);\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n max-width: 400px;\n max-height: calc(100vh - var(--d1t1th9s-5));\n font-family: var(--gdg-font-family);\n font-size: var(--gdg-editor-font-size);\n text-align: start;\n}\n@-webkit-keyframes glide_fade_in-d1t1th9s {\n from {\n opacity: 0%;\n }\n to {\n opacity: 100%;\n }\n}\n@keyframes glide_fade_in-d1t1th9s {\n from {\n opacity: 0%;\n }\n to {\n opacity: 100%;\n }\n}\n.d1t1th9s.gdg-style {\n border-radius: 2px;\n background-color: var(--gdg-bg-cell);\n box-shadow:\n 0 0 0 1px var(--gdg-accent-color),\n 0px 0px 1px rgba(62, 65, 86, 0.4),\n 0px 6px 12px rgba(62, 65, 86, 0.15);\n -webkit-animation: glide_fade_in-d1t1th9s 60ms 1;\n animation: glide_fade_in-d1t1th9s 60ms 1;\n}\n.d1t1th9s.pad {\n padding: var(--d1t1th9s-6) 8.5px 3px;\n}\n.d1t1th9s .clip-region {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-flex-direction: column;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n border-radius: 2px;\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.d1t1th9s .clip-region .gdg-growing-entry {\n height: 100%;\n}\n.d1t1th9s .clip-region input.gdg-input {\n width: 100%;\n border: none;\n border-width: 0;\n outline: none;\n}\n.d1t1th9s .clip-region textarea.gdg-input {\n border: none;\n border-width: 0;\n outline: none;\n}\n\n/* linaria:scrolling-data-grid_zcytub.linaria.css */\n.m15w2ly5 {\n position: absolute;\n right: 44px;\n bottom: 44px;\n background-color: var(--gdg-bg-cell);\n background: linear-gradient(var(--gdg-bg-cell), var(--gdg-bg-cell-medium));\n border-radius: 4px;\n z-index: 1;\n box-shadow: 0 0 0 1px var(--gdg-border-color), 0 2px 5px rgba(0, 0, 0, 0.08);\n overflow: hidden;\n}\n.m15w2ly5 .header {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 4px;\n background-color: var(--gdg-bg-header);\n box-shadow: 0 0 0 1px var(--gdg-border-color);\n}\n.m15w2ly5 .locationMarker {\n position: absolute;\n border: 1px solid var(--gdg-accent-color);\n background-color: var(--gdg-accent-light);\n}\n\n/* linaria:infinite-scroller_1qseojb.linaria.css */\n.s1jz82f8 .dvn-scroller {\n overflow: var(--s1jz82f8-0);\n -webkit-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n}\n.s1jz82f8 .hidden {\n visibility: hidden;\n}\n.s1jz82f8 .dvn-scroll-inner {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n pointer-events: none;\n}\n.s1jz82f8 .dvn-scroll-inner > * {\n -webkit-flex-shrink: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.s1jz82f8 .dvn-scroll-inner .dvn-spacer {\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.s1jz82f8 .dvn-scroll-inner .dvn-stack {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-flex-direction: column;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.s1jz82f8 .dvn-underlay > * {\n position: absolute;\n left: 0;\n top: 0;\n}\n.s1jz82f8 canvas {\n outline: none;\n}\n.s1jz82f8 canvas * {\n height: 0;\n}\n\n/* linaria:data-grid-search-style_jgiiup.linaria.css */\n.sxep88s {\n position: absolute;\n top: 4px;\n right: 20px;\n background-color: var(--gdg-bg-cell);\n color: var(--gdg-text-dark);\n padding: 8px;\n border: 1px solid var(--gdg-border-color);\n border-radius: 6px;\n font-size: var(--gdg-editor-font-size);\n -webkit-transform: translateX(var(--sxep88s-0));\n -ms-transform: translateX(var(--sxep88s-0));\n transform: translateX(var(--sxep88s-0));\n -webkit-transition: -webkit-transform 0.15s;\n -webkit-transition: transform 0.15s;\n transition: transform 0.15s;\n}\n.sxep88s .search-bar-inner {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n}\n.sxep88s .search-status {\n padding-top: 4px;\n font-size: 11px;\n}\n.sxep88s .search-progress {\n position: absolute;\n height: 4px;\n left: 0;\n bottom: 0;\n background-color: var(--gdg-text-light);\n}\n.sxep88s input {\n width: 220px;\n color: var(--gdg-textDark);\n background-color: var(--gdg-bg-cell);\n border: none;\n border-width: 0;\n outline: none;\n}\n.sxep88s button {\n width: 24px;\n height: 24px;\n padding: 0;\n border: none;\n outline: none;\n background: none;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n cursor: pointer;\n color: var(--gdg-text-medium);\n}\n.sxep88s button:hover {\n color: var(--gdg-text-dark);\n}\n.sxep88s button .button-icon {\n width: 16px;\n height: 16px;\n}\n.sxep88s button:disabled {\n opacity: 0.4;\n pointer-events: none;\n}\n\n/* linaria:group-rename_yc2zuw.linaria.css */\n.r1kzy40b {\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n border: none;\n outline: none;\n background-color: var(--gdg-bg-header-has-focus);\n border-radius: 9px;\n padding: 0 8px;\n box-shadow: 0 0 0 1px var(--gdg-border-color);\n color: var(--gdg-text-group-header);\n min-height: var(--r1kzy40b-0);\n font: var(--gdg-header-font-style) var(--gdg-font-family);\n}\n.c1sqdbw3 {\n padding: 0 8px;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n background-color: var(--gdg-bg-header);\n}\n\n/* linaria:data-grid-container_gfrgfn.linaria.css */\n.wzg2m5k {\n position: relative;\n min-width: 10px;\n min-height: 10px;\n max-width: 100%;\n max-height: 100%;\n width: var(--wzg2m5k-0);\n height: var(--wzg2m5k-1);\n overflow: hidden;\n overflow: clip;\n contain: strict;\n}\n.wzg2m5k > :first-child {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n\n/* linaria:bubbles-overlay-editor-style_1022dut.linaria.css */\n.b1bqsp5z {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.b1bqsp5z .boe-bubble {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n border-radius: 100px;\n padding: 0 8px;\n height: 20px;\n background-color: var(--gdg-bg-bubble);\n color: var(--gdg-text-dark);\n margin: 2px;\n}\n.b1bqsp5z textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n opacity: 0;\n}\n\n/* linaria:drilldown-overlay-editor_1gv6dry.linaria.css */\n.df2kt4a {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.df2kt4a .doe-bubble {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n border-radius: 100px;\n padding: 0 8px;\n height: 24px;\n background-color: var(--gdg-bg-cell);\n color: var(--gdg-text-dark);\n margin: 2px;\n border-radius: 6px;\n box-shadow: 0 0 1px rgba(62, 65, 86, 0.4), 0 1px 3px rgba(62, 65, 86, 0.4);\n}\n.df2kt4a .doe-bubble img {\n height: 16px;\n object-fit: contain;\n margin-right: 4px;\n}\n.df2kt4a textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n opacity: 0;\n}\n\n/* linaria:image-overlay-editor-style_sojiwi.linaria.css */\n.i1eozt10 {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n}\n.i1eozt10 .centering-container {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n height: 100%;\n}\n.i1eozt10 .centering-container img,\n.i1eozt10 .centering-container canvas {\n max-height: calc(100vh - var(--overlay-top) - 20px);\n object-fit: contain;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.i1eozt10 .centering-container canvas {\n max-width: 380px;\n}\n.i1eozt10 .edit-icon {\n position: absolute;\n top: 12px;\n right: 0;\n width: 48px;\n height: 48px;\n color: var(--gdg-accent-color);\n cursor: pointer;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.i1eozt10 .edit-icon > * {\n width: 24px;\n height: 24px;\n}\n.i1eozt10 textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n opacity: 0;\n}\n\n/* linaria:markdown-container_kvmc63.linaria.css */\n.mlbeo71 {\n word-break: break-word;\n -webkit-touch-callout: default;\n padding-top: 6px;\n}\n.mlbeo71 > * {\n margin: 0;\n}\n.mlbeo71 *:last-child {\n margin-bottom: 0;\n}\n.mlbeo71 p img {\n width: 100%;\n}\n\n/* linaria:growing-entry-style_ycxqui.linaria.css */\n.ijuk0po {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n border-radius: 0px;\n resize: none;\n white-space: pre-wrap;\n min-width: 100%;\n overflow: hidden;\n border: 0;\n background-color: transparent;\n font-size: var(--gdg-editor-font-size);\n line-height: 16px;\n font-family: var(--gdg-font-family);\n color: var(--gdg-text-dark);\n padding: 0;\n margin: 0;\n}\n.ijuk0po::-webkit-input-placeholder {\n color: var(--gdg-text-light);\n}\n.ijuk0po::-moz-placeholder {\n color: var(--gdg-text-light);\n}\n.ijuk0po:-ms-input-placeholder {\n color: var(--gdg-text-light);\n}\n.ijuk0po::placeholder {\n color: var(--gdg-text-light);\n}\n.invalid .ijuk0po {\n -webkit-text-decoration: underline;\n text-decoration: underline;\n -webkit-text-decoration-color: #d60606;\n text-decoration-color: #d60606;\n}\n.saq3p5l {\n visibility: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n max-width: 100%;\n min-width: 100%;\n font-size: var(--gdg-editor-font-size);\n line-height: 16px;\n font-family: var(--gdg-font-family);\n color: var(--gdg-text-dark);\n padding: 0;\n margin: 0;\n padding-bottom: 2px;\n}\n.gf8vzix {\n position: relative;\n margin-top: 6px;\n}\n\n/* linaria:markdown-overlay-editor-style_nbv04l.linaria.css */\n.mdwzdl1 {\n min-width: var(--mdwzdl1-0);\n width: 100%;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-align-items: flex-start;\n -webkit-box-align: flex-start;\n -ms-flex-align: flex-start;\n align-items: flex-start;\n -webkit-box-pack: justify;\n -webkit-justify-content: space-between;\n -ms-flex-pack: justify;\n justify-content: space-between;\n position: relative;\n color: var(--gdg-text-dark);\n}\n.mdwzdl1 .gf8vzix {\n -webkit-flex-shrink: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n min-width: 0;\n}\n.mdwzdl1 .spacer {\n -webkit-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.mdwzdl1 .edit-icon {\n position: relative;\n cursor: pointer;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n color: var(--gdg-accent-color);\n padding: 0;\n height: 24px;\n width: 24px;\n -webkit-flex-shrink: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -webkit-transition: all \"0.125s ease\";\n transition: all \"0.125s ease\";\n border-radius: 6px;\n}\n.mdwzdl1 .edit-icon > * {\n width: 16px;\n height: 16px;\n}\n.mdwzdl1 .edit-hover:hover {\n background-color: var(--gdg-accent-light);\n -webkit-transition: background-color 150ms;\n transition: background-color 150ms;\n}\n.mdwzdl1 .checkmark-hover:hover {\n color: #ffffff;\n background-color: var(--gdg-accent-color);\n}\n.mdwzdl1 .md-edit-textarea {\n position: relative;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n margin-top: 25px;\n opacity: 0;\n padding: 0;\n}\n.mdwzdl1 .ml-6 {\n margin-left: 6px;\n}\n\n/* linaria:number-overlay-editor-style_1i1z3n.linaria.css */\n.n1czszh3 {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n margin: 6px 0 3px;\n color: var(--gdg-text-dark);\n}\n.n1czszh3 > input {\n font-size: var(--gdg-editor-font-size);\n padding: 0;\n font-family: var(--gdg-font-family);\n color: var(--gdg-text-dark);\n background-color: var(--gdg-bg-cell);\n}\n\n/* linaria:uri-overlay-editor-style_nguq6d.linaria.css */\n.uf0sjo8 {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n min-height: 21px;\n}\n.uf0sjo8 .link-area {\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -webkit-flex-shrink: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n cursor: pointer;\n margin-right: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--gdg-link-color);\n -webkit-text-decoration: underline !important;\n text-decoration: underline !important;\n}\n.uf0sjo8 .edit-icon {\n -webkit-flex-shrink: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 32px;\n color: var(--gdg-accent-color);\n cursor: pointer;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-align-items: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.uf0sjo8 .edit-icon > * {\n width: 24px;\n height: 24px;\n}\n.uf0sjo8 textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n opacity: 0;\n}\n","import * as React from \"react\";\nimport { styled } from \"@linaria/react\";\nimport DataGridDnd from \"../data-grid-dnd/data-grid-dnd\";\nimport { InfiniteScroller } from \"./infinite-scroller\";\nimport clamp from \"lodash/clamp.js\";\nconst MinimapStyle = styled.div`\n position: absolute;\n right: 44px;\n bottom: 44px;\n background-color: var(--gdg-bg-cell);\n background: linear-gradient(var(--gdg-bg-cell), var(--gdg-bg-cell-medium));\n border-radius: 4px;\n z-index: 1;\n box-shadow: 0 0 0 1px var(--gdg-border-color), 0 2px 5px rgba(0, 0, 0, 0.08);\n\n overflow: hidden;\n\n .header {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 4px;\n background-color: var(--gdg-bg-header);\n box-shadow: 0 0 0 1px var(--gdg-border-color);\n }\n\n .locationMarker {\n position: absolute;\n\n border: 1px solid var(--gdg-accent-color);\n background-color: var(--gdg-accent-light);\n }\n`;\nconst GridScroller = (p) => {\n const {\n columns,\n rows,\n rowHeight,\n headerHeight,\n groupHeaderHeight,\n enableGroups,\n freezeColumns,\n experimental,\n clientSize,\n className,\n onVisibleRegionChanged,\n scrollToEnd,\n scrollRef,\n preventDiagonalScrolling,\n rightElement,\n rightElementProps,\n overscrollX,\n overscrollY,\n showMinimap = false,\n initialSize,\n smoothScrollX = false,\n smoothScrollY = false,\n isDraggable\n } = p;\n const { paddingRight, paddingBottom } = experimental ?? {};\n const [clientWidth, clientHeight] = clientSize;\n const last = React.useRef();\n const lastX = React.useRef();\n const lastY = React.useRef();\n const lastSize = React.useRef();\n const width = React.useMemo(() => {\n let r = Math.max(0, overscrollX ?? 0);\n for (const c of columns) {\n r += c.width;\n }\n return r;\n }, [columns, overscrollX]);\n let height = enableGroups ? headerHeight + groupHeaderHeight : headerHeight;\n if (typeof rowHeight === \"number\") {\n height += rows * rowHeight;\n } else {\n for (let r = 0; r < rows; r++) {\n height += rowHeight(r);\n }\n }\n if (overscrollY !== void 0) {\n height += overscrollY;\n }\n const lastArgs = React.useRef();\n const processArgs = React.useCallback(() => {\n if (lastArgs.current === void 0)\n return;\n const args = { ...lastArgs.current };\n let x = 0;\n let tx = args.x < 0 ? -args.x : 0;\n let cellRight = 0;\n let cellX = 0;\n args.x = args.x < 0 ? 0 : args.x;\n let stickyColWidth = 0;\n for (let i = 0; i < freezeColumns; i++) {\n stickyColWidth += columns[i].width;\n }\n for (const c of columns) {\n const cx = x - stickyColWidth;\n if (args.x >= cx + c.width) {\n x += c.width;\n cellX++;\n cellRight++;\n } else if (args.x > cx) {\n x += c.width;\n if (smoothScrollX) {\n tx += cx - args.x;\n } else {\n cellX++;\n }\n cellRight++;\n } else if (args.x + args.width > cx) {\n x += c.width;\n cellRight++;\n } else {\n break;\n }\n }\n let ty = 0;\n let cellY = 0;\n let cellBottom = 0;\n if (typeof rowHeight === \"number\") {\n if (smoothScrollY) {\n cellY = Math.floor(args.y / rowHeight);\n ty = cellY * rowHeight - args.y;\n } else {\n cellY = Math.ceil(args.y / rowHeight);\n }\n cellBottom = Math.ceil(args.height / rowHeight) + cellY;\n if (ty < 0)\n cellBottom++;\n } else {\n let y = 0;\n for (let row = 0; row < rows; row++) {\n const rh = rowHeight(row);\n const cy = y + (smoothScrollY ? 0 : rh / 2);\n if (args.y >= y + rh) {\n y += rh;\n cellY++;\n cellBottom++;\n } else if (args.y > cy) {\n y += rh;\n if (smoothScrollY) {\n ty += cy - args.y;\n } else {\n cellY++;\n }\n cellBottom++;\n } else if (args.y + args.height > rh / 2 + y) {\n y += rh;\n cellBottom++;\n } else {\n break;\n }\n }\n }\n const rect = {\n x: cellX,\n y: cellY,\n width: cellRight - cellX,\n height: cellBottom - cellY\n };\n const oldRect = last.current;\n if (oldRect === void 0 || oldRect.y !== rect.y || oldRect.x !== rect.x || oldRect.height !== rect.height || oldRect.width !== rect.width || lastX.current !== tx || lastY.current !== ty || args.width !== lastSize.current?.[0] || args.height !== lastSize.current?.[1]) {\n onVisibleRegionChanged?.({\n x: cellX,\n y: cellY,\n width: cellRight - cellX,\n height: cellBottom - cellY\n }, args.width, args.height, args.paddingRight ?? 0, tx, ty);\n last.current = rect;\n lastX.current = tx;\n lastY.current = ty;\n lastSize.current = [args.width, args.height];\n }\n }, [columns, rowHeight, rows, onVisibleRegionChanged, freezeColumns, smoothScrollX, smoothScrollY]);\n const onScrollUpdate = React.useCallback((args) => {\n lastArgs.current = args;\n processArgs();\n }, [processArgs]);\n React.useEffect(() => {\n processArgs();\n }, [processArgs]);\n const scroller = scrollRef?.current ?? void 0;\n const aspect = clamp(width / height, 2 / 3, 1.5);\n const maxSize = 200;\n const w = aspect > 1 ? maxSize : Math.ceil(maxSize * aspect);\n const h = aspect > 1 ? Math.ceil(maxSize / aspect) : maxSize;\n const hRatio = w / width;\n const vRatio = h / height;\n const vWidth = Math.min(clientWidth * Math.max(hRatio, 0.01), w);\n const vHeight = Math.min(clientHeight * Math.max(vRatio, 0.01), h);\n const left = (scroller?.scrollLeft ?? 0) / (width - clientWidth) * (w - vWidth);\n const top = (scroller?.scrollTop ?? 0) / (height - clientHeight) * (h - vHeight);\n const minimap = React.useMemo(() => {\n if (!showMinimap || vWidth === 0 || vHeight === 0)\n return void 0;\n const handleMouse = (e) => {\n if (scroller === void 0)\n return;\n const bounds = e.currentTarget.getBoundingClientRect();\n const x = e.clientX - bounds.x - vWidth / 2;\n const y = e.clientY - bounds.y - vHeight / 2;\n const newScrollLeft = (width - scroller.clientWidth) * (x / (w - vWidth));\n const newScrollTop = (height - scroller.clientHeight) * (y / (h - vHeight));\n scroller.scrollTo({\n left: newScrollLeft,\n top: newScrollTop,\n behavior: e.type === \"mousemove\" ? \"auto\" : \"smooth\"\n });\n };\n return /* @__PURE__ */ React.createElement(MinimapStyle, {\n style: { width: w, height: h },\n \"data-testid\": \"minimap-container\",\n onMouseMove: (e) => {\n if (e.buttons !== 1)\n return;\n handleMouse(e);\n },\n onClick: handleMouse\n }, /* @__PURE__ */ React.createElement(\"div\", {\n className: \"header\"\n }), /* @__PURE__ */ React.createElement(\"div\", {\n className: \"locationMarker\",\n onDragStart: (e) => e.preventDefault(),\n style: {\n left,\n top,\n width: vWidth,\n height: vHeight,\n borderRadius: Math.min(vWidth, vHeight * 0.2, 9)\n }\n }));\n }, [h, height, left, scroller, showMinimap, top, vHeight, vWidth, w, width]);\n return /* @__PURE__ */ React.createElement(InfiniteScroller, {\n scrollRef,\n minimap,\n className,\n preventDiagonalScrolling,\n draggable: isDraggable === true || typeof isDraggable === \"string\",\n scrollWidth: width + (paddingRight ?? 0),\n scrollHeight: height + (paddingBottom ?? 0),\n clientHeight,\n rightElement,\n paddingBottom,\n paddingRight,\n rightElementProps,\n update: onScrollUpdate,\n initialSize,\n scrollToEnd\n }, /* @__PURE__ */ React.createElement(DataGridDnd, {\n eventTargetRef: scrollRef,\n width: clientWidth,\n height: clientHeight,\n accessibilityHeight: p.accessibilityHeight,\n canvasRef: p.canvasRef,\n cellXOffset: p.cellXOffset,\n cellYOffset: p.cellYOffset,\n columns: p.columns,\n disabledRows: p.disabledRows,\n enableGroups: p.enableGroups,\n fillHandle: p.fillHandle,\n firstColAccessible: p.firstColAccessible,\n fixedShadowX: p.fixedShadowX,\n fixedShadowY: p.fixedShadowY,\n freezeColumns: p.freezeColumns,\n getCellContent: p.getCellContent,\n getCellRenderer: p.getCellRenderer,\n getGroupDetails: p.getGroupDetails,\n getRowThemeOverride: p.getRowThemeOverride,\n groupHeaderHeight: p.groupHeaderHeight,\n headerHeight: p.headerHeight,\n highlightRegions: p.highlightRegions,\n imageWindowLoader: p.imageWindowLoader,\n isFilling: p.isFilling,\n isFocused: p.isFocused,\n lockColumns: p.lockColumns,\n maxColumnWidth: p.maxColumnWidth,\n minColumnWidth: p.minColumnWidth,\n onHeaderMenuClick: p.onHeaderMenuClick,\n onMouseMove: p.onMouseMove,\n prelightCells: p.prelightCells,\n rowHeight: p.rowHeight,\n rows: p.rows,\n selection: p.selection,\n theme: p.theme,\n trailingRowType: p.trailingRowType,\n translateX: p.translateX,\n translateY: p.translateY,\n verticalBorder: p.verticalBorder,\n drawCustomCell: p.drawCustomCell,\n drawFocusRing: p.drawFocusRing,\n drawHeader: p.drawHeader,\n experimental: p.experimental,\n gridRef: p.gridRef,\n headerIcons: p.headerIcons,\n isDraggable: p.isDraggable,\n onCanvasBlur: p.onCanvasBlur,\n onCanvasFocused: p.onCanvasFocused,\n onCellFocused: p.onCellFocused,\n onColumnMoved: p.onColumnMoved,\n onColumnResize: p.onColumnResize,\n onColumnResizeEnd: p.onColumnResizeEnd,\n onColumnResizeStart: p.onColumnResizeStart,\n onContextMenu: p.onContextMenu,\n onDragEnd: p.onDragEnd,\n onDragLeave: p.onDragLeave,\n onDragOverCell: p.onDragOverCell,\n onDragStart: p.onDragStart,\n onDrop: p.onDrop,\n onItemHovered: p.onItemHovered,\n onKeyDown: p.onKeyDown,\n onKeyUp: p.onKeyUp,\n onMouseDown: p.onMouseDown,\n onMouseUp: p.onMouseUp,\n onRowMoved: p.onRowMoved,\n smoothScrollX: p.smoothScrollX,\n smoothScrollY: p.smoothScrollY\n }));\n};\nexport default GridScroller;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9zY3JvbGxpbmctZGF0YS1ncmlkL3Njcm9sbGluZy1kYXRhLWdyaWQudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbGluYXJpYS9yZWFjdFwiO1xuaW1wb3J0IERhdGFHcmlkRG5kLCB7IERhdGFHcmlkRG5kUHJvcHMgfSBmcm9tIFwiLi4vZGF0YS1ncmlkLWRuZC9kYXRhLWdyaWQtZG5kXCI7XG5pbXBvcnQgdHlwZSB7IFJlY3RhbmdsZSB9IGZyb20gXCIuLi9kYXRhLWdyaWQvZGF0YS1ncmlkLXR5cGVzXCI7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbGVyIH0gZnJvbSBcIi4vaW5maW5pdGUtc2Nyb2xsZXJcIjtcbmltcG9ydCBjbGFtcCBmcm9tIFwibG9kYXNoL2NsYW1wLmpzXCI7XG5cbnR5cGUgUHJvcHMgPSBPbWl0PERhdGFHcmlkRG5kUHJvcHMsIFwid2lkdGhcIiB8IFwiaGVpZ2h0XCIgfCBcImV2ZW50VGFyZ2V0UmVmXCI+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbGluZ0RhdGFHcmlkUHJvcHMgZXh0ZW5kcyBQcm9wcyB7XG4gICAgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgb25WaXNpYmxlUmVnaW9uQ2hhbmdlZDpcbiAgICAgICAgfCAoKFxuICAgICAgICAgICAgICByYW5nZTogUmVjdGFuZ2xlLFxuICAgICAgICAgICAgICBjbGllbnRXaWR0aDogbnVtYmVyLFxuICAgICAgICAgICAgICBjbGllbnRIZWlnaHQ6IG51bWJlcixcbiAgICAgICAgICAgICAgcmlnaHRFbFdpZHRoOiBudW1iZXIsXG4gICAgICAgICAgICAgIHR4OiBudW1iZXIsXG4gICAgICAgICAgICAgIHR5OiBudW1iZXJcbiAgICAgICAgICApID0+IHZvaWQpXG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENhdXNlcyB0aGUgZ3JpZCB0byBzY3JvbGwgdG8gdGhlIGVuZCB3aGVuIGZsaXBwZWQgdG8gdHJ1ZVxuICAgICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgRGF0YUVkaXRvclJlZi5zY3JvbGxUb30gaW5zdGVhZFxuICAgICAqIEBncm91cCBEZXByZWNhdGVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2Nyb2xsVG9FbmQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgc2Nyb2xsUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3ZlcnNjcm9sbCBwcm9wZXJ0aWVzIGFyZSB1c2VkIHRvIGFsbG93IHRoZSBncmlkIHRvIHNjcm9sbCBwYXN0IHRoZSBsb2dpY2FsIGVuZCBvZiB0aGUgY29udGVudCBieSBhIGZpeGVkXG4gICAgICogbnVtYmVyIG9mIHBpeGVscy4gVGhpcyBpcyB1c2VmdWwgcGFydGljdWxhcmx5IG9uIHRoZSBYIGF4aXMgaWYgeW91IGFsbG93IGZvciByZXNpemluZyBjb2x1bW5zIGFzIGl0IGNhbiBtYWtlXG4gICAgICogcmVzaXppbmcgdGhlIGZpbmFsIGNvbHVtbiBzaWduaWZpY2FudGx5IGVhc2llci5cbiAgICAgKlxuICAgICAqIEBncm91cCBBZHZhbmNlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IG92ZXJzY3JvbGxYOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIHtAaW5oZXJpdERvYyBvdmVyc2Nyb2xsWH1cbiAgICAgKiBAZ3JvdXAgQWR2YW5jZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBvdmVyc2Nyb2xsWTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGFuIGluaXRpYWwgc2l6ZSBmb3IgdGhlIGdyaWQgd2hpY2ggY2FuIHByZXZlbnQgYSBmbGlja2VyIG9uIGxvYWQgaWYgdGhlIGluaXRpYWwgc2l6ZSBpcyBrbm93biBwcmlvciB0b1xuICAgICAqIGxheW91dC5cbiAgICAgKlxuICAgICAqIEBncm91cCBBZHZhbmNlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluaXRpYWxTaXplOiByZWFkb25seSBbd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXJdIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFNldCB0byB0cnVlIHRvIHByZXZlbnQgYW55IGRpYWdvbmFsIHNjcm9sbGluZy5cbiAgICAgKiBAZ3JvdXAgQWR2YW5jZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmV2ZW50RGlhZ29uYWxTY3JvbGxpbmc6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBJZiBgcmlnaHRFbGVtZW50UHJvcHMuc3RpY2t5YCBpcyBzZXQgdG8gdHJ1ZSB0aGUgcmlnaHQgZWxlbWVudCB3aWxsIGJlIHZpc2libGUgYXQgYWxsIHRpbWVzLCBvdGhlcndpc2UgdGhlIHVzZXJcbiAgICAgKiB3aWxsIG5lZWQgdG8gc2Nyb2xsIHRvIHRoZSBlbmQgdG8gcmV2ZWFsIGl0LlxuICAgICAqXG4gICAgICogSWYgYHJpZ2h0RWxlbWVudFByb3BzLmZpbGxgIGlzIHNldCwgdGhlIHJpZ2h0IGVsZW1lbnRzIGNvbnRhaW5lciB3aWxsIGZpbGwgdG8gY29uc3VtZSBhbGwgcmVtYWluaW5nIHNwYWNlIChpZlxuICAgICAqIGFueSkgYXQgdGhlIGVuZCBvZiB0aGUgZ3JpZC4gVGhpcyBkb2VzIG5vdCBwbGF5IG5pY2Ugd2l0aCBncm93aW5nIGNvbHVtbnMuXG4gICAgICpcbiAgICAgKiBAZ3JvdXAgQWR2YW5jZWRcbiAgICAgKi9cbiAgICByZWFkb25seSByaWdodEVsZW1lbnRQcm9wczpcbiAgICAgICAgfCB7XG4gICAgICAgICAgICAgIHJlYWRvbmx5IHN0aWNreT86IGJvb2xlYW47XG4gICAgICAgICAgICAgIHJlYWRvbmx5IGZpbGw/OiBib29sZWFuO1xuICAgICAgICAgIH1cbiAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGhlIHJpZ2h0IGVsZW1lbnQgaXMgYSBET00gbm9kZSB3aGljaCBjYW4gYmUgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgaG9yaXpvbnRhbCBzY3JvbGwgcmVnaW9uLiBUaGlzIGNhbiBiZVxuICAgICAqIHVzZWQgdG8gY3JlYXRlIGEgcmlnaHQgaGFuZGxlIHBhbmVsLCBtYWtlIGEgYmlnIGFkZCBidXR0b24sIG9yIGRpc3BsYXkgbWVzc2FnZXMuXG4gICAgICogQGdyb3VwIEFkdmFuY2VkXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmlnaHRFbGVtZW50OiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgaW50ZXJhY3RpdmUgbWluaW1hcC5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAgICogQGdyb3VwIEFkdmFuY2VkXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2hvd01pbmltYXA6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgY2xpZW50U2l6ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXTtcbn1cblxuY29uc3QgTWluaW1hcFN0eWxlID0gc3R5bGVkLmRpdmBcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDQ0cHg7XG4gICAgYm90dG9tOiA0NHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1iZy1jZWxsKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tZ2RnLWJnLWNlbGwpLCB2YXIoLS1nZGctYmctY2VsbC1tZWRpdW0pKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgei1pbmRleDogMTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tZ2RnLWJvcmRlci1jb2xvciksIDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5oZWFkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYmctaGVhZGVyKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWdkZy1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgIC5sb2NhdGlvbk1hcmtlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1nZGctYWNjZW50LWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2RnLWFjY2VudC1saWdodCk7XG4gICAgfVxuYDtcblxuY29uc3QgR3JpZFNjcm9sbGVyOiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxTY3JvbGxpbmdEYXRhR3JpZFByb3BzPiA9IHAgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgcm93cyxcbiAgICAgICAgcm93SGVpZ2h0LFxuICAgICAgICBoZWFkZXJIZWlnaHQsXG4gICAgICAgIGdyb3VwSGVhZGVySGVpZ2h0LFxuICAgICAgICBlbmFibGVHcm91cHMsXG4gICAgICAgIGZyZWV6ZUNvbHVtbnMsXG4gICAgICAgIGV4cGVyaW1lbnRhbCxcbiAgICAgICAgY2xpZW50U2l6ZSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBvblZpc2libGVSZWdpb25DaGFuZ2VkLFxuICAgICAgICBzY3JvbGxUb0VuZCxcbiAgICAgICAgc2Nyb2xsUmVmLFxuICAgICAgICBwcmV2ZW50RGlhZ29uYWxTY3JvbGxpbmcsXG4gICAgICAgIHJpZ2h0RWxlbWVudCxcbiAgICAgICAgcmlnaHRFbGVtZW50UHJvcHMsXG4gICAgICAgIG92ZXJzY3JvbGxYLFxuICAgICAgICBvdmVyc2Nyb2xsWSxcbiAgICAgICAgc2hvd01pbmltYXAgPSBmYWxzZSxcbiAgICAgICAgaW5pdGlhbFNpemUsXG4gICAgICAgIHNtb290aFNjcm9sbFggPSBmYWxzZSxcbiAgICAgICAgc21vb3RoU2Nyb2xsWSA9IGZhbHNlLFxuICAgICAgICBpc0RyYWdnYWJsZSxcbiAgICB9ID0gcDtcbiAgICBjb25zdCB7IHBhZGRpbmdSaWdodCwgcGFkZGluZ0JvdHRvbSB9ID0gZXhwZXJpbWVudGFsID8/IHt9O1xuXG4gICAgY29uc3QgW2NsaWVudFdpZHRoLCBjbGllbnRIZWlnaHRdID0gY2xpZW50U2l6ZTtcbiAgICBjb25zdCBsYXN0ID0gUmVhY3QudXNlUmVmPFJlY3RhbmdsZSB8IHVuZGVmaW5lZD4oKTtcbiAgICBjb25zdCBsYXN0WCA9IFJlYWN0LnVzZVJlZjxudW1iZXIgfCB1bmRlZmluZWQ+KCk7XG4gICAgY29uc3QgbGFzdFkgPSBSZWFjdC51c2VSZWY8bnVtYmVyIHwgdW5kZWZpbmVkPigpO1xuICAgIGNvbnN0IGxhc3RTaXplID0gUmVhY3QudXNlUmVmPHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0gfCB1bmRlZmluZWQ+KCk7XG5cbiAgICBjb25zdCB3aWR0aCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgciA9IE1hdGgubWF4KDAsIG92ZXJzY3JvbGxYID8/IDApO1xuICAgICAgICBmb3IgKGNvbnN0IGMgb2YgY29sdW1ucykge1xuICAgICAgICAgICAgciArPSBjLndpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByO1xuICAgIH0sIFtjb2x1bW5zLCBvdmVyc2Nyb2xsWF0pO1xuXG4gICAgbGV0IGhlaWdodCA9IGVuYWJsZUdyb3VwcyA/IGhlYWRlckhlaWdodCArIGdyb3VwSGVhZGVySGVpZ2h0IDogaGVhZGVySGVpZ2h0O1xuICAgIGlmICh0eXBlb2Ygcm93SGVpZ2h0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIGhlaWdodCArPSByb3dzICogcm93SGVpZ2h0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAobGV0IHIgPSAwOyByIDwgcm93czsgcisrKSB7XG4gICAgICAgICAgICBoZWlnaHQgKz0gcm93SGVpZ2h0KHIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChvdmVyc2Nyb2xsWSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGhlaWdodCArPSBvdmVyc2Nyb2xsWTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXN0QXJncyA9IFJlYWN0LnVzZVJlZjxSZWN0YW5nbGUgJiB7IHBhZGRpbmdSaWdodDogbnVtYmVyIH0+KCk7XG5cbiAgICBjb25zdCBwcm9jZXNzQXJncyA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKGxhc3RBcmdzLmN1cnJlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBhcmdzID0geyAuLi5sYXN0QXJncy5jdXJyZW50IH07XG5cbiAgICAgICAgbGV0IHggPSAwO1xuICAgICAgICBsZXQgdHggPSBhcmdzLnggPCAwID8gLWFyZ3MueCA6IDA7XG4gICAgICAgIGxldCBjZWxsUmlnaHQgPSAwO1xuICAgICAgICBsZXQgY2VsbFggPSAwO1xuXG4gICAgICAgIGFyZ3MueCA9IGFyZ3MueCA8IDAgPyAwIDogYXJncy54O1xuXG4gICAgICAgIGxldCBzdGlja3lDb2xXaWR0aCA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnJlZXplQ29sdW1uczsgaSsrKSB7XG4gICAgICAgICAgICBzdGlja3lDb2xXaWR0aCArPSBjb2x1bW5zW2ldLndpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjIG9mIGNvbHVtbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGN4ID0geCAtIHN0aWNreUNvbFdpZHRoO1xuICAgICAgICAgICAgaWYgKGFyZ3MueCA+PSBjeCArIGMud2lkdGgpIHtcbiAgICAgICAgICAgICAgICB4ICs9IGMud2lkdGg7XG4gICAgICAgICAgICAgICAgY2VsbFgrKztcbiAgICAgICAgICAgICAgICBjZWxsUmlnaHQrKztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJncy54ID4gY3gpIHtcbiAgICAgICAgICAgICAgICB4ICs9IGMud2lkdGg7XG4gICAgICAgICAgICAgICAgaWYgKHNtb290aFNjcm9sbFgpIHtcbiAgICAgICAgICAgICAgICAgICAgdHggKz0gY3ggLSBhcmdzLng7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2VsbFgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2VsbFJpZ2h0Kys7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3MueCArIGFyZ3Mud2lkdGggPiBjeCkge1xuICAgICAgICAgICAgICAgIHggKz0gYy53aWR0aDtcbiAgICAgICAgICAgICAgICBjZWxsUmlnaHQrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdHkgPSAwO1xuICAgICAgICBsZXQgY2VsbFkgPSAwO1xuICAgICAgICBsZXQgY2VsbEJvdHRvbSA9IDA7XG4gICAgICAgIGlmICh0eXBlb2Ygcm93SGVpZ2h0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBpZiAoc21vb3RoU2Nyb2xsWSkge1xuICAgICAgICAgICAgICAgIGNlbGxZID0gTWF0aC5mbG9vcihhcmdzLnkgLyByb3dIZWlnaHQpO1xuICAgICAgICAgICAgICAgIHR5ID0gY2VsbFkgKiByb3dIZWlnaHQgLSBhcmdzLnk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNlbGxZID0gTWF0aC5jZWlsKGFyZ3MueSAvIHJvd0hlaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjZWxsQm90dG9tID0gTWF0aC5jZWlsKGFyZ3MuaGVpZ2h0IC8gcm93SGVpZ2h0KSArIGNlbGxZO1xuICAgICAgICAgICAgaWYgKHR5IDwgMCkgY2VsbEJvdHRvbSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHkgPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgcm93czsgcm93KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCByaCA9IHJvd0hlaWdodChyb3cpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN5ID0geSArIChzbW9vdGhTY3JvbGxZID8gMCA6IHJoIC8gMik7XG4gICAgICAgICAgICAgICAgaWYgKGFyZ3MueSA+PSB5ICsgcmgpIHtcbiAgICAgICAgICAgICAgICAgICAgeSArPSByaDtcbiAgICAgICAgICAgICAgICAgICAgY2VsbFkrKztcbiAgICAgICAgICAgICAgICAgICAgY2VsbEJvdHRvbSsrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJncy55ID4gY3kpIHtcbiAgICAgICAgICAgICAgICAgICAgeSArPSByaDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNtb290aFNjcm9sbFkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5ICs9IGN5IC0gYXJncy55O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbFkrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjZWxsQm90dG9tKys7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzLnkgKyBhcmdzLmhlaWdodCA+IHJoIC8gMiArIHkpIHtcbiAgICAgICAgICAgICAgICAgICAgeSArPSByaDtcbiAgICAgICAgICAgICAgICAgICAgY2VsbEJvdHRvbSsrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlY3Q6IFJlY3RhbmdsZSA9IHtcbiAgICAgICAgICAgIHg6IGNlbGxYLFxuICAgICAgICAgICAgeTogY2VsbFksXG4gICAgICAgICAgICB3aWR0aDogY2VsbFJpZ2h0IC0gY2VsbFgsXG4gICAgICAgICAgICBoZWlnaHQ6IGNlbGxCb3R0b20gLSBjZWxsWSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBvbGRSZWN0ID0gbGFzdC5jdXJyZW50O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG9sZFJlY3QgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgb2xkUmVjdC55ICE9PSByZWN0LnkgfHxcbiAgICAgICAgICAgIG9sZFJlY3QueCAhPT0gcmVjdC54IHx8XG4gICAgICAgICAgICBvbGRSZWN0LmhlaWdodCAhPT0gcmVjdC5oZWlnaHQgfHxcbiAgICAgICAgICAgIG9sZFJlY3Qud2lkdGggIT09IHJlY3Qud2lkdGggfHxcbiAgICAgICAgICAgIGxhc3RYLmN1cnJlbnQgIT09IHR4IHx8XG4gICAgICAgICAgICBsYXN0WS5jdXJyZW50ICE9PSB0eSB8fFxuICAgICAgICAgICAgYXJncy53aWR0aCAhPT0gbGFzdFNpemUuY3VycmVudD8uWzBdIHx8XG4gICAgICAgICAgICBhcmdzLmhlaWdodCAhPT0gbGFzdFNpemUuY3VycmVudD8uWzFdXG4gICAgICAgICkge1xuICAgICAgICAgICAgb25WaXNpYmxlUmVnaW9uQ2hhbmdlZD8uKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgeDogY2VsbFgsXG4gICAgICAgICAgICAgICAgICAgIHk6IGNlbGxZLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2VsbFJpZ2h0IC0gY2VsbFgsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogY2VsbEJvdHRvbSAtIGNlbGxZLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYXJncy53aWR0aCxcbiAgICAgICAgICAgICAgICBhcmdzLmhlaWdodCxcbiAgICAgICAgICAgICAgICBhcmdzLnBhZGRpbmdSaWdodCA/PyAwLFxuICAgICAgICAgICAgICAgIHR4LFxuICAgICAgICAgICAgICAgIHR5XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGFzdC5jdXJyZW50ID0gcmVjdDtcbiAgICAgICAgICAgIGxhc3RYLmN1cnJlbnQgPSB0eDtcbiAgICAgICAgICAgIGxhc3RZLmN1cnJlbnQgPSB0eTtcbiAgICAgICAgICAgIGxhc3RTaXplLmN1cnJlbnQgPSBbYXJncy53aWR0aCwgYXJncy5oZWlnaHRdO1xuICAgICAgICB9XG4gICAgfSwgW2NvbHVtbnMsIHJvd0hlaWdodCwgcm93cywgb25WaXNpYmxlUmVnaW9uQ2hhbmdlZCwgZnJlZXplQ29sdW1ucywgc21vb3RoU2Nyb2xsWCwgc21vb3RoU2Nyb2xsWV0pO1xuXG4gICAgY29uc3Qgb25TY3JvbGxVcGRhdGUgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKGFyZ3M6IFJlY3RhbmdsZSAmIHsgcGFkZGluZ1JpZ2h0OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgbGFzdEFyZ3MuY3VycmVudCA9IGFyZ3M7XG4gICAgICAgICAgICBwcm9jZXNzQXJncygpO1xuICAgICAgICB9LFxuICAgICAgICBbcHJvY2Vzc0FyZ3NdXG4gICAgKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb2Nlc3NBcmdzKCk7XG4gICAgfSwgW3Byb2Nlc3NBcmdzXSk7XG5cbiAgICBjb25zdCBzY3JvbGxlciA9IHNjcm9sbFJlZj8uY3VycmVudCA/PyB1bmRlZmluZWQ7XG4gICAgY29uc3QgYXNwZWN0ID0gY2xhbXAod2lkdGggLyBoZWlnaHQsIDIgLyAzLCAxLjUpO1xuICAgIGNvbnN0IG1heFNpemUgPSAyMDA7XG4gICAgY29uc3QgdyA9IGFzcGVjdCA+IDEgPyBtYXhTaXplIDogTWF0aC5jZWlsKG1heFNpemUgKiBhc3BlY3QpO1xuICAgIGNvbnN0IGggPSBhc3BlY3QgPiAxID8gTWF0aC5jZWlsKG1heFNpemUgLyBhc3BlY3QpIDogbWF4U2l6ZTtcbiAgICBjb25zdCBoUmF0aW8gPSB3IC8gd2lkdGg7XG4gICAgY29uc3QgdlJhdGlvID0gaCAvIGhlaWdodDtcbiAgICBjb25zdCB2V2lkdGggPSBNYXRoLm1pbihjbGllbnRXaWR0aCAqIE1hdGgubWF4KGhSYXRpbywgMC4wMSksIHcpO1xuICAgIGNvbnN0IHZIZWlnaHQgPSBNYXRoLm1pbihjbGllbnRIZWlnaHQgKiBNYXRoLm1heCh2UmF0aW8sIDAuMDEpLCBoKTtcbiAgICBjb25zdCBsZWZ0ID0gKChzY3JvbGxlcj8uc2Nyb2xsTGVmdCA/PyAwKSAvICh3aWR0aCAtIGNsaWVudFdpZHRoKSkgKiAodyAtIHZXaWR0aCk7XG4gICAgY29uc3QgdG9wID0gKChzY3JvbGxlcj8uc2Nyb2xsVG9wID8/IDApIC8gKGhlaWdodCAtIGNsaWVudEhlaWdodCkpICogKGggLSB2SGVpZ2h0KTtcblxuICAgIGNvbnN0IG1pbmltYXA6IFJlYWN0LlJlYWN0Tm9kZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIXNob3dNaW5pbWFwIHx8IHZXaWR0aCA9PT0gMCB8fCB2SGVpZ2h0ID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IGhhbmRsZU1vdXNlID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChzY3JvbGxlciA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBib3VuZHMgPSBlLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB4ID0gZS5jbGllbnRYIC0gYm91bmRzLnggLSB2V2lkdGggLyAyO1xuICAgICAgICAgICAgY29uc3QgeSA9IGUuY2xpZW50WSAtIGJvdW5kcy55IC0gdkhlaWdodCAvIDI7XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1Njcm9sbExlZnQgPSAod2lkdGggLSBzY3JvbGxlci5jbGllbnRXaWR0aCkgKiAoeCAvICh3IC0gdldpZHRoKSk7XG4gICAgICAgICAgICBjb25zdCBuZXdTY3JvbGxUb3AgPSAoaGVpZ2h0IC0gc2Nyb2xsZXIuY2xpZW50SGVpZ2h0KSAqICh5IC8gKGggLSB2SGVpZ2h0KSk7XG5cbiAgICAgICAgICAgIHNjcm9sbGVyLnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBuZXdTY3JvbGxMZWZ0LFxuICAgICAgICAgICAgICAgIHRvcDogbmV3U2Nyb2xsVG9wLFxuICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBlLnR5cGUgPT09IFwibW91c2Vtb3ZlXCIgPyBcImF1dG9cIiA6IFwic21vb3RoXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE1pbmltYXBTdHlsZVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiB3LCBoZWlnaHQ6IGggfX1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1pbmltYXAtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICBvbk1vdXNlTW92ZT17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmJ1dHRvbnMgIT09IDEpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlTW91c2UoZSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVNb3VzZX0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXJcIiAvPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibG9jYXRpb25NYXJrZXJcIlxuICAgICAgICAgICAgICAgICAgICBvbkRyYWdTdGFydD17ZSA9PiBlLnByZXZlbnREZWZhdWx0KCl9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHZXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogdkhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogTWF0aC5taW4odldpZHRoLCB2SGVpZ2h0ICogMC4yLCA5KSxcbiAgICAgICAgICAgICAgICAgICAgfX0+PC9kaXY+XG4gICAgICAgICAgICA8L01pbmltYXBTdHlsZT5cbiAgICAgICAgKTtcbiAgICB9LCBbaCwgaGVpZ2h0LCBsZWZ0LCBzY3JvbGxlciwgc2hvd01pbmltYXAsIHRvcCwgdkhlaWdodCwgdldpZHRoLCB3LCB3aWR0aF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEluZmluaXRlU2Nyb2xsZXJcbiAgICAgICAgICAgIHNjcm9sbFJlZj17c2Nyb2xsUmVmfVxuICAgICAgICAgICAgbWluaW1hcD17bWluaW1hcH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgcHJldmVudERpYWdvbmFsU2Nyb2xsaW5nPXtwcmV2ZW50RGlhZ29uYWxTY3JvbGxpbmd9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e2lzRHJhZ2dhYmxlID09PSB0cnVlIHx8IHR5cGVvZiBpc0RyYWdnYWJsZSA9PT0gXCJzdHJpbmdcIn1cbiAgICAgICAgICAgIHNjcm9sbFdpZHRoPXt3aWR0aCArIChwYWRkaW5nUmlnaHQgPz8gMCl9XG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQ9e2hlaWdodCArIChwYWRkaW5nQm90dG9tID8/IDApfVxuICAgICAgICAgICAgY2xpZW50SGVpZ2h0PXtjbGllbnRIZWlnaHR9XG4gICAgICAgICAgICByaWdodEVsZW1lbnQ9e3JpZ2h0RWxlbWVudH1cbiAgICAgICAgICAgIHBhZGRpbmdCb3R0b209e3BhZGRpbmdCb3R0b219XG4gICAgICAgICAgICBwYWRkaW5nUmlnaHQ9e3BhZGRpbmdSaWdodH1cbiAgICAgICAgICAgIHJpZ2h0RWxlbWVudFByb3BzPXtyaWdodEVsZW1lbnRQcm9wc31cbiAgICAgICAgICAgIHVwZGF0ZT17b25TY3JvbGxVcGRhdGV9XG4gICAgICAgICAgICBpbml0aWFsU2l6ZT17aW5pdGlhbFNpemV9XG4gICAgICAgICAgICBzY3JvbGxUb0VuZD17c2Nyb2xsVG9FbmR9PlxuICAgICAgICAgICAgPERhdGFHcmlkRG5kXG4gICAgICAgICAgICAgICAgZXZlbnRUYXJnZXRSZWY9e3Njcm9sbFJlZn1cbiAgICAgICAgICAgICAgICB3aWR0aD17Y2xpZW50V2lkdGh9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtjbGllbnRIZWlnaHR9XG4gICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUhlaWdodD17cC5hY2Nlc3NpYmlsaXR5SGVpZ2h0fVxuICAgICAgICAgICAgICAgIGNhbnZhc1JlZj17cC5jYW52YXNSZWZ9XG4gICAgICAgICAgICAgICAgY2VsbFhPZmZzZXQ9e3AuY2VsbFhPZmZzZXR9XG4gICAgICAgICAgICAgICAgY2VsbFlPZmZzZXQ9e3AuY2VsbFlPZmZzZXR9XG4gICAgICAgICAgICAgICAgY29sdW1ucz17cC5jb2x1bW5zfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkUm93cz17cC5kaXNhYmxlZFJvd3N9XG4gICAgICAgICAgICAgICAgZW5hYmxlR3JvdXBzPXtwLmVuYWJsZUdyb3Vwc31cbiAgICAgICAgICAgICAgICBmaWxsSGFuZGxlPXtwLmZpbGxIYW5kbGV9XG4gICAgICAgICAgICAgICAgZmlyc3RDb2xBY2Nlc3NpYmxlPXtwLmZpcnN0Q29sQWNjZXNzaWJsZX1cbiAgICAgICAgICAgICAgICBmaXhlZFNoYWRvd1g9e3AuZml4ZWRTaGFkb3dYfVxuICAgICAgICAgICAgICAgIGZpeGVkU2hhZG93WT17cC5maXhlZFNoYWRvd1l9XG4gICAgICAgICAgICAgICAgZnJlZXplQ29sdW1ucz17cC5mcmVlemVDb2x1bW5zfVxuICAgICAgICAgICAgICAgIGdldENlbGxDb250ZW50PXtwLmdldENlbGxDb250ZW50fVxuICAgICAgICAgICAgICAgIGdldENlbGxSZW5kZXJlcj17cC5nZXRDZWxsUmVuZGVyZXJ9XG4gICAgICAgICAgICAgICAgZ2V0R3JvdXBEZXRhaWxzPXtwLmdldEdyb3VwRGV0YWlsc31cbiAgICAgICAgICAgICAgICBnZXRSb3dUaGVtZU92ZXJyaWRlPXtwLmdldFJvd1RoZW1lT3ZlcnJpZGV9XG4gICAgICAgICAgICAgICAgZ3JvdXBIZWFkZXJIZWlnaHQ9e3AuZ3JvdXBIZWFkZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0PXtwLmhlYWRlckhlaWdodH1cbiAgICAgICAgICAgICAgICBoaWdobGlnaHRSZWdpb25zPXtwLmhpZ2hsaWdodFJlZ2lvbnN9XG4gICAgICAgICAgICAgICAgaW1hZ2VXaW5kb3dMb2FkZXI9e3AuaW1hZ2VXaW5kb3dMb2FkZXJ9XG4gICAgICAgICAgICAgICAgaXNGaWxsaW5nPXtwLmlzRmlsbGluZ31cbiAgICAgICAgICAgICAgICBpc0ZvY3VzZWQ9e3AuaXNGb2N1c2VkfVxuICAgICAgICAgICAgICAgIGxvY2tDb2x1bW5zPXtwLmxvY2tDb2x1bW5zfVxuICAgICAgICAgICAgICAgIG1heENvbHVtbldpZHRoPXtwLm1heENvbHVtbldpZHRofVxuICAgICAgICAgICAgICAgIG1pbkNvbHVtbldpZHRoPXtwLm1pbkNvbHVtbldpZHRofVxuICAgICAgICAgICAgICAgIG9uSGVhZGVyTWVudUNsaWNrPXtwLm9uSGVhZGVyTWVudUNsaWNrfVxuICAgICAgICAgICAgICAgIG9uTW91c2VNb3ZlPXtwLm9uTW91c2VNb3ZlfVxuICAgICAgICAgICAgICAgIHByZWxpZ2h0Q2VsbHM9e3AucHJlbGlnaHRDZWxsc31cbiAgICAgICAgICAgICAgICByb3dIZWlnaHQ9e3Aucm93SGVpZ2h0fVxuICAgICAgICAgICAgICAgIHJvd3M9e3Aucm93c31cbiAgICAgICAgICAgICAgICBzZWxlY3Rpb249e3Auc2VsZWN0aW9ufVxuICAgICAgICAgICAgICAgIHRoZW1lPXtwLnRoZW1lfVxuICAgICAgICAgICAgICAgIHRyYWlsaW5nUm93VHlwZT17cC50cmFpbGluZ1Jvd1R5cGV9XG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlWD17cC50cmFuc2xhdGVYfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVk9e3AudHJhbnNsYXRlWX1cbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEJvcmRlcj17cC52ZXJ0aWNhbEJvcmRlcn1cbiAgICAgICAgICAgICAgICBkcmF3Q3VzdG9tQ2VsbD17cC5kcmF3Q3VzdG9tQ2VsbH1cbiAgICAgICAgICAgICAgICBkcmF3Rm9jdXNSaW5nPXtwLmRyYXdGb2N1c1Jpbmd9XG4gICAgICAgICAgICAgICAgZHJhd0hlYWRlcj17cC5kcmF3SGVhZGVyfVxuICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbD17cC5leHBlcmltZW50YWx9XG4gICAgICAgICAgICAgICAgZ3JpZFJlZj17cC5ncmlkUmVmfVxuICAgICAgICAgICAgICAgIGhlYWRlckljb25zPXtwLmhlYWRlckljb25zfVxuICAgICAgICAgICAgICAgIGlzRHJhZ2dhYmxlPXtwLmlzRHJhZ2dhYmxlfVxuICAgICAgICAgICAgICAgIG9uQ2FudmFzQmx1cj17cC5vbkNhbnZhc0JsdXJ9XG4gICAgICAgICAgICAgICAgb25DYW52YXNGb2N1c2VkPXtwLm9uQ2FudmFzRm9jdXNlZH1cbiAgICAgICAgICAgICAgICBvbkNlbGxGb2N1c2VkPXtwLm9uQ2VsbEZvY3VzZWR9XG4gICAgICAgICAgICAgICAgb25Db2x1bW5Nb3ZlZD17cC5vbkNvbHVtbk1vdmVkfVxuICAgICAgICAgICAgICAgIG9uQ29sdW1uUmVzaXplPXtwLm9uQ29sdW1uUmVzaXplfVxuICAgICAgICAgICAgICAgIG9uQ29sdW1uUmVzaXplRW5kPXtwLm9uQ29sdW1uUmVzaXplRW5kfVxuICAgICAgICAgICAgICAgIG9uQ29sdW1uUmVzaXplU3RhcnQ9e3Aub25Db2x1bW5SZXNpemVTdGFydH1cbiAgICAgICAgICAgICAgICBvbkNvbnRleHRNZW51PXtwLm9uQ29udGV4dE1lbnV9XG4gICAgICAgICAgICAgICAgb25EcmFnRW5kPXtwLm9uRHJhZ0VuZH1cbiAgICAgICAgICAgICAgICBvbkRyYWdMZWF2ZT17cC5vbkRyYWdMZWF2ZX1cbiAgICAgICAgICAgICAgICBvbkRyYWdPdmVyQ2VsbD17cC5vbkRyYWdPdmVyQ2VsbH1cbiAgICAgICAgICAgICAgICBvbkRyYWdTdGFydD17cC5vbkRyYWdTdGFydH1cbiAgICAgICAgICAgICAgICBvbkRyb3A9e3Aub25Ecm9wfVxuICAgICAgICAgICAgICAgIG9uSXRlbUhvdmVyZWQ9e3Aub25JdGVtSG92ZXJlZH1cbiAgICAgICAgICAgICAgICBvbktleURvd249e3Aub25LZXlEb3dufVxuICAgICAgICAgICAgICAgIG9uS2V5VXA9e3Aub25LZXlVcH1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17cC5vbk1vdXNlRG93bn1cbiAgICAgICAgICAgICAgICBvbk1vdXNlVXA9e3Aub25Nb3VzZVVwfVxuICAgICAgICAgICAgICAgIG9uUm93TW92ZWQ9e3Aub25Sb3dNb3ZlZH1cbiAgICAgICAgICAgICAgICBzbW9vdGhTY3JvbGxYPXtwLnNtb290aFNjcm9sbFh9XG4gICAgICAgICAgICAgICAgc21vb3RoU2Nyb2xsWT17cC5zbW9vdGhTY3JvbGxZfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9JbmZpbml0ZVNjcm9sbGVyPlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkU2Nyb2xsZXI7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*/","import { styled } from \"@linaria/react\";\nimport * as React from \"react\";\nimport { useResizeDetector } from \"../common/resize-detector\";\nimport { browserIsSafari } from \"../common/browser-detect\";\nimport { useEventListener } from \"../common/utils\";\nconst ScrollRegionStyle = styled.div`\n .dvn-scroller {\n overflow: ${(p) => p.isSafari ? \"scroll\" : \"auto\"};\n transform: translate3d(0, 0, 0);\n }\n\n .hidden {\n visibility: hidden;\n }\n\n .dvn-scroll-inner {\n display: flex;\n pointer-events: none;\n\n > * {\n flex-shrink: 0;\n }\n\n .dvn-spacer {\n flex-grow: 1;\n }\n\n .dvn-stack {\n display: flex;\n flex-direction: column;\n }\n }\n\n .dvn-underlay > * {\n position: absolute;\n left: 0;\n top: 0;\n }\n\n canvas {\n outline: none;\n\n * {\n height: 0;\n }\n }\n`;\nfunction eatEvent(e) {\n e.stopPropagation();\n}\nfunction useTouchUpDelayed(delay) {\n const [hasTouches, setHasTouches] = React.useState(false);\n const cbTimer = React.useRef(0);\n useEventListener(\"touchstart\", React.useCallback(() => {\n window.clearTimeout(cbTimer.current);\n setHasTouches(true);\n }, []), window, true, false);\n useEventListener(\"touchend\", React.useCallback((e) => {\n if (e.touches.length === 0) {\n cbTimer.current = window.setTimeout(() => setHasTouches(false), delay);\n }\n }, [delay]), window, true, false);\n return hasTouches;\n}\nexport const InfiniteScroller = (p) => {\n const {\n children,\n clientHeight,\n scrollHeight,\n scrollWidth,\n update,\n draggable,\n className,\n preventDiagonalScrolling = false,\n paddingBottom = 0,\n paddingRight = 0,\n rightElement,\n rightElementProps,\n scrollRef,\n scrollToEnd,\n initialSize,\n minimap\n } = p;\n const padders = [];\n const rightElementSticky = rightElementProps?.sticky ?? false;\n const rightElementFill = rightElementProps?.fill ?? false;\n const offsetY = React.useRef(0);\n const lastScrollY = React.useRef(0);\n const scroller = React.useRef(null);\n const dpr = window.devicePixelRatio;\n React.useEffect(() => {\n const el = scroller.current;\n if (el === null || scrollToEnd !== true)\n return;\n el.scrollLeft = el.scrollWidth - el.clientWidth;\n }, [scrollToEnd]);\n const lastScrollPosition = React.useRef({\n scrollLeft: 0,\n scrollTop: 0,\n lockDirection: void 0\n });\n const rightWrapRef = React.useRef(null);\n const hasTouches = useTouchUpDelayed(200);\n const [isIdle, setIsIdle] = React.useState(true);\n const idleTimer = React.useRef(0);\n React.useEffect(() => {\n if (!isIdle || hasTouches || lastScrollPosition.current.lockDirection === void 0)\n return;\n const el = scroller.current;\n if (el === null)\n return;\n const [lx, ly] = lastScrollPosition.current.lockDirection;\n if (lx !== void 0) {\n el.scrollLeft = lx;\n } else if (ly !== void 0) {\n el.scrollTop = ly;\n }\n lastScrollPosition.current.lockDirection = void 0;\n }, [hasTouches, isIdle]);\n const onScroll = React.useCallback(() => {\n const el = scroller.current;\n if (el === null)\n return;\n let scrollTop = el.scrollTop;\n let scrollLeft = el.scrollLeft;\n const lastScrollTop = lastScrollPosition.current.scrollTop;\n const lastScrollLeft = lastScrollPosition.current.scrollLeft;\n const dx = scrollLeft - lastScrollLeft;\n const dy = scrollTop - lastScrollTop;\n if (hasTouches && dx !== 0 && dy !== 0 && (Math.abs(dx) > 3 || Math.abs(dy) > 3) && preventDiagonalScrolling && lastScrollPosition.current.lockDirection === void 0) {\n lastScrollPosition.current.lockDirection = Math.abs(dx) < Math.abs(dy) ? [lastScrollLeft, void 0] : [void 0, lastScrollTop];\n }\n const lock = lastScrollPosition.current.lockDirection;\n scrollLeft = lock?.[0] ?? scrollLeft;\n scrollTop = lock?.[1] ?? scrollTop;\n lastScrollPosition.current.scrollLeft = scrollLeft;\n lastScrollPosition.current.scrollTop = scrollTop;\n const newY = scrollTop;\n const delta = lastScrollY.current - newY;\n const scrollableHeight = el.scrollHeight - el.clientHeight;\n lastScrollY.current = newY;\n if (scrollableHeight > 0 && (Math.abs(delta) > 2e3 || newY === 0 || newY === scrollableHeight) && scrollHeight > el.scrollHeight + 5) {\n const prog = newY / scrollableHeight;\n const recomputed = (scrollHeight - el.clientHeight) * prog;\n offsetY.current = recomputed - newY;\n }\n if (lock !== void 0) {\n window.clearTimeout(idleTimer.current);\n setIsIdle(false);\n idleTimer.current = window.setTimeout(() => setIsIdle(true), 200);\n }\n update({\n x: scrollLeft,\n y: newY + offsetY.current,\n width: el.clientWidth - paddingRight,\n height: el.clientHeight - paddingBottom,\n paddingRight: rightWrapRef.current?.clientWidth ?? 0\n });\n }, [paddingBottom, paddingRight, scrollHeight, update, preventDiagonalScrolling, hasTouches]);\n const onScrollRef = React.useRef(onScroll);\n onScrollRef.current = onScroll;\n const lastProps = React.useRef();\n const didFirstScroll = React.useRef(false);\n React.useEffect(() => {\n if (didFirstScroll.current)\n onScroll();\n else\n didFirstScroll.current = true;\n }, [onScroll, paddingBottom, paddingRight]);\n const setRefs = React.useCallback((instance) => {\n scroller.current = instance;\n if (scrollRef !== void 0) {\n scrollRef.current = instance;\n }\n }, [scrollRef]);\n let key = 0;\n let h = 0;\n padders.push(/* @__PURE__ */ React.createElement(\"div\", {\n key: key++,\n style: { width: scrollWidth, height: 0 }\n }));\n while (h < scrollHeight) {\n const toAdd = Math.min(5e6, scrollHeight - h);\n padders.push(/* @__PURE__ */ React.createElement(\"div\", {\n key: key++,\n style: { width: 0, height: toAdd }\n }));\n h += toAdd;\n }\n const { ref, width, height } = useResizeDetector(initialSize);\n if (lastProps.current?.height !== height || lastProps.current?.width !== width) {\n window.setTimeout(() => onScrollRef.current(), 0);\n lastProps.current = { width, height };\n }\n if ((width ?? 0) === 0 || (height ?? 0) === 0)\n return /* @__PURE__ */ React.createElement(\"div\", {\n ref\n });\n return /* @__PURE__ */ React.createElement(\"div\", {\n ref\n }, /* @__PURE__ */ React.createElement(ScrollRegionStyle, {\n isSafari: browserIsSafari.value\n }, minimap, /* @__PURE__ */ React.createElement(\"div\", {\n className: \"dvn-underlay\"\n }, children), /* @__PURE__ */ React.createElement(\"div\", {\n ref: setRefs,\n style: lastProps.current,\n draggable,\n onDragStart: (e) => {\n if (!draggable) {\n e.stopPropagation();\n e.preventDefault();\n }\n },\n className: \"dvn-scroller \" + (className ?? \"\"),\n onScroll\n }, /* @__PURE__ */ React.createElement(\"div\", {\n className: \"dvn-scroll-inner\" + (rightElement === void 0 ? \" hidden\" : \"\")\n }, /* @__PURE__ */ React.createElement(\"div\", {\n className: \"dvn-stack\"\n }, padders), rightElement !== void 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, !rightElementFill && /* @__PURE__ */ React.createElement(\"div\", {\n className: \"dvn-spacer\"\n }), /* @__PURE__ */ React.createElement(\"div\", {\n ref: rightWrapRef,\n onMouseDown: eatEvent,\n onMouseUp: eatEvent,\n onMouseMove: eatEvent,\n style: {\n height,\n maxHeight: clientHeight - Math.ceil(dpr % 1),\n position: \"sticky\",\n top: 0,\n paddingLeft: 1,\n marginBottom: -40,\n marginRight: paddingRight,\n flexGrow: rightElementFill ? 1 : void 0,\n right: rightElementSticky ? paddingRight ?? 0 : void 0,\n pointerEvents: \"auto\"\n }\n }, rightElement))))));\n};\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9zY3JvbGxpbmctZGF0YS1ncmlkL2luZmluaXRlLXNjcm9sbGVyLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFJlY3RhbmdsZSB9IGZyb20gXCIuLlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VSZXNpemVEZXRlY3RvciB9IGZyb20gXCIuLi9jb21tb24vcmVzaXplLWRldGVjdG9yXCI7XG5pbXBvcnQgeyBicm93c2VySXNTYWZhcmkgfSBmcm9tIFwiLi4vY29tbW9uL2Jyb3dzZXItZGV0ZWN0XCI7XG5pbXBvcnQgeyB1c2VFdmVudExpc3RlbmVyIH0gZnJvbSBcIi4uL2NvbW1vbi91dGlsc1wiO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIHJlYWRvbmx5IGNsYXNzTmFtZT86IHN0cmluZztcbiAgICByZWFkb25seSBwcmV2ZW50RGlhZ29uYWxTY3JvbGxpbmc/OiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGRyYWdnYWJsZTogYm9vbGVhbjtcbiAgICByZWFkb25seSBwYWRkaW5nUmlnaHQ/OiBudW1iZXI7XG4gICAgcmVhZG9ubHkgcGFkZGluZ0JvdHRvbT86IG51bWJlcjtcbiAgICByZWFkb25seSBjbGllbnRIZWlnaHQ6IG51bWJlcjtcbiAgICByZWFkb25seSBzY3JvbGxXaWR0aDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHNjcm9sbEhlaWdodDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHNjcm9sbFRvRW5kPzogYm9vbGVhbjtcbiAgICByZWFkb25seSBpbml0aWFsU2l6ZT86IHJlYWRvbmx5IFt3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcl07XG4gICAgcmVhZG9ubHkgcmlnaHRFbGVtZW50UHJvcHM/OiB7XG4gICAgICAgIHJlYWRvbmx5IHN0aWNreT86IGJvb2xlYW47XG4gICAgICAgIHJlYWRvbmx5IGZpbGw/OiBib29sZWFuO1xuICAgIH07XG4gICAgcmVhZG9ubHkgcmlnaHRFbGVtZW50PzogUmVhY3QuUmVhY3ROb2RlO1xuICAgIHJlYWRvbmx5IG1pbmltYXA/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgcmVhZG9ubHkgc2Nyb2xsUmVmPzogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICAgIHJlYWRvbmx5IHVwZGF0ZTogKHJlZ2lvbjogUmVjdGFuZ2xlICYgeyBwYWRkaW5nUmlnaHQ6IG51bWJlciB9KSA9PiB2b2lkO1xufVxuXG5jb25zdCBTY3JvbGxSZWdpb25TdHlsZSA9IHN0eWxlZC5kaXY8eyBpc1NhZmFyaTogYm9vbGVhbiB9PmBcbiAgICAuZHZuLXNjcm9sbGVyIHtcbiAgICAgICAgb3ZlcmZsb3c6ICR7cCA9PiAocC5pc1NhZmFyaSA/IFwic2Nyb2xsXCIgOiBcImF1dG9cIil9O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIH1cblxuICAgIC5oaWRkZW4ge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmR2bi1zY3JvbGwtaW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICA+ICoge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZHZuLXNwYWNlciB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZHZuLXN0YWNrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmR2bi11bmRlcmxheSA+ICoge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICBjYW52YXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuYDtcblxudHlwZSBTY3JvbGxMb2NrID0gW3VuZGVmaW5lZCwgbnVtYmVyXSB8IFtudW1iZXIsIHVuZGVmaW5lZF0gfCB1bmRlZmluZWQ7XG5cbmZ1bmN0aW9uIGVhdEV2ZW50KGU6IFJlYWN0Lk1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xufVxuXG5mdW5jdGlvbiB1c2VUb3VjaFVwRGVsYXllZChkZWxheTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgW2hhc1RvdWNoZXMsIHNldEhhc1RvdWNoZXNdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgY2JUaW1lciA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICB1c2VFdmVudExpc3RlbmVyKFxuICAgICAgICBcInRvdWNoc3RhcnRcIixcbiAgICAgICAgUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dChjYlRpbWVyLmN1cnJlbnQpO1xuICAgICAgICAgICAgc2V0SGFzVG91Y2hlcyh0cnVlKTtcbiAgICAgICAgfSwgW10pLFxuICAgICAgICB3aW5kb3csXG4gICAgICAgIHRydWUsXG4gICAgICAgIGZhbHNlXG4gICAgKTtcblxuICAgIHVzZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgIFwidG91Y2hlbmRcIixcbiAgICAgICAgUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAgICAgICBlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZS50b3VjaGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBjYlRpbWVyLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBzZXRIYXNUb3VjaGVzKGZhbHNlKSwgZGVsYXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbZGVsYXldXG4gICAgICAgICksXG4gICAgICAgIHdpbmRvdyxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZmFsc2VcbiAgICApO1xuXG4gICAgcmV0dXJuIGhhc1RvdWNoZXM7XG59XG5cbmV4cG9ydCBjb25zdCBJbmZpbml0ZVNjcm9sbGVyOiBSZWFjdC5GQzxQcm9wcz4gPSBwID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBjbGllbnRIZWlnaHQsXG4gICAgICAgIHNjcm9sbEhlaWdodCxcbiAgICAgICAgc2Nyb2xsV2lkdGgsXG4gICAgICAgIHVwZGF0ZSxcbiAgICAgICAgZHJhZ2dhYmxlLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIHByZXZlbnREaWFnb25hbFNjcm9sbGluZyA9IGZhbHNlLFxuICAgICAgICBwYWRkaW5nQm90dG9tID0gMCxcbiAgICAgICAgcGFkZGluZ1JpZ2h0ID0gMCxcbiAgICAgICAgcmlnaHRFbGVtZW50LFxuICAgICAgICByaWdodEVsZW1lbnRQcm9wcyxcbiAgICAgICAgc2Nyb2xsUmVmLFxuICAgICAgICBzY3JvbGxUb0VuZCxcbiAgICAgICAgaW5pdGlhbFNpemUsXG4gICAgICAgIG1pbmltYXAsXG4gICAgfSA9IHA7XG4gICAgY29uc3QgcGFkZGVyczogUmVhY3QuUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGNvbnN0IHJpZ2h0RWxlbWVudFN0aWNreSA9IHJpZ2h0RWxlbWVudFByb3BzPy5zdGlja3kgPz8gZmFsc2U7XG4gICAgY29uc3QgcmlnaHRFbGVtZW50RmlsbCA9IHJpZ2h0RWxlbWVudFByb3BzPy5maWxsID8/IGZhbHNlO1xuXG4gICAgY29uc3Qgb2Zmc2V0WSA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICBjb25zdCBsYXN0U2Nyb2xsWSA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICBjb25zdCBzY3JvbGxlciA9IFJlYWN0LnVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3QgZHByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IHNjcm9sbGVyLmN1cnJlbnQ7XG4gICAgICAgIGlmIChlbCA9PT0gbnVsbCB8fCBzY3JvbGxUb0VuZCAhPT0gdHJ1ZSkgcmV0dXJuO1xuXG4gICAgICAgIGVsLnNjcm9sbExlZnQgPSBlbC5zY3JvbGxXaWR0aCAtIGVsLmNsaWVudFdpZHRoO1xuICAgIH0sIFtzY3JvbGxUb0VuZF0pO1xuXG4gICAgY29uc3QgbGFzdFNjcm9sbFBvc2l0aW9uID0gUmVhY3QudXNlUmVmKHtcbiAgICAgICAgc2Nyb2xsTGVmdDogMCxcbiAgICAgICAgc2Nyb2xsVG9wOiAwLFxuICAgICAgICBsb2NrRGlyZWN0aW9uOiB1bmRlZmluZWQgYXMgU2Nyb2xsTG9jayxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJpZ2h0V3JhcFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3QgaGFzVG91Y2hlcyA9IHVzZVRvdWNoVXBEZWxheWVkKDIwMCk7XG4gICAgY29uc3QgW2lzSWRsZSwgc2V0SXNJZGxlXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IGlkbGVUaW1lciA9IFJlYWN0LnVzZVJlZigwKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghaXNJZGxlIHx8IGhhc1RvdWNoZXMgfHwgbGFzdFNjcm9sbFBvc2l0aW9uLmN1cnJlbnQubG9ja0RpcmVjdGlvbiA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGVsID0gc2Nyb2xsZXIuY3VycmVudDtcbiAgICAgICAgaWYgKGVsID09PSBudWxsKSByZXR1cm47XG4gICAgICAgIGNvbnN0IFtseCwgbHldID0gbGFzdFNjcm9sbFBvc2l0aW9uLmN1cnJlbnQubG9ja0RpcmVjdGlvbjtcbiAgICAgICAgaWYgKGx4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVsLnNjcm9sbExlZnQgPSBseDtcbiAgICAgICAgfSBlbHNlIGlmIChseSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlbC5zY3JvbGxUb3AgPSBseTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0U2Nyb2xsUG9zaXRpb24uY3VycmVudC5sb2NrRGlyZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIH0sIFtoYXNUb3VjaGVzLCBpc0lkbGVdKTtcblxuICAgIGNvbnN0IG9uU2Nyb2xsID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IHNjcm9sbGVyLmN1cnJlbnQ7XG4gICAgICAgIGlmIChlbCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIGxldCBzY3JvbGxUb3AgPSBlbC5zY3JvbGxUb3A7XG4gICAgICAgIGxldCBzY3JvbGxMZWZ0ID0gZWwuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3QgbGFzdFNjcm9sbFRvcCA9IGxhc3RTY3JvbGxQb3NpdGlvbi5jdXJyZW50LnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgbGFzdFNjcm9sbExlZnQgPSBsYXN0U2Nyb2xsUG9zaXRpb24uY3VycmVudC5zY3JvbGxMZWZ0O1xuXG4gICAgICAgIGNvbnN0IGR4ID0gc2Nyb2xsTGVmdCAtIGxhc3RTY3JvbGxMZWZ0O1xuICAgICAgICBjb25zdCBkeSA9IHNjcm9sbFRvcCAtIGxhc3RTY3JvbGxUb3A7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgaGFzVG91Y2hlcyAmJlxuICAgICAgICAgICAgZHggIT09IDAgJiZcbiAgICAgICAgICAgIGR5ICE9PSAwICYmXG4gICAgICAgICAgICAoTWF0aC5hYnMoZHgpID4gMyB8fCBNYXRoLmFicyhkeSkgPiAzKSAmJlxuICAgICAgICAgICAgcHJldmVudERpYWdvbmFsU2Nyb2xsaW5nICYmXG4gICAgICAgICAgICBsYXN0U2Nyb2xsUG9zaXRpb24uY3VycmVudC5sb2NrRGlyZWN0aW9uID09PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBsYXN0U2Nyb2xsUG9zaXRpb24uY3VycmVudC5sb2NrRGlyZWN0aW9uID1cbiAgICAgICAgICAgICAgICBNYXRoLmFicyhkeCkgPCBNYXRoLmFicyhkeSkgPyBbbGFzdFNjcm9sbExlZnQsIHVuZGVmaW5lZF0gOiBbdW5kZWZpbmVkLCBsYXN0U2Nyb2xsVG9wXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2sgPSBsYXN0U2Nyb2xsUG9zaXRpb24uY3VycmVudC5sb2NrRGlyZWN0aW9uO1xuXG4gICAgICAgIHNjcm9sbExlZnQgPSBsb2NrPy5bMF0gPz8gc2Nyb2xsTGVmdDtcbiAgICAgICAgc2Nyb2xsVG9wID0gbG9jaz8uWzFdID8/IHNjcm9sbFRvcDtcbiAgICAgICAgbGFzdFNjcm9sbFBvc2l0aW9uLmN1cnJlbnQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gICAgICAgIGxhc3RTY3JvbGxQb3NpdGlvbi5jdXJyZW50LnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcblxuICAgICAgICBjb25zdCBuZXdZID0gc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBkZWx0YSA9IGxhc3RTY3JvbGxZLmN1cnJlbnQgLSBuZXdZO1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlSGVpZ2h0ID0gZWwuc2Nyb2xsSGVpZ2h0IC0gZWwuY2xpZW50SGVpZ2h0O1xuICAgICAgICBsYXN0U2Nyb2xsWS5jdXJyZW50ID0gbmV3WTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBzY3JvbGxhYmxlSGVpZ2h0ID4gMCAmJlxuICAgICAgICAgICAgKE1hdGguYWJzKGRlbHRhKSA+IDIwMDAgfHwgbmV3WSA9PT0gMCB8fCBuZXdZID09PSBzY3JvbGxhYmxlSGVpZ2h0KSAmJlxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0ID4gZWwuc2Nyb2xsSGVpZ2h0ICsgNVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2cgPSBuZXdZIC8gc2Nyb2xsYWJsZUhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IHJlY29tcHV0ZWQgPSAoc2Nyb2xsSGVpZ2h0IC0gZWwuY2xpZW50SGVpZ2h0KSAqIHByb2c7XG4gICAgICAgICAgICBvZmZzZXRZLmN1cnJlbnQgPSByZWNvbXB1dGVkIC0gbmV3WTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsb2NrICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoaWRsZVRpbWVyLmN1cnJlbnQpO1xuICAgICAgICAgICAgc2V0SXNJZGxlKGZhbHNlKTtcbiAgICAgICAgICAgIGlkbGVUaW1lci5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2V0SXNJZGxlKHRydWUpLCAyMDApO1xuICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlKHtcbiAgICAgICAgICAgIHg6IHNjcm9sbExlZnQsXG4gICAgICAgICAgICB5OiBuZXdZICsgb2Zmc2V0WS5jdXJyZW50LFxuICAgICAgICAgICAgd2lkdGg6IGVsLmNsaWVudFdpZHRoIC0gcGFkZGluZ1JpZ2h0LFxuICAgICAgICAgICAgaGVpZ2h0OiBlbC5jbGllbnRIZWlnaHQgLSBwYWRkaW5nQm90dG9tLFxuICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiByaWdodFdyYXBSZWYuY3VycmVudD8uY2xpZW50V2lkdGggPz8gMCxcbiAgICAgICAgfSk7XG4gICAgfSwgW3BhZGRpbmdCb3R0b20sIHBhZGRpbmdSaWdodCwgc2Nyb2xsSGVpZ2h0LCB1cGRhdGUsIHByZXZlbnREaWFnb25hbFNjcm9sbGluZywgaGFzVG91Y2hlc10pO1xuXG4gICAgY29uc3Qgb25TY3JvbGxSZWYgPSBSZWFjdC51c2VSZWYob25TY3JvbGwpO1xuICAgIG9uU2Nyb2xsUmVmLmN1cnJlbnQgPSBvblNjcm9sbDtcblxuICAgIGNvbnN0IGxhc3RQcm9wcyA9IFJlYWN0LnVzZVJlZjx7IHdpZHRoPzogbnVtYmVyOyBoZWlnaHQ/OiBudW1iZXIgfT4oKTtcblxuICAgIGNvbnN0IGRpZEZpcnN0U2Nyb2xsID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZGlkRmlyc3RTY3JvbGwuY3VycmVudCkgb25TY3JvbGwoKTtcbiAgICAgICAgZWxzZSBkaWRGaXJzdFNjcm9sbC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbb25TY3JvbGwsIHBhZGRpbmdCb3R0b20sIHBhZGRpbmdSaWdodF0pO1xuXG4gICAgY29uc3Qgc2V0UmVmcyA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAoaW5zdGFuY2U6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgc2Nyb2xsZXIuY3VycmVudCA9IGluc3RhbmNlO1xuICAgICAgICAgICAgaWYgKHNjcm9sbFJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsUmVmLmN1cnJlbnQgPSBpbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW3Njcm9sbFJlZl1cbiAgICApO1xuXG4gICAgbGV0IGtleSA9IDA7XG4gICAgbGV0IGggPSAwO1xuICAgIHBhZGRlcnMucHVzaCg8ZGl2IGtleT17a2V5Kyt9IHN0eWxlPXt7IHdpZHRoOiBzY3JvbGxXaWR0aCwgaGVpZ2h0OiAwIH19IC8+KTtcbiAgICB3aGlsZSAoaCA8IHNjcm9sbEhlaWdodCkge1xuICAgICAgICBjb25zdCB0b0FkZCA9IE1hdGgubWluKDVfMDAwXzAwMCwgc2Nyb2xsSGVpZ2h0IC0gaCk7XG4gICAgICAgIHBhZGRlcnMucHVzaCg8ZGl2IGtleT17a2V5Kyt9IHN0eWxlPXt7IHdpZHRoOiAwLCBoZWlnaHQ6IHRvQWRkIH19IC8+KTtcbiAgICAgICAgaCArPSB0b0FkZDtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJlZiwgd2lkdGgsIGhlaWdodCB9ID0gdXNlUmVzaXplRGV0ZWN0b3I8SFRNTERpdkVsZW1lbnQ+KGluaXRpYWxTaXplKTtcblxuICAgIGlmIChsYXN0UHJvcHMuY3VycmVudD8uaGVpZ2h0ICE9PSBoZWlnaHQgfHwgbGFzdFByb3BzLmN1cnJlbnQ/LndpZHRoICE9PSB3aWR0aCkge1xuICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBvblNjcm9sbFJlZi5jdXJyZW50KCksIDApO1xuICAgICAgICBsYXN0UHJvcHMuY3VycmVudCA9IHsgd2lkdGgsIGhlaWdodCB9O1xuICAgIH1cblxuICAgIGlmICgod2lkdGggPz8gMCkgPT09IDAgfHwgKGhlaWdodCA/PyAwKSA9PT0gMCkgcmV0dXJuIDxkaXYgcmVmPXtyZWZ9IC8+O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiByZWY9e3JlZn0+XG4gICAgICAgICAgICA8U2Nyb2xsUmVnaW9uU3R5bGUgaXNTYWZhcmk9e2Jyb3dzZXJJc1NhZmFyaS52YWx1ZX0+XG4gICAgICAgICAgICAgICAge21pbmltYXB9XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkdm4tdW5kZXJsYXlcIj57Y2hpbGRyZW59PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICByZWY9e3NldFJlZnN9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtsYXN0UHJvcHMuY3VycmVudH1cbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlPXtkcmFnZ2FibGV9XG4gICAgICAgICAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZHJhZ2dhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XCJkdm4tc2Nyb2xsZXIgXCIgKyAoY2xhc3NOYW1lID8/IFwiXCIpfVxuICAgICAgICAgICAgICAgICAgICBvblNjcm9sbD17b25TY3JvbGx9PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJkdm4tc2Nyb2xsLWlubmVyXCIgKyAocmlnaHRFbGVtZW50ID09PSB1bmRlZmluZWQgPyBcIiBoaWRkZW5cIiA6IFwiXCIpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZHZuLXN0YWNrXCI+e3BhZGRlcnN9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmlnaHRFbGVtZW50ICE9PSB1bmRlZmluZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshcmlnaHRFbGVtZW50RmlsbCAmJiA8ZGl2IGNsYXNzTmFtZT1cImR2bi1zcGFjZXJcIiAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtyaWdodFdyYXBSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17ZWF0RXZlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlVXA9e2VhdEV2ZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZU1vdmU9e2VhdEV2ZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBjbGllbnRIZWlnaHQgLSBNYXRoLmNlaWwoZHByICUgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwic3RpY2t5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogLTQwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiBwYWRkaW5nUmlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleEdyb3c6IHJpZ2h0RWxlbWVudEZpbGwgPyAxIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiByaWdodEVsZW1lbnRTdGlja3kgPyBwYWRkaW5nUmlnaHQgPz8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRXZlbnRzOiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JpZ2h0RWxlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvU2Nyb2xsUmVnaW9uU3R5bGU+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQXVCQSxNQUFNLG9CQUFvQixPQUFPO0FBQUE7QUFBQSxvQkFFYixPQUFNLEVBQUUsV0FBVyxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMkNsRCxrQkFBa0IsR0FBcUI7QUFDbkMsSUFBRTtBQUFBO0FBR04sMkJBQTJCLE9BQXdCO0FBQy9DLFFBQU0sQ0FBQyxZQUFZLGlCQUFpQixNQUFNLFNBQVM7QUFFbkQsUUFBTSxVQUFVLE1BQU0sT0FBTztBQUM3QixtQkFDSSxjQUNBLE1BQU0sWUFBWSxNQUFNO0FBQ3BCLFdBQU8sYUFBYSxRQUFRO0FBQzVCLGtCQUFjO0FBQUEsS0FDZixLQUNILFFBQ0EsTUFDQTtBQUdKLG1CQUNJLFlBQ0EsTUFBTSxZQUNGLE9BQUs7QUFDRCxRQUFJLEVBQUUsUUFBUSxXQUFXLEdBQUc7QUFDeEIsY0FBUSxVQUFVLE9BQU8sV0FBVyxNQUFNLGNBQWMsUUFBUTtBQUFBO0FBQUEsS0FHeEUsQ0FBQyxTQUVMLFFBQ0EsTUFDQTtBQUdKLFNBQU87QUFBQTtBQUdKLGFBQU0sbUJBQW9DLE9BQUs7QUFDbEQsUUFBTTtBQUFBLElBQ0Y7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLDJC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*/","import { styled } from \"@linaria/react\";\nexport const SearchWrapper = styled.div`\n position: absolute;\n top: 4px;\n right: 20px;\n\n background-color: var(--gdg-bg-cell);\n color: var(--gdg-text-dark);\n\n padding: 8px;\n border: 1px solid var(--gdg-border-color);\n border-radius: 6px;\n\n font-size: var(--gdg-editor-font-size);\n\n transform: translateX(${(p) => p.showSearch ? 0 : 400}px);\n transition: transform 0.15s;\n\n .search-bar-inner {\n display: flex;\n }\n\n .search-status {\n padding-top: 4px;\n font-size: 11px;\n }\n\n .search-progress {\n position: absolute;\n height: 4px;\n left: 0;\n bottom: 0;\n\n background-color: var(--gdg-text-light);\n }\n\n input {\n width: 220px;\n color: var(--gdg-textDark);\n background-color: var(--gdg-bg-cell);\n border: none;\n border-width: 0;\n outline: none;\n }\n\n button {\n width: 24px;\n height: 24px;\n padding: 0;\n\n border: none;\n outline: none;\n background: none;\n\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n color: var(--gdg-text-medium);\n\n :hover {\n color: var(--gdg-text-dark);\n }\n\n .button-icon {\n width: 16px;\n height: 16px;\n }\n\n :disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWdyaWQtc2VhcmNoL2RhdGEtZ3JpZC1zZWFyY2gtc3R5bGUudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IFNlYXJjaFdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgc2hvd1NlYXJjaDogYm9vbGVhbiB9PmBcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0cHg7XG4gICAgcmlnaHQ6IDIwcHg7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYmctY2VsbCk7XG4gICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWRhcmspO1xuXG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdkZy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZ2RnLWVkaXRvci1mb250LXNpemUpO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCR7cCA9PiAocC5zaG93U2VhcmNoID8gMCA6IDQwMCl9cHgpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cztcblxuICAgIC5zZWFyY2gtYmFyLWlubmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAuc2VhcmNoLXN0YXR1cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG5cbiAgICAuc2VhcmNoLXByb2dyZXNzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy10ZXh0LWxpZ2h0KTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAyMjBweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWdkZy10ZXh0RGFyayk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1iZy1jZWxsKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LW1lZGl1bSk7XG5cbiAgICAgICAgOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nZGctdGV4dC1kYXJrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpkaXNhYmxlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbmA7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUVPLGFBQU0sZ0JBQWdCLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDRCQWNSLE9BQU0sRUFBRSxhQUFhLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/","import React from \"react\";\nimport { styled } from \"@linaria/react\";\nimport { css } from \"@linaria/core\";\nimport ClickOutsideContainer from \"../click-outside-container/click-outside-container\";\nconst RenameInput = styled.input`\n flex-grow: 1;\n border: none;\n outline: none;\n background-color: var(--gdg-bg-header-has-focus);\n border-radius: 9px;\n padding: 0 8px;\n box-shadow: 0 0 0 1px var(--gdg-border-color);\n color: var(--gdg-text-group-header);\n min-height: ${(p) => Math.max(16, p.targetHeight - 10)}px;\n font: var(--gdg-header-font-style) var(--gdg-font-family);\n`;\nexport const GroupRename = (p) => {\n const { bounds, group, onClose, canvasBounds, onFinish } = p;\n const [value, setValue] = React.useState(group);\n return /* @__PURE__ */ React.createElement(ClickOutsideContainer, {\n style: {\n position: \"absolute\",\n left: bounds.x - canvasBounds.left + 1,\n top: bounds.y - canvasBounds.top,\n width: bounds.width - 2,\n height: bounds.height\n },\n className: css`\n padding: 0 8px;\n display: flex;\n align-items: center;\n background-color: var(--gdg-bg-header);\n `,\n onClickOutside: onClose\n }, /* @__PURE__ */ React.createElement(RenameInput, {\n targetHeight: bounds.height,\n \"data-testid\": \"group-rename-input\",\n value,\n onBlur: onClose,\n onFocus: (e) => e.target.setSelectionRange(0, value.length),\n onChange: (e) => setValue(e.target.value),\n onKeyDown: (e) => {\n if (e.key === \"Enter\") {\n onFinish(value);\n } else if (e.key === \"Escape\") {\n onClose();\n }\n },\n autoFocus: true\n }));\n};\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWVkaXRvci9ncm91cC1yZW5hbWUudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAbGluYXJpYS9jb3JlXCI7XG5pbXBvcnQgQ2xpY2tPdXRzaWRlQ29udGFpbmVyIGZyb20gXCIuLi9jbGljay1vdXRzaWRlLWNvbnRhaW5lci9jbGljay1vdXRzaWRlLWNvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBSZWN0YW5nbGUgfSBmcm9tIFwiLi4vZGF0YS1ncmlkL2RhdGEtZ3JpZC10eXBlc1wiO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIHJlYWRvbmx5IGJvdW5kczogUmVjdGFuZ2xlO1xuICAgIHJlYWRvbmx5IGdyb3VwOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgb25DbG9zZTogKCkgPT4gdm9pZDtcbiAgICByZWFkb25seSBvbkZpbmlzaDogKG5ld1ZhbDogc3RyaW5nKSA9PiB2b2lkO1xuICAgIHJlYWRvbmx5IGNhbnZhc0JvdW5kczogRE9NUmVjdDtcbn1cblxuY29uc3QgUmVuYW1lSW5wdXQgPSBzdHlsZWQuaW5wdXQ8eyB0YXJnZXRIZWlnaHQ6IG51bWJlciB9PmBcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2RnLWJnLWhlYWRlci1oYXMtZm9jdXMpO1xuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tZ2RnLWJvcmRlci1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWdyb3VwLWhlYWRlcik7XG4gICAgbWluLWhlaWdodDogJHtwID0+IE1hdGgubWF4KDE2LCBwLnRhcmdldEhlaWdodCAtIDEwKX1weDtcbiAgICBmb250OiB2YXIoLS1nZGctaGVhZGVyLWZvbnQtc3R5bGUpIHZhcigtLWdkZy1mb250LWZhbWlseSk7XG5gO1xuXG5leHBvcnQgY29uc3QgR3JvdXBSZW5hbWU6IFJlYWN0LlZGQzxQcm9wcz4gPSBwID0+IHtcbiAgICBjb25zdCB7IGJvdW5kcywgZ3JvdXAsIG9uQ2xvc2UsIGNhbnZhc0JvdW5kcywgb25GaW5pc2ggfSA9IHA7XG5cbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKGdyb3VwKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxDbGlja091dHNpZGVDb250YWluZXJcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICBsZWZ0OiBib3VuZHMueCAtIGNhbnZhc0JvdW5kcy5sZWZ0ICsgMSxcbiAgICAgICAgICAgICAgICB0b3A6IGJvdW5kcy55IC0gY2FudmFzQm91bmRzLnRvcCxcbiAgICAgICAgICAgICAgICB3aWR0aDogYm91bmRzLndpZHRoIC0gMixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGJvdW5kcy5oZWlnaHQsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjc3NgXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1iZy1oZWFkZXIpO1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbkNsb3NlfT5cbiAgICAgICAgICAgIDxSZW5hbWVJbnB1dFxuICAgICAgICAgICAgICAgIHRhcmdldEhlaWdodD17Ym91bmRzLmhlaWdodH1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImdyb3VwLXJlbmFtZS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17b25DbG9zZX1cbiAgICAgICAgICAgICAgICBvbkZvY3VzPXtlID0+IGUudGFyZ2V0LnNldFNlbGVjdGlvblJhbmdlKDAsIHZhbHVlLmxlbmd0aCl9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gc2V0VmFsdWUoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkZpbmlzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09IFwiRXNjYXBlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9DbGlja091dHNpZGVDb250YWluZXI+XG4gICAgKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQVdBLE1BQU0sY0FBYyxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGtCQVNULE9BQUssS0FBSyxJQUFJLElBQUksRUFBRSxlQUFlO0FBQUE7QUFBQTtBQUk5QyxhQUFNLGNBQWdDLE9BQUs7QUFDOUMsUUFBTSxFQUFFLFFBQVEsT0FBTyxTQUFTLGNBQWMsYUFBYTtBQUUzRCxRQUFNLENBQUMsT0FBTyxZQUFZLE1BQU0sU0FBUztBQUV6QyxTQUNJLG9DQUFDLHVCQUFEO0FBQUEsSUFDSSxPQUFPO0FBQUEsTUFDSCxVQUFVO0FBQUEsTUFDVixNQUFNLE9BQU8sSUFBSSxhQUFhLE9BQU87QUFBQSxNQUNyQyxLQUFLLE9BQU8sSUFBSSxhQUFhO0FBQUEsTUFDN0IsT0FBTyxPQUFPLFFBQVE7QUFBQSxNQUN0QixRQUFRLE9BQU87QUFBQTtBQUFBLElBRW5CLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFNWCxnQkFBZ0I7QUFBQSxLQUNoQixvQ0FBQyxhQUFEO0FBQUEsSUFDSSxjQUFjLE9BQU87QUFBQSxJQUNyQixlQUFZO0FBQUEsSUFDWjtBQUFBLElBQ0EsUUFBUTtBQUFBLElBQ1IsU0FBUyxPQUFLLEVBQUUsT0FBTyxrQkFBa0IsR0FBRyxNQUFNO0FBQUEsSUFDbEQsVUFBVSxPQUFLLFNBQVMsRUFBRSxPQUFPO0FBQUEsSUFDakMsV0FBVyxPQUFLO0FBQ1osVUFBSSxFQUFFLFFBQVEsU0FBUztBQUNuQixpQkFBUztBQUFBLGlCQUNGLEVBQUUsUUFBUSxVQUFVO0FBQzNCO0FBQUE7QUFBQTtBQUFBLElBR1IsV0FBVztBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==*/","import { styled } from \"@linaria/react\";\nimport * as React from \"react\";\nfunction toCss(x) {\n if (typeof x === \"string\")\n return x;\n return `${x}px`;\n}\nconst Wrapper = styled.div`\n position: relative;\n\n min-width: 10px;\n min-height: 10px;\n max-width: 100%;\n max-height: 100%;\n\n width: ${(p) => p.innerWidth};\n height: ${(p) => p.innerHeight};\n\n overflow: hidden;\n overflow: clip;\n\n contain: strict;\n\n > :first-child {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n }\n`;\nexport const DataEditorContainer = (p) => {\n const { inWidth, inHeight, children, ...rest } = p;\n return /* @__PURE__ */ React.createElement(Wrapper, {\n innerHeight: toCss(inHeight),\n innerWidth: toCss(inWidth),\n ...rest\n }, children);\n};\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWVkaXRvci1jb250YWluZXIvZGF0YS1ncmlkLWNvbnRhaW5lci50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbGluYXJpYS9yZWFjdFwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmludGVyZmFjZSBXcmFwcGVyUHJvcHMge1xuICAgIGluV2lkdGg6IG51bWJlciB8IHN0cmluZztcbiAgICBpbkhlaWdodDogbnVtYmVyIHwgc3RyaW5nO1xufVxuXG5mdW5jdGlvbiB0b0Nzcyh4OiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIpIHJldHVybiB4O1xuICAgIHJldHVybiBgJHt4fXB4YDtcbn1cblxuY29uc3QgV3JhcHBlciA9IHN0eWxlZC5kaXY8eyBpbm5lcldpZHRoOiBzdHJpbmc7IGlubmVySGVpZ2h0OiBzdHJpbmcgfT5gXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbWluLXdpZHRoOiAxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDEwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICB3aWR0aDogJHtwID0+IHAuaW5uZXJXaWR0aH07XG4gICAgaGVpZ2h0OiAke3AgPT4gcC5pbm5lckhlaWdodH07XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG92ZXJmbG93OiBjbGlwO1xuXG4gICAgY29udGFpbjogc3RyaWN0O1xuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBXcmFwcGVyUHJvcHMsIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiB7fVxuXG5leHBvcnQgY29uc3QgRGF0YUVkaXRvckNvbnRhaW5lcjogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48UHJvcHM+PiA9IHAgPT4ge1xuICAgIGNvbnN0IHsgaW5XaWR0aCwgaW5IZWlnaHQsIGNoaWxkcmVuLCAuLi5yZXN0IH0gPSBwO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxXcmFwcGVyIGlubmVySGVpZ2h0PXt0b0NzcyhpbkhlaWdodCl9IGlubmVyV2lkdGg9e3RvQ3NzKGluV2lkdGgpfSB7Li4ucmVzdH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvV3JhcHBlcj5cbiAgICApO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQ0E7QUFPQSxlQUFlLEdBQW9CO0FBQy9CLE1BQUksT0FBTyxNQUFNO0FBQVUsV0FBTztBQUNsQyxTQUFPLEdBQUc7QUFBQTtBQUdkLE1BQU0sVUFBVSxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQVFWLE9BQUssRUFBRTtBQUFBLGNBQ04sT0FBSyxFQUFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCZCxhQUFNLHNCQUErRSxPQUFLO0FBQzdGLFFBQU0sRUFBRSxTQUFTLFVBQVUsYUFBYSxTQUFTO0FBQ2pELFNBQ0ksb0NBQUMsU0FBRDtBQUFBLElBQVMsYUFBYSxNQUFNO0FBQUEsSUFBVyxZQUFZLE1BQU07QUFBQSxPQUFjO0FBQUEsS0FDbEU7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K*/","import { styled } from \"@linaria/react\";\nexport const BubblesOverlayEditorStyle = styled.div`\n display: flex;\n flex-wrap: wrap;\n\n .boe-bubble {\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: 100px;\n\n padding: 0 8px;\n height: 20px;\n\n background-color: var(--gdg-bg-bubble);\n color: var(--gdg-text-dark);\n margin: 2px;\n }\n\n textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n\n opacity: 0;\n }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWdyaWQtb3ZlcmxheS1lZGl0b3IvcHJpdmF0ZS9idWJibGVzLW92ZXJsYXktZWRpdG9yLXN0eWxlLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBCdWJibGVzT3ZlcmxheUVkaXRvclN0eWxlID0gc3R5bGVkLmRpdmBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC5ib2UtYnViYmxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG5cbiAgICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYmctYnViYmxlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWRhcmspO1xuICAgICAgICBtYXJnaW46IDJweDtcbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgd2lkdGg6IDBweDtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG5cbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5gO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFFTyxhQUFNLDRCQUE0QixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==*/","import * as React from \"react\";\nimport { styled } from \"@linaria/react\";\nconst DrilldownOverlayEditorStyle = styled.div`\n display: flex;\n flex-wrap: wrap;\n\n .doe-bubble {\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: 100px;\n\n padding: 0 8px;\n height: 24px;\n\n background-color: var(--gdg-bg-cell);\n color: var(--gdg-text-dark);\n margin: 2px;\n\n border-radius: 6px;\n\n box-shadow: 0 0 1px rgba(62, 65, 86, 0.4), 0 1px 3px rgba(62, 65, 86, 0.4);\n\n img {\n height: 16px;\n object-fit: contain;\n\n margin-right: 4px;\n }\n }\n\n textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n\n opacity: 0;\n }\n`;\nconst DrilldownOverlayEditor = (p) => {\n const { drilldowns } = p;\n return /* @__PURE__ */ React.createElement(DrilldownOverlayEditorStyle, null, drilldowns.map((d, i) => /* @__PURE__ */ React.createElement(\"div\", {\n key: i,\n className: \"doe-bubble\"\n }, d.img !== void 0 && /* @__PURE__ */ React.createElement(\"img\", {\n src: d.img\n }), /* @__PURE__ */ React.createElement(\"div\", null, d.text))));\n};\nexport default DrilldownOverlayEditor;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWdyaWQtb3ZlcmxheS1lZGl0b3IvcHJpdmF0ZS9kcmlsbGRvd24tb3ZlcmxheS1lZGl0b3IudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IERyaWxsZG93bkNlbGxEYXRhIH0gZnJvbSBcIi4uLy4uL2RhdGEtZ3JpZC9kYXRhLWdyaWQtdHlwZXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmNvbnN0IERyaWxsZG93bk92ZXJsYXlFZGl0b3JTdHlsZSA9IHN0eWxlZC5kaXZgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAuZG9lLWJ1YmJsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2RnLWJnLWNlbGwpO1xuICAgICAgICBjb2xvcjogdmFyKC0tZ2RnLXRleHQtZGFyayk7XG4gICAgICAgIG1hcmdpbjogMnB4O1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoNjIsIDY1LCA4NiwgMC40KSwgMCAxcHggM3B4IHJnYmEoNjIsIDY1LCA4NiwgMC40KTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcblxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgd2lkdGg6IDBweDtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG5cbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIHJlYWRvbmx5IGRyaWxsZG93bnM6IHJlYWRvbmx5IERyaWxsZG93bkNlbGxEYXRhW107XG59XG5cbmNvbnN0IERyaWxsZG93bk92ZXJsYXlFZGl0b3I6IFJlYWN0LkZ1bmN0aW9uQ29tcG9uZW50PFByb3BzPiA9IHAgPT4ge1xuICAgIGNvbnN0IHsgZHJpbGxkb3ducyB9ID0gcDtcbiAgICByZXR1cm4gKFxuICAgICAgICA8RHJpbGxkb3duT3ZlcmxheUVkaXRvclN0eWxlPlxuICAgICAgICAgICAge2RyaWxsZG93bnMubWFwKChkLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdiBrZXk9e2l9IGNsYXNzTmFtZT1cImRvZS1idWJibGVcIj5cbiAgICAgICAgICAgICAgICAgICAge2QuaW1nICE9PSB1bmRlZmluZWQgJiYgPGltZyBzcmM9e2QuaW1nfSAvPn1cbiAgICAgICAgICAgICAgICAgICAgPGRpdj57ZC50ZXh0fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvRHJpbGxkb3duT3ZlcmxheUVkaXRvclN0eWxlPlxuICAgICk7XG59O1xuZXhwb3J0IGRlZmF1bHQgRHJpbGxkb3duT3ZlcmxheUVkaXRvcjtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUNBO0FBQ0E7QUFFQSxNQUFNLDhCQUE4QixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkMzQyxNQUFNLHlCQUF5RCxPQUFLO0FBQ2hFLFFBQU0sRUFBRSxlQUFlO0FBQ3ZCLFNBQ0ksb0NBQUMsNkJBQUQsTUFDSyxXQUFXLElBQUksQ0FBQyxHQUFHLE1BQ2hCLG9DQUFDLE9BQUQ7QUFBQSxJQUFLLEtBQUs7QUFBQSxJQUFHLFdBQVU7QUFBQSxLQUNsQixFQUFFLFFBQVEsVUFBYSxvQ0FBQyxPQUFEO0FBQUEsSUFBSyxLQUFLLEVBQUU7QUFBQSxNQUNwQyxvQ0FBQyxPQUFELE1BQU0sRUFBRTtBQUFBO0FBTTVCLGVBQWU7IiwKICAibmFtZXMiOiBbXQp9Cg==*/","import { styled } from \"@linaria/react\";\nexport const ImageOverlayEditorStyle = styled.div`\n display: flex;\n\n height: 100%;\n\n .centering-container {\n display: flex;\n justify-content: center;\n align-items: center;\n\n height: 100%;\n\n img,\n canvas {\n max-height: calc(100vh - var(--overlay-top) - 20px);\n object-fit: contain;\n user-select: none;\n }\n\n canvas {\n max-width: 380px;\n }\n }\n\n .edit-icon {\n position: absolute;\n top: 12px;\n right: 0;\n width: 48px;\n height: 48px;\n color: var(--gdg-accent-color);\n\n cursor: pointer;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n > * {\n width: 24px;\n height: 24px;\n }\n }\n\n textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n\n opacity: 0;\n }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWdyaWQtb3ZlcmxheS1lZGl0b3IvcHJpdmF0ZS9pbWFnZS1vdmVybGF5LWVkaXRvci1zdHlsZS50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbGluYXJpYS9yZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgSW1hZ2VPdmVybGF5RWRpdG9yU3R5bGUgPSBzdHlsZWQuZGl2YFxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAuY2VudGVyaW5nLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICBpbWcsXG4gICAgICAgIGNhbnZhcyB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tb3ZlcmxheS10b3ApIC0gMjBweCk7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBjYW52YXMge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzODBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5lZGl0LWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTJweDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nZGctYWNjZW50LWNvbG9yKTtcblxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMHB4O1xuXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuYDtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBRU8sYUFBTSwwQkFBMEIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==*/","import { styled } from \"@linaria/react\";\nexport const MarkdownContainer = styled.div`\n word-break: break-word;\n -webkit-touch-callout: default;\n padding-top: 6px;\n\n > * {\n margin: 0;\n }\n\n & *:last-child {\n margin-bottom: 0;\n }\n\n & p img {\n width: 100%;\n }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9tYXJrZG93bi1kaXYvcHJpdmF0ZS9tYXJrZG93bi1jb250YWluZXIudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IE1hcmtkb3duQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogZGVmYXVsdDtcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xuXG4gICAgPiAqIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYgKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmIHAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuYDtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBRU8sYUFBTSxvQkFBb0IsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/","import { styled } from \"@linaria/react\";\nexport const InputBox = styled.textarea`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n\n border-radius: 0px;\n\n resize: none;\n white-space: pre-wrap;\n min-width: 100%;\n overflow: hidden;\n border: 0;\n background-color: transparent;\n\n ::placeholder {\n color: var(--gdg-text-light);\n }\n\n font-size: var(--gdg-editor-font-size);\n line-height: 16px;\n font-family: var(--gdg-font-family);\n color: var(--gdg-text-dark);\n padding: 0;\n margin: 0;\n\n .invalid & {\n text-decoration: underline;\n text-decoration-color: #d60606;\n }\n`;\nexport const ShadowBox = styled.div`\n visibility: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n\n width: max-content;\n max-width: 100%;\n\n min-width: 100%;\n\n font-size: var(--gdg-editor-font-size);\n line-height: 16px;\n font-family: var(--gdg-font-family);\n color: var(--gdg-text-dark);\n padding: 0;\n margin: 0;\n\n padding-bottom: 2px;\n`;\nexport const GrowingEntryStyle = styled.div`\n position: relative;\n margin-top: 6px;\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9ncm93aW5nLWVudHJ5L2dyb3dpbmctZW50cnktc3R5bGUudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IElucHV0Qm94ID0gc3R5bGVkLnRleHRhcmVhYFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuXG4gICAgcmVzaXplOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICA6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWxpZ2h0KTtcbiAgICB9XG5cbiAgICBmb250LXNpemU6IHZhcigtLWdkZy1lZGl0b3ItZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZ2RnLWZvbnQtZmFtaWx5KTtcbiAgICBjb2xvcjogdmFyKC0tZ2RnLXRleHQtZGFyayk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAuaW52YWxpZCAmIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogI2Q2MDYwNjtcbiAgICB9XG5gO1xuXG5leHBvcnQgY29uc3QgU2hhZG93Qm94ID0gc3R5bGVkLmRpdmBcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcblxuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICBtaW4td2lkdGg6IDEwMCU7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWdkZy1lZGl0b3ItZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZ2RnLWZvbnQtZmFtaWx5KTtcbiAgICBjb2xvcjogdmFyKC0tZ2RnLXRleHQtZGFyayk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IEdyb3dpbmdFbnRyeVN0eWxlID0gc3R5bGVkLmRpdmBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuYDtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBRU8sYUFBTSxXQUFXLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQ3hCLGFBQU0sWUFBWSxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0J6QixhQUFNLG9CQUFvQixPQUFPO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/","import { GrowingEntryStyle } from \"../../growing-entry/growing-entry-style\";\nimport { styled } from \"@linaria/react\";\nexport const MarkdownOverlayEditorStyle = styled.div`\n min-width: ${(p) => p.targetWidth}px;\n width: 100%;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n position: relative;\n color: var(--gdg-text-dark);\n\n ${GrowingEntryStyle} {\n flex-shrink: 1;\n min-width: 0;\n }\n\n .spacer {\n flex: 1;\n }\n\n .edit-icon {\n position: relative;\n cursor: pointer;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n color: var(--gdg-accent-color);\n\n padding: 0;\n\n height: 24px;\n width: 24px;\n flex-shrink: 0;\n\n transition: all \"0.125s ease\";\n\n border-radius: 6px;\n\n > * {\n width: 16px;\n height: 16px;\n }\n }\n\n .edit-hover {\n :hover {\n background-color: var(--gdg-accent-light);\n transition: background-color 150ms;\n }\n }\n\n .checkmark-hover {\n :hover {\n color: #ffffff;\n background-color: var(--gdg-accent-color);\n }\n }\n\n .md-edit-textarea {\n position: relative;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n margin-top: 25px;\n opacity: 0;\n padding: 0;\n }\n\n .ml-6 {\n margin-left: 6px;\n }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWdyaWQtb3ZlcmxheS1lZGl0b3IvcHJpdmF0ZS9tYXJrZG93bi1vdmVybGF5LWVkaXRvci1zdHlsZS50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IEdyb3dpbmdFbnRyeVN0eWxlIH0gZnJvbSBcIi4uLy4uL2dyb3dpbmctZW50cnkvZ3Jvd2luZy1lbnRyeS1zdHlsZVwiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gICAgdGFyZ2V0V2lkdGg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcmtkb3duT3ZlcmxheUVkaXRvclN0eWxlID0gc3R5bGVkLmRpdjxQcm9wcz5gXG4gICAgbWluLXdpZHRoOiAke3AgPT4gcC50YXJnZXRXaWR0aH1weDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWRhcmspO1xuXG4gICAgJHtHcm93aW5nRW50cnlTdHlsZX0ge1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC5zcGFjZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cblxuICAgIC5lZGl0LWljb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBjb2xvcjogdmFyKC0tZ2RnLWFjY2VudC1jb2xvcik7XG5cbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgXCIwLjEyNXMgZWFzZVwiO1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAgICAgICA+ICoge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZWRpdC1ob3ZlciB7XG4gICAgICAgIDpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYWNjZW50LWxpZ2h0KTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTUwbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2ttYXJrLWhvdmVyIHtcbiAgICAgICAgOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2RnLWFjY2VudC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWQtZWRpdC10ZXh0YXJlYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgd2lkdGg6IDBweDtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLm1sLTYge1xuICAgICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIH1cbmA7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUNBO0FBTU8sYUFBTSw2QkFBNkIsT0FBTztBQUFBLGlCQUNoQyxPQUFLLEVBQUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BUWxCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/","import { styled } from \"@linaria/react\";\nexport const NumberOverlayEditorStyle = styled.div`\n display: flex;\n margin: 6px 0 3px;\n color: var(--gdg-text-dark);\n\n > input {\n font-size: var(--gdg-editor-font-size);\n padding: 0;\n font-family: var(--gdg-font-family);\n color: var(--gdg-text-dark);\n background-color: var(--gdg-bg-cell);\n }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWdyaWQtb3ZlcmxheS1lZGl0b3IvcHJpdmF0ZS9udW1iZXItb3ZlcmxheS1lZGl0b3Itc3R5bGUudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IE51bWJlck92ZXJsYXlFZGl0b3JTdHlsZSA9IHN0eWxlZC5kaXZgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDZweCAwIDNweDtcbiAgICBjb2xvcjogdmFyKC0tZ2RnLXRleHQtZGFyayk7XG5cbiAgICA+IGlucHV0IHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1nZGctZWRpdG9yLWZvbnQtc2l6ZSk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1nZGctZm9udC1mYW1pbHkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tZ2RnLXRleHQtZGFyayk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1iZy1jZWxsKTtcbiAgICB9XG5gO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFFTyxhQUFNLDJCQUEyQixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/","import { styled } from \"@linaria/react\";\nexport const UriOverlayEditorStyle = styled.div`\n display: flex;\n\n flex-grow: 1;\n\n align-items: center;\n\n min-height: 21px;\n\n .link-area {\n flex-grow: 1;\n flex-shrink: 1;\n\n cursor: pointer;\n\n margin-right: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n color: var(--gdg-link-color);\n text-decoration: underline !important;\n }\n\n .edit-icon {\n flex-shrink: 0;\n width: 32px;\n color: var(--gdg-accent-color);\n\n cursor: pointer;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n > * {\n width: 24px;\n height: 24px;\n }\n }\n\n textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n\n opacity: 0;\n }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2hvbWUvcnVubmVyL3dvcmsvZ2xpZGUtZGF0YS1ncmlkL2dsaWRlLWRhdGEtZ3JpZC9wYWNrYWdlcy9jb3JlL3NyYy9kYXRhLWdyaWQtb3ZlcmxheS1lZGl0b3IvcHJpdmF0ZS91cmktb3ZlcmxheS1lZGl0b3Itc3R5bGUudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IFVyaU92ZXJsYXlFZGl0b3JTdHlsZSA9IHN0eWxlZC5kaXZgXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBtaW4taGVpZ2h0OiAyMXB4O1xuXG4gICAgLmxpbmstYXJlYSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG5cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICBjb2xvcjogdmFyKC0tZ2RnLWxpbmstY29sb3IpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5lZGl0LWljb24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nZGctYWNjZW50LWNvbG9yKTtcblxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMHB4O1xuXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuYDtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBRU8sYUFBTSx3QkFBd0IsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==*/"],"names":[".d1t1th9s",".m15w2ly5",".s1jz82f8",".sxep88s",".r1kzy40b",".c1sqdbw3",".wzg2m5k",".b1bqsp5z",".df2kt4a",".i1eozt10",".mlbeo71",".ijuk0po",".saq3p5l",".gf8vzix",".mdwzdl1",".n1czszh3",".uf0sjo8"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/297.7470cad2.chunk.js b/static/js/297.7470cad2.chunk.js new file mode 100644 index 0000000..2946661 --- /dev/null +++ b/static/js/297.7470cad2.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktom_777=self.webpackChunktom_777||[]).push([[297],{297:function(e,t,r){r.r(t),r.d(t,{default:function(){return I}});var n,a=r(3378),o=r(2791);function u(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a=i?a+=g("0",u-i):a=(a.substring(0,u)||"0")+"."+a.substring(u),r+a}function p(e,t,r){if(-1!==["","-"].indexOf(e))return e;var n=(-1!==e.indexOf(".")||r)&&t,a=v(e),o=a.beforeDecimal,u=a.afterDecimal,i=a.hasNegation,l=parseFloat("0."+(u||"0")),s=(u.length<=t?"0."+u:l.toFixed(t)).split(".");return""+(i?"-":"")+o.split("").reverse().reduce((function(e,t,r){return e.length>r?(Number(e[0])+Number(t)).toString()+e.substring(1,e.length):t+e}),s[0])+(n?".":"")+d(s[1]||"",t,r)}function h(e,t){if(e.value=e.value,null!==e){if(e.createTextRange){var r=e.createTextRange();return r.move("character",t),r.select(),!0}return e.selectionStart||0===e.selectionStart?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}function S(e,t){for(var r=0,n=0,a=e.length,o=t.length;e[r]===t[r]&&rr&&a-n>r;)n++;return{from:{start:r,end:a-n},to:{start:r,end:o-n}}}function b(e){return Math.max(e.selectionStart,e.selectionEnd)}function y(e){return{from:{start:0,end:0},to:{start:0,end:e.length},lastValue:""}}function w(e,t,r,n){var a,o,u,i=e.length;if(a=t,o=0,u=i,t=Math.min(Math.max(a,o),u),"left"===n){for(;t>=0&&!r[t];)t--;-1===t&&(t=r.indexOf(!0))}else{for(;t<=i&&!r[t];)t++;t>i&&(t=r.lastIndexOf(!0))}return-1===t&&(t=i),t}function x(e){for(var t=Array.from({length:e.length+1}).map((function(){return!0})),r=0,n=t.length;r0&&-1===g[b];)b--;var w=-1===b||-1===g[b]?0:g[b]+1;return w>y?y:n-wE.length-u.length||Oj||g>e.length-u.length)&&(R=g),e=e.substring(0,R),e=function(e,t){void 0===e&&(e="");var r=new RegExp("(-)"),n=new RegExp("(-)(.)*(-)"),a=r.test(e),o=n.test(e);return e=e.replace(/-/g,""),a&&!o&&t&&(e="-"+e),e}(V?"-"+e:e,a),e=(e.match(function(e,t){return new RegExp("(^-)|[0-9]|"+f(e),t?"g":void 0)}(h,!0))||[]).join("");var B=e.indexOf(h),I=v(e=e.replace(new RegExp(f(h),"g"),(function(e,t){return t===B?".":""})),a),F=I.beforeDecimal,k=I.afterDecimal,M=I.addNegation;return c.end-c.start= coffiecientLn) {\n // if decimal index is less then 0 add leading 0s\n coefficient = coefficient + repeat('0', decimalIndex - coffiecientLn);\n }\n else {\n // else add decimal point at proper index\n coefficient =\n (coefficient.substring(0, decimalIndex) || '0') + '.' + coefficient.substring(decimalIndex);\n }\n return sign + coefficient;\n}\n/**\n * This method is required to round prop value to given scale.\n * Not used .round or .fixedTo because that will break with big numbers\n */\nfunction roundToPrecision(numStr, scale, fixedDecimalScale) {\n //if number is empty don't do anything return empty string\n if (['', '-'].indexOf(numStr) !== -1)\n { return numStr; }\n var shouldHaveDecimalSeparator = (numStr.indexOf('.') !== -1 || fixedDecimalScale) && scale;\n var ref = splitDecimal(numStr);\n var beforeDecimal = ref.beforeDecimal;\n var afterDecimal = ref.afterDecimal;\n var hasNegation = ref.hasNegation;\n var floatValue = parseFloat((\"0.\" + (afterDecimal || '0')));\n var floatValueStr = afterDecimal.length <= scale ? (\"0.\" + afterDecimal) : floatValue.toFixed(scale);\n var roundedDecimalParts = floatValueStr.split('.');\n var intPart = beforeDecimal\n .split('')\n .reverse()\n .reduce(function (roundedStr, current, idx) {\n if (roundedStr.length > idx) {\n return ((Number(roundedStr[0]) + Number(current)).toString() +\n roundedStr.substring(1, roundedStr.length));\n }\n return current + roundedStr;\n }, roundedDecimalParts[0]);\n var decimalPart = limitToScale(roundedDecimalParts[1] || '', scale, fixedDecimalScale);\n var negation = hasNegation ? '-' : '';\n var decimalSeparator = shouldHaveDecimalSeparator ? '.' : '';\n return (\"\" + negation + intPart + decimalSeparator + decimalPart);\n}\n/** set the caret positon in an input field **/\nfunction setCaretPosition(el, caretPos) {\n el.value = el.value;\n // ^ this is used to not only get 'focus', but\n // to make sure we don't have it everything -selected-\n // (it causes an issue in chrome, and having it doesn't hurt any other browser)\n if (el !== null) {\n /* @ts-ignore */\n if (el.createTextRange) {\n /* @ts-ignore */\n var range = el.createTextRange();\n range.move('character', caretPos);\n range.select();\n return true;\n }\n // (el.selectionStart === 0 added for Firefox bug)\n if (el.selectionStart || el.selectionStart === 0) {\n el.focus();\n el.setSelectionRange(caretPos, caretPos);\n return true;\n }\n // fail city, fortunately this never happens (as far as I've tested) :)\n el.focus();\n return false;\n }\n}\nfunction findChangeRange(prevValue, newValue) {\n var i = 0, j = 0;\n var prevLength = prevValue.length;\n var newLength = newValue.length;\n while (prevValue[i] === newValue[i] && i < prevLength)\n { i++; }\n //check what has been changed from last\n while (prevValue[prevLength - 1 - j] === newValue[newLength - 1 - j] &&\n newLength - j > i &&\n prevLength - j > i) {\n j++;\n }\n return {\n from: { start: i, end: prevLength - j },\n to: { start: i, end: newLength - j },\n };\n}\n/*\n Returns a number whose value is limited to the given range\n*/\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nfunction geInputCaretPosition(el) {\n /*Max of selectionStart and selectionEnd is taken for the patch of pixel and other mobile device caret bug*/\n return Math.max(el.selectionStart, el.selectionEnd);\n}\nfunction addInputMode() {\n return (typeof navigator !== 'undefined' &&\n !(navigator.platform && /iPhone|iPod/.test(navigator.platform)));\n}\nfunction getDefaultChangeMeta(value) {\n return {\n from: {\n start: 0,\n end: 0,\n },\n to: {\n start: 0,\n end: value.length,\n },\n lastValue: '',\n };\n}\nfunction getMaskAtIndex(mask, index) {\n if ( mask === void 0 ) mask = ' ';\n\n if (typeof mask === 'string') {\n return mask;\n }\n return mask[index] || ' ';\n}\nfunction getCaretPosition(newFormattedValue, lastFormattedValue, curValue, curCaretPos, boundary, isValidInputCharacter) {\n var changeRange = findChangeRange(curValue, newFormattedValue);\n var from = changeRange.from;\n var to = changeRange.to;\n // if only last typed character is changed in the\n if (from.end - from.start === 1 && from.end === to.end && to.end === curCaretPos) {\n // don't do anything\n return curCaretPos;\n }\n /**\n * if something got inserted on empty value, add the formatted character before the current value,\n * This is to avoid the case where typed character is present on format characters\n */\n var firstAllowedPosition = boundary.findIndex(function (b) { return b; });\n var prefixFormat = newFormattedValue.slice(0, firstAllowedPosition);\n if (!lastFormattedValue && !curValue.startsWith(prefixFormat)) {\n curValue = prefixFormat + curValue;\n curCaretPos = curCaretPos + prefixFormat.length;\n }\n var curValLn = curValue.length;\n var formattedValueLn = newFormattedValue.length;\n // create index map\n var addedIndexMap = {};\n var indexMap = new Array(curValLn);\n for (var i = 0; i < curValLn; i++) {\n indexMap[i] = -1;\n for (var j = 0, jLn = formattedValueLn; j < jLn; j++) {\n if (curValue[i] === newFormattedValue[j] && addedIndexMap[j] !== true) {\n indexMap[i] = j;\n addedIndexMap[j] = true;\n break;\n }\n }\n }\n /**\n * For current caret position find closest characters (left and right side)\n * which are properly mapped to formatted value.\n * The idea is that the new caret position will exist always in the boundary of\n * that mapped index\n */\n var pos = curCaretPos;\n while (pos < curValLn && (indexMap[pos] === -1 || !isValidInputCharacter(curValue[pos]))) {\n pos++;\n }\n // if the caret position is on last keep the endIndex as last for formatted value\n var endIndex = pos === curValLn || indexMap[pos] === -1 ? formattedValueLn : indexMap[pos];\n pos = curCaretPos - 1;\n while (pos > 0 && indexMap[pos] === -1)\n { pos--; }\n var startIndex = pos === -1 || indexMap[pos] === -1 ? 0 : indexMap[pos] + 1;\n /**\n * case where a char is added on suffix and removed from middle, example 2sq345 becoming $2,345 sq\n * there is still a mapping but the order of start index and end index is changed\n */\n if (startIndex > endIndex)\n { return endIndex; }\n /**\n * given the current caret position if it closer to startIndex\n * keep the new caret position on start index or keep it closer to endIndex\n */\n return curCaretPos - startIndex < endIndex - curCaretPos ? startIndex : endIndex;\n}\n/* This keeps the caret within typing area so people can't type in between prefix or suffix or format characters */\nfunction getCaretPosInBoundary(value, caretPos, boundary, direction) {\n var valLn = value.length;\n // clamp caret position to [0, value.length]\n caretPos = clamp(caretPos, 0, valLn);\n if (direction === 'left') {\n while (caretPos >= 0 && !boundary[caretPos])\n { caretPos--; }\n // if we don't find any suitable caret position on left, set it on first allowed position\n if (caretPos === -1)\n { caretPos = boundary.indexOf(true); }\n }\n else {\n while (caretPos <= valLn && !boundary[caretPos])\n { caretPos++; }\n // if we don't find any suitable caret position on right, set it on last allowed position\n if (caretPos > valLn)\n { caretPos = boundary.lastIndexOf(true); }\n }\n // if we still don't find caret position, set it at the end of value\n if (caretPos === -1)\n { caretPos = valLn; }\n return caretPos;\n}\nfunction caretUnknownFormatBoundary(formattedValue) {\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n for (var i = 0, ln = boundaryAry.length; i < ln; i++) {\n // consider caret to be in boundary if it is before or after numeric value\n boundaryAry[i] = Boolean(charIsNumber(formattedValue[i]) || charIsNumber(formattedValue[i - 1]));\n }\n return boundaryAry;\n}\nfunction useInternalValues(value, defaultValue, valueIsNumericString, format, removeFormatting, onValueChange) {\n if ( onValueChange === void 0 ) onValueChange = noop;\n\n var getValues = usePersistentCallback(function (value, valueIsNumericString) {\n var formattedValue, numAsString;\n if (isNotValidValue(value)) {\n numAsString = '';\n formattedValue = '';\n }\n else if (typeof value === 'number' || valueIsNumericString) {\n numAsString = typeof value === 'number' ? toNumericString(value) : value;\n formattedValue = format(numAsString);\n }\n else {\n numAsString = removeFormatting(value, undefined);\n formattedValue = format(numAsString);\n }\n return { formattedValue: formattedValue, numAsString: numAsString };\n });\n var ref = useState(function () {\n return getValues(isNil(value) ? defaultValue : value, valueIsNumericString);\n });\n var values = ref[0];\n var setValues = ref[1];\n var _onValueChange = function (newValues, sourceInfo) {\n if (newValues.formattedValue !== values.formattedValue) {\n setValues({\n formattedValue: newValues.formattedValue,\n numAsString: newValues.value,\n });\n }\n // call parent on value change if only if formatted value is changed\n onValueChange(newValues, sourceInfo);\n };\n // if value is switch from controlled to uncontrolled, use the internal state's value to format with new props\n var _value = value;\n var _valueIsNumericString = valueIsNumericString;\n if (isNil(value)) {\n _value = values.numAsString;\n _valueIsNumericString = true;\n }\n var newValues = getValues(_value, _valueIsNumericString);\n useMemo(function () {\n setValues(newValues);\n }, [newValues.formattedValue]);\n return [values, _onValueChange];\n}\n\nfunction defaultRemoveFormatting(value) {\n return value.replace(/[^0-9]/g, '');\n}\nfunction defaultFormat(value) {\n return value;\n}\nfunction NumberFormatBase(props) {\n var type = props.type; if ( type === void 0 ) type = 'text';\n var displayType = props.displayType; if ( displayType === void 0 ) displayType = 'input';\n var customInput = props.customInput;\n var renderText = props.renderText;\n var getInputRef = props.getInputRef;\n var format = props.format; if ( format === void 0 ) format = defaultFormat;\n var removeFormatting = props.removeFormatting; if ( removeFormatting === void 0 ) removeFormatting = defaultRemoveFormatting;\n var defaultValue = props.defaultValue;\n var valueIsNumericString = props.valueIsNumericString;\n var onValueChange = props.onValueChange;\n var isAllowed = props.isAllowed;\n var onChange = props.onChange; if ( onChange === void 0 ) onChange = noop;\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var onMouseUp = props.onMouseUp; if ( onMouseUp === void 0 ) onMouseUp = noop;\n var onFocus = props.onFocus; if ( onFocus === void 0 ) onFocus = noop;\n var onBlur = props.onBlur; if ( onBlur === void 0 ) onBlur = noop;\n var propValue = props.value;\n var getCaretBoundary = props.getCaretBoundary; if ( getCaretBoundary === void 0 ) getCaretBoundary = caretUnknownFormatBoundary;\n var isValidInputCharacter = props.isValidInputCharacter; if ( isValidInputCharacter === void 0 ) isValidInputCharacter = charIsNumber;\n var otherProps = __rest(props, [\"type\", \"displayType\", \"customInput\", \"renderText\", \"getInputRef\", \"format\", \"removeFormatting\", \"defaultValue\", \"valueIsNumericString\", \"onValueChange\", \"isAllowed\", \"onChange\", \"onKeyDown\", \"onMouseUp\", \"onFocus\", \"onBlur\", \"value\", \"getCaretBoundary\", \"isValidInputCharacter\"]);\n var ref = useInternalValues(propValue, defaultValue, Boolean(valueIsNumericString), format, removeFormatting, onValueChange);\n var ref_0 = ref[0];\n var formattedValue = ref_0.formattedValue;\n var numAsString = ref_0.numAsString;\n var onFormattedValueChange = ref[1];\n var lastUpdatedValue = useRef({ formattedValue: formattedValue, numAsString: numAsString });\n var _onValueChange = function (values, source) {\n lastUpdatedValue.current = { formattedValue: values.formattedValue, numAsString: values.value };\n onFormattedValueChange(values, source);\n };\n var ref$1 = useState(false);\n var mounted = ref$1[0];\n var setMounted = ref$1[1];\n var focusedElm = useRef(null);\n var timeout = useRef({\n setCaretTimeout: null,\n focusTimeout: null,\n });\n useEffect(function () {\n setMounted(true);\n return function () {\n clearTimeout(timeout.current.setCaretTimeout);\n clearTimeout(timeout.current.focusTimeout);\n };\n }, []);\n var _format = format;\n var getValueObject = function (formattedValue, numAsString) {\n var floatValue = parseFloat(numAsString);\n return {\n formattedValue: formattedValue,\n value: numAsString,\n floatValue: isNaN(floatValue) ? undefined : floatValue,\n };\n };\n var setPatchedCaretPosition = function (el, caretPos, currentValue) {\n // don't reset the caret position when the whole input content is selected\n if (el.selectionStart === 0 && el.selectionEnd === el.value.length)\n { return; }\n /* setting caret position within timeout of 0ms is required for mobile chrome,\n otherwise browser resets the caret position after we set it\n We are also setting it without timeout so that in normal browser we don't see the flickering */\n setCaretPosition(el, caretPos);\n timeout.current.setCaretTimeout = setTimeout(function () {\n if (el.value === currentValue && el.selectionStart !== el.selectionEnd) {\n setCaretPosition(el, caretPos);\n }\n }, 0);\n };\n /* This keeps the caret within typing area so people can't type in between prefix or suffix */\n var correctCaretPosition = function (value, caretPos, direction) {\n return getCaretPosInBoundary(value, caretPos, getCaretBoundary(value), direction);\n };\n var getNewCaretPosition = function (inputValue, newFormattedValue, caretPos) {\n var caretBoundary = getCaretBoundary(newFormattedValue);\n var updatedCaretPos = getCaretPosition(newFormattedValue, formattedValue, inputValue, caretPos, caretBoundary, isValidInputCharacter);\n //correct caret position if its outside of editable area\n updatedCaretPos = getCaretPosInBoundary(newFormattedValue, updatedCaretPos, caretBoundary);\n return updatedCaretPos;\n };\n var updateValueAndCaretPosition = function (params) {\n var newFormattedValue = params.formattedValue; if ( newFormattedValue === void 0 ) newFormattedValue = '';\n var input = params.input;\n var setCaretPosition = params.setCaretPosition; if ( setCaretPosition === void 0 ) setCaretPosition = true;\n var source = params.source;\n var event = params.event;\n var numAsString = params.numAsString;\n var caretPos = params.caretPos;\n if (input) {\n //calculate caret position if not defined\n if (caretPos === undefined && setCaretPosition) {\n var inputValue = params.inputValue || input.value;\n var currentCaretPosition = geInputCaretPosition(input);\n /**\n * set the value imperatively, this is required for IE fix\n * This is also required as if new caret position is beyond the previous value.\n * Caret position will not be set correctly\n */\n input.value = newFormattedValue;\n //get the caret position\n caretPos = getNewCaretPosition(inputValue, newFormattedValue, currentCaretPosition);\n }\n /**\n * set the value imperatively, as we set the caret position as well imperatively.\n * This is to keep value and caret position in sync\n */\n input.value = newFormattedValue;\n //set caret position, and value imperatively when element is provided\n if (setCaretPosition && caretPos !== undefined) {\n //set caret position\n setPatchedCaretPosition(input, caretPos, newFormattedValue);\n }\n }\n if (newFormattedValue !== formattedValue) {\n // trigger onValueChange synchronously, so parent is updated along with the number format. Fix for #277, #287\n _onValueChange(getValueObject(newFormattedValue, numAsString), { event: event, source: source });\n }\n };\n /**\n * if the formatted value is not synced to parent, or if the formatted value is different from last synced value sync it\n * we also don't need to sync to the parent if no formatting is applied\n * if the formatting props is removed, in which case last formatted value will be different from the numeric string value\n * in such case we need to inform the parent.\n */\n useEffect(function () {\n var ref = lastUpdatedValue.current;\n var lastFormattedValue = ref.formattedValue;\n var lastNumAsString = ref.numAsString;\n if (formattedValue !== lastFormattedValue &&\n (formattedValue !== numAsString || lastFormattedValue !== lastNumAsString)) {\n _onValueChange(getValueObject(formattedValue, numAsString), {\n event: undefined,\n source: SourceType.props,\n });\n }\n }, [formattedValue, numAsString]);\n // also if formatted value is changed from the props, we need to update the caret position\n // keep the last caret position if element is focused\n var currentCaretPosition = focusedElm.current\n ? geInputCaretPosition(focusedElm.current)\n : undefined;\n // needed to prevent warning with useLayoutEffect on server\n var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n useIsomorphicLayoutEffect(function () {\n var input = focusedElm.current;\n if (formattedValue !== lastUpdatedValue.current.formattedValue && input) {\n var caretPos = getNewCaretPosition(lastUpdatedValue.current.formattedValue, formattedValue, currentCaretPosition);\n /**\n * set the value imperatively, as we set the caret position as well imperatively.\n * This is to keep value and caret position in sync\n */\n input.value = formattedValue;\n setPatchedCaretPosition(input, caretPos, formattedValue);\n }\n }, [formattedValue]);\n var formatInputValue = function (inputValue, event, source) {\n var changeRange = findChangeRange(formattedValue, inputValue);\n var changeMeta = Object.assign(Object.assign({}, changeRange), { lastValue: formattedValue });\n var _numAsString = removeFormatting(inputValue, changeMeta);\n var _formattedValue = _format(_numAsString);\n // formatting can remove some of the number chars, so we need to fine number string again\n _numAsString = removeFormatting(_formattedValue, undefined);\n if (isAllowed && !isAllowed(getValueObject(_formattedValue, _numAsString))) {\n //reset the caret position\n var input = event.target;\n var currentCaretPosition = geInputCaretPosition(input);\n var caretPos = getNewCaretPosition(inputValue, formattedValue, currentCaretPosition);\n input.value = formattedValue;\n setPatchedCaretPosition(input, caretPos, formattedValue);\n return false;\n }\n updateValueAndCaretPosition({\n formattedValue: _formattedValue,\n numAsString: _numAsString,\n inputValue: inputValue,\n event: event,\n source: source,\n setCaretPosition: true,\n input: event.target,\n });\n return true;\n };\n var _onChange = function (e) {\n var el = e.target;\n var inputValue = el.value;\n var changed = formatInputValue(inputValue, e, SourceType.event);\n if (changed)\n { onChange(e); }\n };\n var _onKeyDown = function (e) {\n var el = e.target;\n var key = e.key;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n var expectedCaretPosition;\n //Handle backspace and delete against non numerical/decimal characters or arrow keys\n if (key === 'ArrowLeft' || key === 'Backspace') {\n expectedCaretPosition = Math.max(selectionStart - 1, 0);\n }\n else if (key === 'ArrowRight') {\n expectedCaretPosition = Math.min(selectionStart + 1, value.length);\n }\n else if (key === 'Delete') {\n expectedCaretPosition = selectionStart;\n }\n //if expectedCaretPosition is not set it means we don't want to Handle keyDown\n // also if multiple characters are selected don't handle\n if (expectedCaretPosition === undefined || selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n var newCaretPosition = expectedCaretPosition;\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n var direction = key === 'ArrowLeft' ? 'left' : 'right';\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, direction);\n // arrow left or right only moves the caret, so no need to handle the event, if we are handling it manually\n if (newCaretPosition !== expectedCaretPosition) {\n e.preventDefault();\n }\n }\n else if (key === 'Delete' && !isValidInputCharacter(value[expectedCaretPosition])) {\n // in case of delete go to closest caret boundary on the right side\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, 'right');\n }\n else if (key === 'Backspace' && !isValidInputCharacter(value[expectedCaretPosition])) {\n // in case of backspace go to closest caret boundary on the left side\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, 'left');\n }\n if (newCaretPosition !== expectedCaretPosition) {\n setPatchedCaretPosition(el, newCaretPosition, value);\n }\n /* NOTE: this is just required for unit test as we need to get the newCaretPosition,\n Remove this when you find different solution */\n /* @ts-ignore */\n if (e.isUnitTestRun) {\n setPatchedCaretPosition(el, newCaretPosition, value);\n }\n onKeyDown(e);\n };\n /** required to handle the caret position when click anywhere within the input **/\n var _onMouseUp = function (e) {\n var el = e.target;\n /**\n * NOTE: we have to give default value for value as in case when custom input is provided\n * value can come as undefined when nothing is provided on value prop.\n */\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n if (selectionStart === selectionEnd) {\n var caretPosition = correctCaretPosition(value, selectionStart);\n if (caretPosition !== selectionStart) {\n setPatchedCaretPosition(el, caretPosition, value);\n }\n }\n onMouseUp(e);\n };\n var _onFocus = function (e) {\n // Workaround Chrome and Safari bug https://bugs.chromium.org/p/chromium/issues/detail?id=779328\n // (onFocus event target selectionStart is always 0 before setTimeout)\n if (e.persist)\n { e.persist(); }\n var el = e.target;\n focusedElm.current = el;\n timeout.current.focusTimeout = setTimeout(function () {\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n var caretPosition = correctCaretPosition(value, selectionStart);\n //setPatchedCaretPosition only when everything is not selected on focus (while tabbing into the field)\n if (caretPosition !== selectionStart &&\n !(selectionStart === 0 && selectionEnd === value.length)) {\n setPatchedCaretPosition(el, caretPosition, value);\n }\n onFocus(e);\n }, 0);\n };\n var _onBlur = function (e) {\n focusedElm.current = null;\n clearTimeout(timeout.current.focusTimeout);\n clearTimeout(timeout.current.setCaretTimeout);\n onBlur(e);\n };\n // add input mode on element based on format prop and device once the component is mounted\n var inputMode = mounted && addInputMode() ? 'numeric' : undefined;\n var inputProps = Object.assign({ inputMode: inputMode }, otherProps, {\n type: type,\n value: formattedValue,\n onChange: _onChange,\n onKeyDown: _onKeyDown,\n onMouseUp: _onMouseUp,\n onFocus: _onFocus,\n onBlur: _onBlur,\n });\n if (displayType === 'text') {\n return renderText ? (React.createElement(React.Fragment, null, renderText(formattedValue, otherProps) || null)) : (React.createElement(\"span\", Object.assign({}, otherProps, { ref: getInputRef }), formattedValue));\n }\n else if (customInput) {\n var CustomInput = customInput;\n /* @ts-ignore */\n return React.createElement(CustomInput, Object.assign({}, inputProps, { ref: getInputRef }));\n }\n return React.createElement(\"input\", Object.assign({}, inputProps, { ref: getInputRef }));\n}\n\nfunction format(numStr, props) {\n var decimalScale = props.decimalScale;\n var fixedDecimalScale = props.fixedDecimalScale;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var allowNegative = props.allowNegative;\n var thousandsGroupStyle = props.thousandsGroupStyle; if ( thousandsGroupStyle === void 0 ) thousandsGroupStyle = 'thousand';\n // don't apply formatting on empty string or '-'\n if (numStr === '' || numStr === '-') {\n return numStr;\n }\n var ref = getSeparators(props);\n var thousandSeparator = ref.thousandSeparator;\n var decimalSeparator = ref.decimalSeparator;\n /**\n * Keep the decimal separator\n * when decimalScale is not defined or non zero and the numStr has decimal in it\n * Or if decimalScale is > 0 and fixeDecimalScale is true (even if numStr has no decimal)\n */\n var hasDecimalSeparator = (decimalScale !== 0 && numStr.indexOf('.') !== -1) || (decimalScale && fixedDecimalScale);\n var ref$1 = splitDecimal(numStr, allowNegative);\n var beforeDecimal = ref$1.beforeDecimal;\n var afterDecimal = ref$1.afterDecimal;\n var addNegation = ref$1.addNegation; // eslint-disable-line prefer-const\n //apply decimal precision if its defined\n if (decimalScale !== undefined) {\n afterDecimal = limitToScale(afterDecimal, decimalScale, !!fixedDecimalScale);\n }\n if (thousandSeparator) {\n beforeDecimal = applyThousandSeparator(beforeDecimal, thousandSeparator, thousandsGroupStyle);\n }\n //add prefix and suffix when there is a number present\n if (prefix)\n { beforeDecimal = prefix + beforeDecimal; }\n if (suffix)\n { afterDecimal = afterDecimal + suffix; }\n //restore negation sign\n if (addNegation)\n { beforeDecimal = '-' + beforeDecimal; }\n numStr = beforeDecimal + ((hasDecimalSeparator && decimalSeparator) || '') + afterDecimal;\n return numStr;\n}\nfunction getSeparators(props) {\n var decimalSeparator = props.decimalSeparator; if ( decimalSeparator === void 0 ) decimalSeparator = '.';\n var thousandSeparator = props.thousandSeparator;\n var allowedDecimalSeparators = props.allowedDecimalSeparators;\n if (thousandSeparator === true) {\n thousandSeparator = ',';\n }\n if (!allowedDecimalSeparators) {\n allowedDecimalSeparators = [decimalSeparator, '.'];\n }\n return {\n decimalSeparator: decimalSeparator,\n thousandSeparator: thousandSeparator,\n allowedDecimalSeparators: allowedDecimalSeparators,\n };\n}\nfunction handleNegation(value, allowNegative) {\n if ( value === void 0 ) value = '';\n\n var negationRegex = new RegExp('(-)');\n var doubleNegationRegex = new RegExp('(-)(.)*(-)');\n // Check number has '-' value\n var hasNegation = negationRegex.test(value);\n // Check number has 2 or more '-' values\n var removeNegation = doubleNegationRegex.test(value);\n //remove negation\n value = value.replace(/-/g, '');\n if (hasNegation && !removeNegation && allowNegative) {\n value = '-' + value;\n }\n return value;\n}\nfunction getNumberRegex(decimalSeparator, global) {\n return new RegExp((\"(^-)|[0-9]|\" + (escapeRegExp(decimalSeparator))), global ? 'g' : undefined);\n}\nfunction isNumericString(val, prefix, suffix) {\n // for empty value we can always treat it as numeric string\n if (val === '')\n { return true; }\n return (!(prefix === null || prefix === void 0 ? void 0 : prefix.match(/\\d/)) && !(suffix === null || suffix === void 0 ? void 0 : suffix.match(/\\d/)) && typeof val === 'string' && !isNaN(Number(val)));\n}\nfunction removeFormatting(value, changeMeta, props) {\n var assign;\n\n if ( changeMeta === void 0 ) changeMeta = getDefaultChangeMeta(value);\n var allowNegative = props.allowNegative;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var decimalScale = props.decimalScale;\n var from = changeMeta.from;\n var to = changeMeta.to;\n var start = to.start;\n var end = to.end;\n var ref = getSeparators(props);\n var allowedDecimalSeparators = ref.allowedDecimalSeparators;\n var decimalSeparator = ref.decimalSeparator;\n var isBeforeDecimalSeparator = value[end] === decimalSeparator;\n /**\n * If only a number is added on empty input which matches with the prefix or suffix,\n * then don't remove it, just return the same\n */\n if (charIsNumber(value) &&\n (value === prefix || value === suffix) &&\n changeMeta.lastValue === '') {\n return value;\n }\n /** Check for any allowed decimal separator is added in the numeric format and replace it with decimal separator */\n if (end - start === 1 && allowedDecimalSeparators.indexOf(value[start]) !== -1) {\n var separator = decimalScale === 0 ? '' : decimalSeparator;\n value = value.substring(0, start) + separator + value.substring(start + 1, value.length);\n }\n var stripNegation = function (value, start, end) {\n /**\n * if prefix starts with - we don't allow negative number to avoid confusion\n * if suffix starts with - and the value length is same as suffix length, then the - sign is from the suffix\n * In other cases, if the value starts with - then it is a negation\n */\n var hasNegation = false;\n var hasDoubleNegation = false;\n if (prefix.startsWith('-')) {\n hasNegation = false;\n }\n else if (value.startsWith('--')) {\n hasNegation = false;\n hasDoubleNegation = true;\n }\n else if (suffix.startsWith('-') && value.length === suffix.length) {\n hasNegation = false;\n }\n else if (value[0] === '-') {\n hasNegation = true;\n }\n var charsToRemove = hasNegation ? 1 : 0;\n if (hasDoubleNegation)\n { charsToRemove = 2; }\n // remove negation/double negation from start to simplify prefix logic as negation comes before prefix\n if (charsToRemove) {\n value = value.substring(charsToRemove);\n // account for the removal of the negation for start and end index\n start -= charsToRemove;\n end -= charsToRemove;\n }\n return { value: value, start: start, end: end, hasNegation: hasNegation };\n };\n var toMetadata = stripNegation(value, start, end);\n var hasNegation = toMetadata.hasNegation;\n ((assign = toMetadata, value = assign.value, start = assign.start, end = assign.end));\n var ref$1 = stripNegation(changeMeta.lastValue, from.start, from.end);\n var fromStart = ref$1.start;\n var fromEnd = ref$1.end;\n var lastValue = ref$1.value;\n // if only prefix and suffix part is updated reset the value to last value\n // if the changed range is from suffix in the updated value, and the the suffix starts with the same characters, allow the change\n var updatedSuffixPart = value.substring(start, end);\n if (value.length &&\n lastValue.length &&\n (fromStart > lastValue.length - suffix.length || fromEnd < prefix.length) &&\n !(updatedSuffixPart && suffix.startsWith(updatedSuffixPart))) {\n value = lastValue;\n }\n /**\n * remove prefix\n * Remove whole prefix part if its present on the value\n * If the prefix is partially deleted (in which case change start index will be less the prefix length)\n * Remove only partial part of prefix.\n */\n var startIndex = 0;\n if (value.startsWith(prefix))\n { startIndex += prefix.length; }\n else if (start < prefix.length)\n { startIndex = start; }\n value = value.substring(startIndex);\n // account for deleted prefix for end\n end -= startIndex;\n /**\n * Remove suffix\n * Remove whole suffix part if its present on the value\n * If the suffix is partially deleted (in which case change end index will be greater than the suffixStartIndex)\n * remove the partial part of suffix\n */\n var endIndex = value.length;\n var suffixStartIndex = value.length - suffix.length;\n if (value.endsWith(suffix))\n { endIndex = suffixStartIndex; }\n // if the suffix is removed from the end\n else if (end > suffixStartIndex)\n { endIndex = end; }\n // if the suffix is removed from start\n else if (end > value.length - suffix.length)\n { endIndex = end; }\n value = value.substring(0, endIndex);\n // add the negation back and handle for double negation\n value = handleNegation(hasNegation ? (\"-\" + value) : value, allowNegative);\n // remove non numeric characters\n value = (value.match(getNumberRegex(decimalSeparator, true)) || []).join('');\n // replace the decimalSeparator with ., and only keep the first separator, ignore following ones\n var firstIndex = value.indexOf(decimalSeparator);\n value = value.replace(new RegExp(escapeRegExp(decimalSeparator), 'g'), function (match, index) {\n return index === firstIndex ? '.' : '';\n });\n //check if beforeDecimal got deleted and there is nothing after decimal,\n //clear all numbers in such case while keeping the - sign\n var ref$2 = splitDecimal(value, allowNegative);\n var beforeDecimal = ref$2.beforeDecimal;\n var afterDecimal = ref$2.afterDecimal;\n var addNegation = ref$2.addNegation; // eslint-disable-line prefer-const\n //clear only if something got deleted before decimal (cursor is before decimal)\n if (to.end - to.start < from.end - from.start &&\n beforeDecimal === '' &&\n isBeforeDecimalSeparator &&\n !parseFloat(afterDecimal)) {\n value = addNegation ? '-' : '';\n }\n return value;\n}\nfunction getCaretBoundary(formattedValue, props) {\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n var hasNegation = formattedValue[0] === '-';\n // fill for prefix and negation\n boundaryAry.fill(false, 0, prefix.length + (hasNegation ? 1 : 0));\n // fill for suffix\n var valLn = formattedValue.length;\n boundaryAry.fill(false, valLn - suffix.length + 1, valLn + 1);\n return boundaryAry;\n}\nfunction validateAndUpdateProps(props) {\n var ref = getSeparators(props);\n var thousandSeparator = ref.thousandSeparator;\n var decimalSeparator = ref.decimalSeparator;\n // eslint-disable-next-line prefer-const\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var allowNegative = props.allowNegative; if ( allowNegative === void 0 ) allowNegative = true;\n if (thousandSeparator === decimalSeparator) {\n throw new Error((\"\\n Decimal separator can't be same as thousand separator.\\n thousandSeparator: \" + thousandSeparator + \" (thousandSeparator = {true} is same as thousandSeparator = \\\",\\\")\\n decimalSeparator: \" + decimalSeparator + \" (default value for decimalSeparator is .)\\n \"));\n }\n if (prefix.startsWith('-') && allowNegative) {\n // TODO: throw error in next major version\n console.error((\"\\n Prefix can't start with '-' when allowNegative is true.\\n prefix: \" + prefix + \"\\n allowNegative: \" + allowNegative + \"\\n \"));\n allowNegative = false;\n }\n return Object.assign(Object.assign({}, props), { allowNegative: allowNegative });\n}\nfunction useNumericFormat(props) {\n // validate props\n props = validateAndUpdateProps(props);\n var decimalSeparator = props.decimalSeparator; if ( decimalSeparator === void 0 ) decimalSeparator = '.';\n var allowedDecimalSeparators = props.allowedDecimalSeparators;\n var thousandsGroupStyle = props.thousandsGroupStyle;\n var suffix = props.suffix;\n var allowNegative = props.allowNegative;\n var allowLeadingZeros = props.allowLeadingZeros;\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var onBlur = props.onBlur; if ( onBlur === void 0 ) onBlur = noop;\n var thousandSeparator = props.thousandSeparator;\n var decimalScale = props.decimalScale;\n var fixedDecimalScale = props.fixedDecimalScale;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var defaultValue = props.defaultValue;\n var value = props.value;\n var valueIsNumericString = props.valueIsNumericString;\n var onValueChange = props.onValueChange;\n var restProps = __rest(props, [\"decimalSeparator\", \"allowedDecimalSeparators\", \"thousandsGroupStyle\", \"suffix\", \"allowNegative\", \"allowLeadingZeros\", \"onKeyDown\", \"onBlur\", \"thousandSeparator\", \"decimalScale\", \"fixedDecimalScale\", \"prefix\", \"defaultValue\", \"value\", \"valueIsNumericString\", \"onValueChange\"]);\n var _format = function (numStr) { return format(numStr, props); };\n var _removeFormatting = function (inputValue, changeMeta) { return removeFormatting(inputValue, changeMeta, props); };\n var _value = isNil(value) ? defaultValue : value;\n // try to figure out isValueNumericString based on format prop and value\n var _valueIsNumericString = valueIsNumericString !== null && valueIsNumericString !== void 0 ? valueIsNumericString : isNumericString(_value, prefix, suffix);\n if (!isNil(value)) {\n _valueIsNumericString = valueIsNumericString || typeof value === 'number';\n }\n else if (!isNil(defaultValue)) {\n _valueIsNumericString = valueIsNumericString || typeof defaultValue === 'number';\n }\n var roundIncomingValueToPrecision = function (value) {\n if (isNotValidValue(value))\n { return value; }\n if (typeof value === 'number') {\n value = toNumericString(value);\n }\n /**\n * only round numeric or float string values coming through props,\n * we don't need to do it for onChange events, as we want to prevent typing there\n */\n if (_valueIsNumericString && typeof decimalScale === 'number') {\n return roundToPrecision(value, decimalScale, Boolean(fixedDecimalScale));\n }\n return value;\n };\n var ref = useInternalValues(roundIncomingValueToPrecision(value), roundIncomingValueToPrecision(defaultValue), Boolean(_valueIsNumericString), _format, _removeFormatting, onValueChange);\n var ref_0 = ref[0];\n var numAsString = ref_0.numAsString;\n var formattedValue = ref_0.formattedValue;\n var _onValueChange = ref[1];\n var _onKeyDown = function (e) {\n var el = e.target;\n var key = e.key;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n // if multiple characters are selected and user hits backspace, no need to handle anything manually\n if (selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n // if user hits backspace, while the cursor is before prefix, and the input has negation, remove the negation\n if (key === 'Backspace' &&\n value[0] === '-' &&\n selectionStart === prefix.length + 1 &&\n allowNegative) {\n // bring the cursor to after negation\n setCaretPosition(el, 1);\n }\n // don't allow user to delete decimal separator when decimalScale and fixedDecimalScale is set\n var ref = getSeparators(props);\n var decimalSeparator = ref.decimalSeparator;\n var allowedDecimalSeparators = ref.allowedDecimalSeparators;\n if (key === 'Backspace' &&\n value[selectionStart - 1] === decimalSeparator &&\n decimalScale &&\n fixedDecimalScale) {\n setCaretPosition(el, selectionStart - 1);\n e.preventDefault();\n }\n // if user presses the allowed decimal separator before the separator, move the cursor after the separator\n if ((allowedDecimalSeparators === null || allowedDecimalSeparators === void 0 ? void 0 : allowedDecimalSeparators.includes(key)) && value[selectionStart] === decimalSeparator) {\n setCaretPosition(el, selectionStart + 1);\n }\n var _thousandSeparator = thousandSeparator === true ? ',' : thousandSeparator;\n // move cursor when delete or backspace is pressed before/after thousand separator\n if (key === 'Backspace' && value[selectionStart - 1] === _thousandSeparator) {\n setCaretPosition(el, selectionStart - 1);\n }\n if (key === 'Delete' && value[selectionStart] === _thousandSeparator) {\n setCaretPosition(el, selectionStart + 1);\n }\n onKeyDown(e);\n };\n var _onBlur = function (e) {\n var _value = numAsString;\n // if there no no numeric value, clear the input\n if (!_value.match(/\\d/g)) {\n _value = '';\n }\n // clear leading 0s\n if (!allowLeadingZeros) {\n _value = fixLeadingZero(_value);\n }\n // apply fixedDecimalScale on blur event\n if (fixedDecimalScale && decimalScale) {\n _value = roundToPrecision(_value, decimalScale, fixedDecimalScale);\n }\n if (_value !== numAsString) {\n var formattedValue = format(_value, props);\n _onValueChange({\n formattedValue: formattedValue,\n value: _value,\n floatValue: parseFloat(_value),\n }, {\n event: e,\n source: SourceType.event,\n });\n }\n onBlur(e);\n };\n var isValidInputCharacter = function (inputChar) {\n if (inputChar === decimalSeparator)\n { return true; }\n return charIsNumber(inputChar);\n };\n return Object.assign(Object.assign({}, restProps), { value: formattedValue, valueIsNumericString: false, isValidInputCharacter: isValidInputCharacter, onValueChange: _onValueChange, format: _format, removeFormatting: _removeFormatting, getCaretBoundary: function (formattedValue) { return getCaretBoundary(formattedValue, props); }, onKeyDown: _onKeyDown, onBlur: _onBlur });\n}\nfunction NumericFormat(props) {\n var numericFormatProps = useNumericFormat(props);\n return React.createElement(NumberFormatBase, Object.assign({}, numericFormatProps));\n}\n\nfunction format$1(numStr, props) {\n var format = props.format;\n var allowEmptyFormatting = props.allowEmptyFormatting;\n var mask = props.mask;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n if (numStr === '' && !allowEmptyFormatting)\n { return ''; }\n var hashCount = 0;\n var formattedNumberAry = format.split('');\n for (var i = 0, ln = format.length; i < ln; i++) {\n if (format[i] === patternChar) {\n formattedNumberAry[i] = numStr[hashCount] || getMaskAtIndex(mask, hashCount);\n hashCount += 1;\n }\n }\n return formattedNumberAry.join('');\n}\nfunction removeFormatting$1(value, changeMeta, props) {\n if ( changeMeta === void 0 ) changeMeta = getDefaultChangeMeta(value);\n\n var format = props.format;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var from = changeMeta.from;\n var to = changeMeta.to;\n var lastValue = changeMeta.lastValue; if ( lastValue === void 0 ) lastValue = '';\n var isNumericSlot = function (caretPos) { return format[caretPos] === patternChar; };\n var removeFormatChar = function (string, startIndex) {\n var str = '';\n for (var i = 0; i < string.length; i++) {\n if (isNumericSlot(startIndex + i) && charIsNumber(string[i])) {\n str += string[i];\n }\n }\n return str;\n };\n var extractNumbers = function (str) { return str.replace(/[^0-9]/g, ''); };\n // if format doesn't have any number, remove all the non numeric characters\n if (!format.match(/\\d/)) {\n return extractNumbers(value);\n }\n /**\n * if user paste the whole formatted text in an empty input, check if matches to the pattern\n * and remove the format characters, if there is a mismatch on the pattern, do plane number extract\n */\n if (lastValue === '' && value.length === format.length) {\n var str = '';\n for (var i = 0; i < value.length; i++) {\n if (isNumericSlot(i)) {\n if (charIsNumber(value[i])) {\n str += value[i];\n }\n }\n else if (value[i] !== format[i]) {\n // if there is a mismatch on the pattern, do plane number extract\n return extractNumbers(value);\n }\n }\n return str;\n }\n /**\n * For partial change,\n * where ever there is a change on the input, we can break the number in three parts\n * 1st: left part which is unchanged\n * 2nd: middle part which is changed\n * 3rd: right part which is unchanged\n *\n * The first and third section will be same as last value, only the middle part will change\n * We can consider on the change part all the new characters are non format characters.\n * And on the first and last section it can have partial format characters.\n *\n * We pick first and last section from the lastValue (as that has 1-1 mapping with format)\n * and middle one from the update value.\n */\n var firstSection = lastValue.substring(0, from.start);\n var middleSection = value.substring(to.start, to.end);\n var lastSection = lastValue.substring(from.end);\n return (\"\" + (removeFormatChar(firstSection, 0)) + (extractNumbers(middleSection)) + (removeFormatChar(lastSection, from.end)));\n}\nfunction getCaretBoundary$1(formattedValue, props) {\n var format = props.format;\n var mask = props.mask;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n var hashCount = 0;\n var firstEmptySlot = -1;\n var maskAndIndexMap = {};\n format.split('').forEach(function (char, index) {\n var maskAtIndex = undefined;\n if (char === patternChar) {\n hashCount++;\n maskAtIndex = getMaskAtIndex(mask, hashCount - 1);\n if (firstEmptySlot === -1 && formattedValue[index] === maskAtIndex) {\n firstEmptySlot = index;\n }\n }\n maskAndIndexMap[index] = maskAtIndex;\n });\n var isPosAllowed = function (pos) {\n // the position is allowed if the position is not masked and valid number area\n return format[pos] === patternChar && formattedValue[pos] !== maskAndIndexMap[pos];\n };\n for (var i = 0, ln = boundaryAry.length; i < ln; i++) {\n // consider caret to be in boundary if it is before or after numeric value\n // Note: on pattern based format its denoted by patternCharacter\n // we should also allow user to put cursor on first empty slot\n boundaryAry[i] = i === firstEmptySlot || isPosAllowed(i) || isPosAllowed(i - 1);\n }\n // the first patternChar position is always allowed\n boundaryAry[format.indexOf(patternChar)] = true;\n return boundaryAry;\n}\nfunction validateProps(props) {\n var mask = props.mask;\n if (mask) {\n var maskAsStr = mask === 'string' ? mask : mask.toString();\n if (maskAsStr.match(/\\d/g)) {\n throw new Error((\"Mask \" + mask + \" should not contain numeric character;\"));\n }\n }\n}\nfunction isNumericString$1(val, format) {\n //we can treat empty string as numeric string\n if (val === '')\n { return true; }\n return !(format === null || format === void 0 ? void 0 : format.match(/\\d/)) && typeof val === 'string' && (!!val.match(/^\\d+$/) || val === '');\n}\nfunction usePatternFormat(props) {\n var mask = props.mask;\n var allowEmptyFormatting = props.allowEmptyFormatting;\n var formatProp = props.format;\n var inputMode = props.inputMode; if ( inputMode === void 0 ) inputMode = 'numeric';\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var value = props.value;\n var defaultValue = props.defaultValue;\n var valueIsNumericString = props.valueIsNumericString;\n var restProps = __rest(props, [\"mask\", \"allowEmptyFormatting\", \"format\", \"inputMode\", \"onKeyDown\", \"patternChar\", \"value\", \"defaultValue\", \"valueIsNumericString\"]);\n // validate props\n validateProps(props);\n var _getCaretBoundary = function (formattedValue) {\n return getCaretBoundary$1(formattedValue, props);\n };\n var _onKeyDown = function (e) {\n var key = e.key;\n var el = e.target;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value;\n // if multiple characters are selected and user hits backspace, no need to handle anything manually\n if (selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n // bring the cursor to closest numeric section\n var caretPos = selectionStart;\n // if backspace is pressed after the format characters, bring it to numeric section\n // if delete is pressed before the format characters, bring it to numeric section\n if (key === 'Backspace' || key === 'Delete') {\n var direction = 'right';\n if (key === 'Backspace') {\n while (caretPos > 0 && formatProp[caretPos - 1] !== patternChar) {\n caretPos--;\n }\n direction = 'left';\n }\n else {\n var formatLn = formatProp.length;\n while (caretPos < formatLn && formatProp[caretPos] !== patternChar) {\n caretPos++;\n }\n direction = 'right';\n }\n caretPos = getCaretPosInBoundary(value, caretPos, _getCaretBoundary(value), direction);\n }\n else if (formatProp[caretPos] !== patternChar &&\n key !== 'ArrowLeft' &&\n key !== 'ArrowRight') {\n // if user is typing on format character position, bring user to next allowed caret position\n caretPos = getCaretPosInBoundary(value, caretPos + 1, _getCaretBoundary(value), 'right');\n }\n // if we changing caret position, set the caret position\n if (caretPos !== selectionStart) {\n setCaretPosition(el, caretPos);\n }\n onKeyDown(e);\n };\n // try to figure out isValueNumericString based on format prop and value\n var _value = isNil(value) ? defaultValue : value;\n var isValueNumericString = valueIsNumericString !== null && valueIsNumericString !== void 0 ? valueIsNumericString : isNumericString$1(_value, formatProp);\n var _props = Object.assign(Object.assign({}, props), { valueIsNumericString: isValueNumericString });\n return Object.assign(Object.assign({}, restProps), { value: value,\n defaultValue: defaultValue, valueIsNumericString: isValueNumericString, inputMode: inputMode, format: function (numStr) { return format$1(numStr, _props); }, removeFormatting: function (inputValue, changeMeta) { return removeFormatting$1(inputValue, changeMeta, _props); }, getCaretBoundary: _getCaretBoundary, onKeyDown: _onKeyDown });\n}\nfunction PatternFormat(props) {\n var patternFormatProps = usePatternFormat(props);\n return React.createElement(NumberFormatBase, Object.assign({}, patternFormatProps));\n}\n\nexport { NumberFormatBase, NumericFormat, PatternFormat, getCaretBoundary as getNumericCaretBoundary, getCaretBoundary$1 as getPatternCaretBoundary, format as numericFormatter, format$1 as patternFormatter, removeFormatting as removeNumericFormat, removeFormatting$1 as removePatternFormat, useNumericFormat, usePatternFormat };\n","import { styled } from \"@linaria/react\";\n\nexport const NumberOverlayEditorStyle = styled.div`\n display: flex;\n margin: 6px 0 3px;\n color: var(--gdg-text-dark);\n\n > input {\n font-size: var(--gdg-editor-font-size);\n padding: 0;\n font-family: var(--gdg-font-family);\n color: var(--gdg-text-dark);\n background-color: var(--gdg-bg-cell);\n }\n`;\n","import * as React from \"react\";\nimport { NumberOverlayEditorStyle } from \"./number-overlay-editor-style\";\nimport { NumericFormat } from \"react-number-format\";\nimport type { SelectionRange } from \"../../data-grid/data-grid-types\";\nimport type { NumberFormatValues } from \"react-number-format/types/types\";\n\ninterface Props {\n value: number | undefined;\n disabled?: boolean;\n onChange: (values: NumberFormatValues) => void;\n highlight: boolean;\n validatedSelection?: SelectionRange;\n}\n\nfunction getDecimalSeparator() {\n const numberWithDecimalSeparator = 1.1;\n const result = Intl.NumberFormat()\n ?.formatToParts(numberWithDecimalSeparator)\n ?.find(part => part.type === \"decimal\")?.value;\n\n return result ?? \".\";\n}\n\nfunction getThousandSeprator() {\n return getDecimalSeparator() === \".\" ? \",\" : \".\";\n}\n\nconst NumberOverlayEditor: React.FunctionComponent = p => {\n const { value, onChange, disabled, highlight, validatedSelection } = p;\n\n const inputRef = React.useRef();\n\n React.useLayoutEffect(() => {\n if (validatedSelection !== undefined) {\n const range = typeof validatedSelection === \"number\" ? [validatedSelection, null] : validatedSelection;\n inputRef.current?.setSelectionRange(range[0], range[1]);\n }\n }, [validatedSelection]);\n\n return (\n \n ) =>\n e.target.setSelectionRange(highlight ? 0 : e.target.value.length, e.target.value.length)\n }\n disabled={disabled === true}\n thousandSeparator={getThousandSeprator()}\n decimalSeparator={getDecimalSeparator()}\n value={Object.is(value, -0) ? \"-\" : value ?? \"\"}\n // decimalScale={3}\n // prefix={\"$\"}\n onValueChange={onChange}\n />\n \n );\n};\n\nexport default NumberOverlayEditor;\n"],"names":["SourceType","__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","noop","charIsNumber","char","match","isNil","val","undefined","isNotValidValue","isNaN","isNanValue","isFinite","escapeRegExp","str","replace","splitDecimal","numStr","allowNegative","hasNegation","addNegation","parts","split","beforeDecimal","afterDecimal","limitToScale","scale","fixedDecimalScale","filler","repeat","count","Array","join","toNumericString","num","_num","sign","substring","ref","coefficient","exponent","Number","decimalIndex","coffiecientLn","Math","abs","roundToPrecision","shouldHaveDecimalSeparator","floatValue","parseFloat","roundedDecimalParts","toFixed","reverse","reduce","roundedStr","current","idx","toString","setCaretPosition","el","caretPos","value","createTextRange","range","move","select","selectionStart","focus","setSelectionRange","findChangeRange","prevValue","newValue","j","prevLength","newLength","from","start","end","to","geInputCaretPosition","max","selectionEnd","getDefaultChangeMeta","lastValue","getCaretPosInBoundary","boundary","direction","min","valLn","lastIndexOf","caretUnknownFormatBoundary","formattedValue","boundaryAry","map","ln","Boolean","useInternalValues","defaultValue","valueIsNumericString","format","removeFormatting","onValueChange","getValues","cb","callbackRef","useRef","persistentCbRef","args","len","arguments","apply","usePersistentCallback","numAsString","useState","values","setValues","_value","_valueIsNumericString","newValues","useMemo","sourceInfo","defaultRemoveFormatting","defaultFormat","NumberFormatBase","props","type","displayType","customInput","renderText","getInputRef","isAllowed","onChange","onKeyDown","onMouseUp","onFocus","onBlur","propValue","getCaretBoundary","isValidInputCharacter","otherProps","ref_0","onFormattedValueChange","lastUpdatedValue","_onValueChange","source","ref$1","mounted","setMounted","focusedElm","timeout","setCaretTimeout","focusTimeout","useEffect","clearTimeout","_format","getValueObject","setPatchedCaretPosition","currentValue","setTimeout","correctCaretPosition","getNewCaretPosition","inputValue","newFormattedValue","caretBoundary","updatedCaretPos","lastFormattedValue","curValue","curCaretPos","changeRange","firstAllowedPosition","findIndex","b","prefixFormat","slice","startsWith","curValLn","formattedValueLn","addedIndexMap","indexMap","jLn","pos","endIndex","startIndex","getCaretPosition","lastNumAsString","event","currentCaretPosition","window","useLayoutEffect","input","formatInputValue","changeMeta","assign","_numAsString","_formattedValue","target","params","updateValueAndCaretPosition","inputMode","navigator","platform","test","inputProps","expectedCaretPosition","key","newCaretPosition","preventDefault","isUnitTestRun","caretPosition","persist","React","CustomInput","decimalScale","prefix","suffix","thousandsGroupStyle","getSeparators","thousandSeparator","decimalSeparator","hasDecimalSeparator","thousandsGroupRegex","getThousandsGroupRegex","index","search","applyThousandSeparator","allowedDecimalSeparators","isBeforeDecimalSeparator","separator","stripNegation","hasDoubleNegation","charsToRemove","toMetadata","fromStart","fromEnd","updatedSuffixPart","suffixStartIndex","endsWith","negationRegex","RegExp","doubleNegationRegex","removeNegation","handleNegation","global","getNumberRegex","firstIndex","ref$2","useNumericFormat","Error","console","error","validateAndUpdateProps","allowLeadingZeros","restProps","_removeFormatting","isNumericString","roundIncomingValueToPrecision","inputChar","fill","includes","_thousandSeparator","isNegative","fixLeadingZero","NumericFormat","numericFormatProps","NumberOverlayEditorStyle","styled_default","name","class","getDecimalSeparator","_a","_b","_c","result","Intl","NumberFormat","formatToParts","find","part","number_overlay_editor_default","disabled","highlight","validatedSelection","inputRef","autoFocus","className","is"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/787.86e4971e.chunk.js b/static/js/787.86e4971e.chunk.js new file mode 100644 index 0000000..a067c9e --- /dev/null +++ b/static/js/787.86e4971e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktom_777=self.webpackChunktom_777||[]).push([[787],{787:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return y},getFCP:function(){return g},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},l=function(){return v<0&&(v=p(),d(),s((function(){setTimeout((function(){v=p(),d()}),0)}))),{get firstHiddenTime(){return v}}},g=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},p=c("layout-shift",v);p&&(n=m(i,r,t),f((function(){p.takeRecords().map(v),n(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,E)}))},C=function(e,t){var n,a=l(),v=u("FID"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",(function(){return setTimeout(t,0)}))}}}]); +//# sourceMappingURL=787.86e4971e.chunk.js.map \ No newline at end of file diff --git a/static/js/787.86e4971e.chunk.js.map b/static/js/787.86e4971e.chunk.js.map new file mode 100644 index 0000000..98367ae --- /dev/null +++ b/static/js/787.86e4971e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/787.86e4971e.chunk.js","mappings":"mQAAA,IAAIA,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,SAASJ,EAAEC,GAAG,MAAM,CAACI,KAAKL,EAAEM,WAAM,IAASL,GAAG,EAAEA,EAAEM,MAAM,EAAEC,QAAQ,GAAGC,GAAG,MAAMC,OAAOC,KAAKC,MAAM,KAAKF,OAAOG,KAAKC,MAAM,cAAcD,KAAKE,UAAU,MAAM,EAAEC,EAAE,SAAShB,EAAEC,GAAG,IAAI,GAAGgB,oBAAoBC,oBAAoBC,SAASnB,GAAG,CAAC,GAAG,gBAAgBA,KAAK,2BAA2BoB,MAAM,OAAO,IAAIlB,EAAE,IAAIe,qBAAqB,SAASjB,GAAG,OAAOA,EAAEqB,aAAaC,IAAIrB,EAAE,IAAI,OAAOC,EAAEqB,QAAQ,CAACC,KAAKxB,EAAEyB,UAAS,IAAKvB,CAAC,CAAC,CAAC,MAAMF,GAAG,CAAC,EAAE0B,EAAE,SAAS1B,EAAEC,GAAG,IAAIC,EAAE,SAASA,EAAEC,GAAG,aAAaA,EAAEqB,MAAM,WAAWG,SAASC,kBAAkB5B,EAAEG,GAAGF,IAAI4B,oBAAoB,mBAAmB3B,GAAE,GAAI2B,oBAAoB,WAAW3B,GAAE,IAAK,EAAE4B,iBAAiB,mBAAmB5B,GAAE,GAAI4B,iBAAiB,WAAW5B,GAAE,EAAG,EAAE6B,EAAE,SAAS/B,GAAG8B,iBAAiB,YAAY,SAAS7B,GAAGA,EAAE+B,WAAWhC,EAAEC,EAAE,IAAG,EAAG,EAAEgC,EAAE,SAASjC,EAAEC,EAAEC,GAAG,IAAIC,EAAE,OAAO,SAASC,GAAGH,EAAEK,OAAO,IAAIF,GAAGF,KAAKD,EAAEM,MAAMN,EAAEK,OAAOH,GAAG,IAAIF,EAAEM,YAAO,IAASJ,KAAKA,EAAEF,EAAEK,MAAMN,EAAEC,IAAI,CAAC,EAAEiC,GAAG,EAAEC,EAAE,WAAW,MAAM,WAAWR,SAASC,gBAAgB,EAAE,GAAG,EAAEQ,EAAE,WAAWV,GAAG,SAAS1B,GAAG,IAAIC,EAAED,EAAEqC,UAAUH,EAAEjC,CAAC,IAAG,EAAG,EAAEqC,EAAE,WAAW,OAAOJ,EAAE,IAAIA,EAAEC,IAAIC,IAAIL,GAAG,WAAWQ,YAAY,WAAWL,EAAEC,IAAIC,GAAG,GAAG,EAAE,KAAK,CAAKI,sBAAkB,OAAON,CAAC,EAAE,EAAEO,EAAE,SAASzC,EAAEC,GAAG,IAAIC,EAAEC,EAAEmC,IAAIZ,EAAEtB,EAAE,OAAO8B,EAAE,SAASlC,GAAG,2BAA2BA,EAAEK,OAAO+B,GAAGA,EAAEM,aAAa1C,EAAE2C,UAAUxC,EAAEqC,kBAAkBd,EAAEpB,MAAMN,EAAE2C,UAAUjB,EAAElB,QAAQoC,KAAK5C,GAAGE,GAAE,IAAK,EAAEiC,EAAEU,OAAOC,aAAaA,YAAYC,kBAAkBD,YAAYC,iBAAiB,0BAA0B,GAAGX,EAAED,EAAE,KAAKnB,EAAE,QAAQkB,IAAIC,GAAGC,KAAKlC,EAAE+B,EAAEjC,EAAE0B,EAAEzB,GAAGkC,GAAGD,EAAEC,GAAGJ,GAAG,SAAS5B,GAAGuB,EAAEtB,EAAE,OAAOF,EAAE+B,EAAEjC,EAAE0B,EAAEzB,GAAG+C,uBAAuB,WAAWA,uBAAuB,WAAWtB,EAAEpB,MAAMwC,YAAYlC,MAAMT,EAAEkC,UAAUnC,GAAE,EAAG,GAAG,GAAG,IAAI,EAAE+C,GAAE,EAAGC,GAAG,EAAEC,EAAE,SAASnD,EAAEC,GAAGgD,IAAIR,GAAG,SAASzC,GAAGkD,EAAElD,EAAEM,KAAK,IAAI2C,GAAE,GAAI,IAAI/C,EAAEC,EAAE,SAASF,GAAGiD,GAAG,GAAGlD,EAAEC,EAAE,EAAEiC,EAAE9B,EAAE,MAAM,GAAG+B,EAAE,EAAEC,EAAE,GAAGE,EAAE,SAAStC,GAAG,IAAIA,EAAEoD,eAAe,CAAC,IAAInD,EAAEmC,EAAE,GAAGjC,EAAEiC,EAAEA,EAAEiB,OAAO,GAAGlB,GAAGnC,EAAE2C,UAAUxC,EAAEwC,UAAU,KAAK3C,EAAE2C,UAAU1C,EAAE0C,UAAU,KAAKR,GAAGnC,EAAEM,MAAM8B,EAAEQ,KAAK5C,KAAKmC,EAAEnC,EAAEM,MAAM8B,EAAE,CAACpC,IAAImC,EAAED,EAAE5B,QAAQ4B,EAAE5B,MAAM6B,EAAED,EAAE1B,QAAQ4B,EAAElC,IAAI,CAAC,EAAEiD,EAAEnC,EAAE,eAAesB,GAAGa,IAAIjD,EAAE+B,EAAE9B,EAAE+B,EAAEjC,GAAGyB,GAAG,WAAWyB,EAAEG,cAAchC,IAAIgB,GAAGpC,GAAE,EAAG,IAAI6B,GAAG,WAAWI,EAAE,EAAEe,GAAG,EAAEhB,EAAE9B,EAAE,MAAM,GAAGF,EAAE+B,EAAE9B,EAAE+B,EAAEjC,EAAE,IAAI,EAAEsD,EAAE,CAACC,SAAQ,EAAGC,SAAQ,GAAIC,EAAE,IAAI/C,KAAKgD,EAAE,SAASxD,EAAEC,GAAGJ,IAAIA,EAAEI,EAAEH,EAAEE,EAAED,EAAE,IAAIS,KAAKiD,EAAE/B,qBAAqBgC,IAAI,EAAEA,EAAE,WAAW,GAAG5D,GAAG,GAAGA,EAAEC,EAAEwD,EAAE,CAAC,IAAItD,EAAE,CAAC0D,UAAU,cAAczD,KAAKL,EAAEwB,KAAKuC,OAAO/D,EAAE+D,OAAOC,WAAWhE,EAAEgE,WAAWrB,UAAU3C,EAAEqC,UAAU4B,gBAAgBjE,EAAEqC,UAAUpC,GAAGE,EAAE+D,SAAS,SAASlE,GAAGA,EAAEI,EAAE,IAAID,EAAE,EAAE,CAAC,EAAEgE,EAAE,SAASnE,GAAG,GAAGA,EAAEgE,WAAW,CAAC,IAAI/D,GAAGD,EAAEqC,UAAU,KAAK,IAAI1B,KAAKmC,YAAYlC,OAAOZ,EAAEqC,UAAU,eAAerC,EAAEwB,KAAK,SAASxB,EAAEC,GAAG,IAAIC,EAAE,WAAWyD,EAAE3D,EAAEC,GAAGG,GAAG,EAAED,EAAE,WAAWC,GAAG,EAAEA,EAAE,WAAWyB,oBAAoB,YAAY3B,EAAEqD,GAAG1B,oBAAoB,gBAAgB1B,EAAEoD,EAAE,EAAEzB,iBAAiB,YAAY5B,EAAEqD,GAAGzB,iBAAiB,gBAAgB3B,EAAEoD,EAAE,CAAhO,CAAkOtD,EAAED,GAAG2D,EAAE1D,EAAED,EAAE,CAAC,EAAE4D,EAAE,SAAS5D,GAAG,CAAC,YAAY,UAAU,aAAa,eAAekE,SAAS,SAASjE,GAAG,OAAOD,EAAEC,EAAEkE,EAAEZ,EAAE,GAAG,EAAEa,EAAE,SAASlE,EAAEgC,GAAG,IAAIC,EAAEC,EAAEE,IAAIG,EAAErC,EAAE,OAAO6C,EAAE,SAASjD,GAAGA,EAAE2C,UAAUP,EAAEI,kBAAkBC,EAAEnC,MAAMN,EAAEiE,gBAAgBjE,EAAE2C,UAAUF,EAAEjC,QAAQoC,KAAK5C,GAAGmC,GAAE,GAAI,EAAEe,EAAElC,EAAE,cAAciC,GAAGd,EAAEF,EAAE/B,EAAEuC,EAAEP,GAAGgB,GAAGxB,GAAG,WAAWwB,EAAEI,cAAchC,IAAI2B,GAAGC,EAAER,YAAY,IAAG,GAAIQ,GAAGnB,GAAG,WAAW,IAAIf,EAAEyB,EAAErC,EAAE,OAAO+B,EAAEF,EAAE/B,EAAEuC,EAAEP,GAAG/B,EAAE,GAAGF,GAAG,EAAED,EAAE,KAAK4D,EAAE9B,kBAAkBd,EAAEiC,EAAE9C,EAAEyC,KAAK5B,GAAG6C,GAAG,GAAG,EAAEQ,EAAE,CAAC,EAAEC,EAAE,SAAStE,EAAEC,GAAG,IAAIC,EAAEC,EAAEmC,IAAIJ,EAAE9B,EAAE,OAAO+B,EAAE,SAASnC,GAAG,IAAIC,EAAED,EAAE2C,UAAU1C,EAAEE,EAAEqC,kBAAkBN,EAAE5B,MAAML,EAAEiC,EAAE1B,QAAQoC,KAAK5C,GAAGE,IAAI,EAAEkC,EAAEpB,EAAE,2BAA2BmB,GAAG,GAAGC,EAAE,CAAClC,EAAE+B,EAAEjC,EAAEkC,EAAEjC,GAAG,IAAIwC,EAAE,WAAW4B,EAAEnC,EAAEzB,MAAM2B,EAAEkB,cAAchC,IAAIa,GAAGC,EAAEM,aAAa2B,EAAEnC,EAAEzB,KAAI,EAAGP,GAAE,GAAI,EAAE,CAAC,UAAU,SAASgE,SAAS,SAASlE,GAAG8B,iBAAiB9B,EAAEyC,EAAE,CAAC8B,MAAK,EAAGd,SAAQ,GAAI,IAAI/B,EAAEe,GAAE,GAAIV,GAAG,SAAS5B,GAAG+B,EAAE9B,EAAE,OAAOF,EAAE+B,EAAEjC,EAAEkC,EAAEjC,GAAG+C,uBAAuB,WAAWA,uBAAuB,WAAWd,EAAE5B,MAAMwC,YAAYlC,MAAMT,EAAEkC,UAAUgC,EAAEnC,EAAEzB,KAAI,EAAGP,GAAE,EAAG,GAAG,GAAG,GAAG,CAAC,EAAEsE,EAAE,SAASxE,GAAG,IAAIC,EAAEC,EAAEE,EAAE,QAAQH,EAAE,WAAW,IAAI,IAAIA,EAAE6C,YAAY2B,iBAAiB,cAAc,IAAI,WAAW,IAAIzE,EAAE8C,YAAY4B,OAAOzE,EAAE,CAAC6D,UAAU,aAAanB,UAAU,GAAG,IAAI,IAAIzC,KAAKF,EAAE,oBAAoBE,GAAG,WAAWA,IAAID,EAAEC,GAAGW,KAAK8D,IAAI3E,EAAEE,GAAGF,EAAE4E,gBAAgB,IAAI,OAAO3E,CAAC,CAAjL,GAAqL,GAAGC,EAAEI,MAAMJ,EAAEK,MAAMN,EAAE4E,cAAc3E,EAAEI,MAAM,GAAGJ,EAAEI,MAAMwC,YAAYlC,MAAM,OAAOV,EAAEM,QAAQ,CAACP,GAAGD,EAAEE,EAAE,CAAC,MAAMF,GAAG,CAAC,EAAE,aAAa2B,SAASmD,WAAWvC,WAAWtC,EAAE,GAAG6B,iBAAiB,QAAQ,WAAW,OAAOS,WAAWtC,EAAE,EAAE,GAAG,C","sources":["../node_modules/web-vitals/dist/web-vitals.js"],"sourcesContent":["var e,t,n,i,r=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},a=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},u=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},c=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,s=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){o((function(e){var t=e.timeStamp;f=t}),!0)},v=function(){return f<0&&(f=s(),m(),u((function(){setTimeout((function(){f=s(),m()}),0)}))),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=v(),o=r(\"FCP\"),f=function(e){\"first-contentful-paint\"===e.name&&(m&&m.disconnect(),e.startTime-1&&e(t)},f=r(\"CLS\",0),s=0,m=[],v=function(e){if(!e.hadRecentInput){var t=m[0],i=m[m.length-1];s&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(s+=e.value,m.push(e)):(s=e.value,m=[e]),s>f.value&&(f.value=s,f.entries=m,n())}},h=a(\"layout-shift\",v);h&&(n=c(i,f,t),o((function(){h.takeRecords().map(v),n(!0)})),u((function(){s=0,l=-1,f=r(\"CLS\",0),n=c(i,f,t)})))},T={passive:!0,capture:!0},y=new Date,g=function(i,r){e||(e=r,t=i,n=new Date,w(removeEventListener),E())},E=function(){if(t>=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){g(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,T),removeEventListener(\"pointercancel\",i,T)};addEventListener(\"pointerup\",n,T),addEventListener(\"pointercancel\",i,T)}(t,e):g(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,S,T)}))},L=function(n,f){var s,m=v(),d=r(\"FID\"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"load\",(function(){return setTimeout(t,0)}))};export{h as getCLS,d as getFCP,L as getFID,F as getLCP,P as getTTFB};\n"],"names":["e","t","n","i","r","name","value","delta","entries","id","concat","Date","now","Math","floor","random","a","PerformanceObserver","supportedEntryTypes","includes","self","getEntries","map","observe","type","buffered","o","document","visibilityState","removeEventListener","addEventListener","u","persisted","c","f","s","m","timeStamp","v","setTimeout","firstHiddenTime","d","disconnect","startTime","push","window","performance","getEntriesByName","requestAnimationFrame","p","l","h","hadRecentInput","length","takeRecords","T","passive","capture","y","g","w","E","entryType","target","cancelable","processingStart","forEach","S","L","b","F","once","P","getEntriesByType","timing","max","navigationStart","responseStart","readyState"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.83cb6605.js b/static/js/main.83cb6605.js new file mode 100644 index 0000000..756430c --- /dev/null +++ b/static/js/main.83cb6605.js @@ -0,0 +1,3 @@ +/*! For license information please see main.83cb6605.js.LICENSE.txt */ +!function(){var e={1694:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;t-1}},2683:function(e){e.exports=function(e,t,n){for(var r=-1,i=null==e?0:e.length;++r=t?e:t)),e}},7927:function(e,t,n){var r=n(5358),i=n(7056)(r);e.exports=i},2045:function(e){e.exports=function(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o0&&o(s)?n>1?e(s,n-1,o,a,l):r(l,s):a||(l[l.length]=s)}return l}},5099:function(e,t,n){var r=n(372)();e.exports=r},5358:function(e,t,n){var r=n(5099),i=n(2742);e.exports=function(e,t){return e&&r(e,t,i)}},8667:function(e,t,n){var r=n(3082),i=n(9793);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n=200){var v=t?null:l(e);if(v)return u(v);f=!1,s=a,p=new r}else p=t?[]:h;e:for(;++cs))return!1;var f=u.get(e),h=u.get(t);if(f&&h)return f==t&&h==e;var p=-1,v=!0,g=2&n?new r:void 0;for(u.set(e,t),u.set(t,e);++p-1&&e%1==0&&e-1}},7109:function(e,t,n){var r=n(7112);e.exports=function(e,t){var n=this.__data__,i=r(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}},4086:function(e,t,n){var r=n(9676),i=n(8384),o=n(5797);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||i),string:new r}}},9255:function(e,t,n){var r=n(2799);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},9186:function(e,t,n){var r=n(2799);e.exports=function(e){return r(this,e).get(e)}},3423:function(e,t,n){var r=n(2799);e.exports=function(e){return r(this,e).has(e)}},3739:function(e,t,n){var r=n(2799);e.exports=function(e,t){var n=r(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}},234:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},284:function(e){e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},4634:function(e,t,n){var r=n(9151);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},9620:function(e,t,n){var r=n(8136)(Object,"create");e.exports=r},8836:function(e,t,n){var r=n(2709)(Object.keys,Object);e.exports=r},9494:function(e,t,n){e=n.nmd(e);var r=n(1032),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,a=o&&o.exports===i&&r.process,l=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=l},3581:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},2709:function(e){e.exports=function(e,t){return function(n){return e(t(n))}}},7009:function(e,t,n){var r=n(1032),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},5774:function(e){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},1596:function(e){e.exports=function(e){return this.__data__.has(e)}},2230:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},511:function(e,t,n){var r=n(8384);e.exports=function(){this.__data__=new r,this.size=0}},835:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},707:function(e){e.exports=function(e){return this.__data__.get(e)}},8832:function(e){e.exports=function(e){return this.__data__.has(e)}},5077:function(e,t,n){var r=n(8384),i=n(5797),o=n(8059);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!i||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(a)}return n.set(e,t),this.size=n.size,this}},7167:function(e){e.exports=function(e,t,n){for(var r=n-1,i=e.length;++r=t||n<0||g&&e-p>=s}function w(){var e=i();if(b(e))return k(e);f=setTimeout(w,function(e){var n=t-(e-h);return g?l(n,s-(e-p)):n}(e))}function k(e){return f=void 0,m&&u?y(e):(u=c=void 0,d)}function x(){var e=i(),n=b(e);if(u=arguments,c=this,h=e,n){if(void 0===f)return function(e){return p=e,f=setTimeout(w,t),v?y(e):d}(h);if(g)return clearTimeout(f),f=setTimeout(w,t),y(h)}return void 0===f&&(f=setTimeout(w,t)),d}return t=o(t)||0,r(n)&&(v=!!n.leading,s=(g="maxWait"in n)?a(o(n.maxWait)||0,t):s,m="trailing"in n?!!n.trailing:m),x.cancel=function(){void 0!==f&&clearTimeout(f),p=0,u=h=c=f=void 0},x.flush=function(){return void 0===f?d:k(i())},x}},9231:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},5506:function(e,t,n){var r=n(5182);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},6181:function(e,t,n){var r=n(8667);e.exports=function(e,t,n){var i=null==e?void 0:r(e,t);return void 0===i?n:i}},8444:function(e,t,n){var r=n(2526),i=n(4629),o=Object.prototype.hasOwnProperty,a=i((function(e,t,n){o.call(e,n)?e[n].push(t):r(e,n,[t])}));e.exports=a},7805:function(e,t,n){var r=n(7852),i=n(6417);e.exports=function(e,t){return null!=e&&i(e,t,r)}},5658:function(e,t,n){var r=n(529),i=n(6417);e.exports=function(e,t){return null!=e&&i(e,t,r)}},2100:function(e){e.exports=function(e){return e}},4963:function(e,t,n){var r=n(4906),i=n(3141),o=Object.prototype,a=o.hasOwnProperty,l=o.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return i(e)&&a.call(e,"callee")&&!l.call(e,"callee")};e.exports=u},3629:function(e){var t=Array.isArray;e.exports=t},1473:function(e,t,n){var r=n(4786),i=n(4635);e.exports=function(e){return null!=e&&i(e.length)&&!r(e)}},5174:function(e,t,n){e=n.nmd(e);var r=n(7009),i=n(9488),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,l=a&&a.exports===o?r.Buffer:void 0,u=(l?l.isBuffer:void 0)||i;e.exports=u},4786:function(e,t,n){var r=n(9066),i=n(8092);e.exports=function(e){if(!i(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},4635:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},8092:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},3141:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},152:function(e,t,n){var r=n(9066),i=n(3141);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},9102:function(e,t,n){var r=n(8150),i=n(6194),o=n(9494),a=o&&o.isTypedArray,l=a?i(a):r;e.exports=l},2742:function(e,t,n){var r=n(7538),i=n(3654),o=n(1473);e.exports=function(e){return o(e)?r(e):i(e)}},9151:function(e,t,n){var r=n(8059);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function n(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(i.Cache||r),n}i.Cache=r,e.exports=i},9694:function(e){e.exports=function(){}},72:function(e,t,n){var r=n(7009);e.exports=function(){return r.Date.now()}},38:function(e,t,n){var r=n(9586),i=n(4084),o=n(5823),a=n(9793);e.exports=function(e){return o(e)?r(a(e)):i(e)}},6222:function(e,t,n){var r=n(6381)();e.exports=r},8174:function(e){e.exports=function(){return[]}},9488:function(e){e.exports=function(){return!1}},3038:function(e,t,n){var r=n(8573),i=n(8092);e.exports=function(e,t,n){var o=!0,a=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return i(n)&&(o="leading"in n?!!n.leading:o,a="trailing"in n?!!n.trailing:a),r(e,t,{leading:o,maxWait:t,trailing:a})}},1495:function(e,t,n){var r=n(2582),i=1/0;e.exports=function(e){return e?(e=r(e))===i||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}},2582:function(e,t,n){var r=n(821),i=n(8092),o=n(152),a=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=l.test(e);return n||u.test(e)?c(e.slice(2),n?2:8):a.test(e)?NaN:+e}},3518:function(e,t,n){var r=n(2446);e.exports=function(e){return null==e?"":r(e)}},2064:function(e,t,n){var r=n(9602);e.exports=function(e){return e&&e.length?r(e):[]}},888:function(e,t,n){"use strict";var r=n(9047);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,a){if(a!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},2007:function(e,t,n){e.exports=n(888)()},9047:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4463:function(e,t,n){"use strict";var r=n(2791),i=n(5296);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n

'+(n?e:Q(e,!0))+"
\n":"
"+(n?e:Q(e,!0))+"
\n"}},{key:"blockquote",value:function(e){return"
\n".concat(e,"
\n")}},{key:"html",value:function(e,t){return e}},{key:"heading",value:function(e,t,n,r){if(this.options.headerIds){var i=this.options.headerPrefix+r.slug(n);return"').concat(e,"\n")}return"").concat(e,"\n")}},{key:"hr",value:function(){return this.options.xhtml?"
\n":"
\n"}},{key:"list",value:function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"}},{key:"listitem",value:function(e){return"
  • ".concat(e,"
  • \n")}},{key:"checkbox",value:function(e){return" "}},{key:"paragraph",value:function(e){return"

    ".concat(e,"

    \n")}},{key:"table",value:function(e,t){return t&&(t="".concat(t,"")),"\n\n"+e+"\n"+t+"
    \n"}},{key:"tablerow",value:function(e){return"\n".concat(e,"\n")}},{key:"tablecell",value:function(e,t){var n=t.header?"th":"td";return(t.align?"<".concat(n,' align="').concat(t.align,'">'):"<".concat(n,">"))+e+"\n")}},{key:"strong",value:function(e){return"".concat(e,"")}},{key:"em",value:function(e){return"".concat(e,"")}},{key:"codespan",value:function(e){return"".concat(e,"")}},{key:"br",value:function(){return this.options.xhtml?"
    ":"
    "}},{key:"del",value:function(e){return"".concat(e,"")}},{key:"link",value:function(e,t,n){if(null===(e=oe(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"}},{key:"image",value:function(e,t,n){if(null===(e=oe(this.options.sanitize,this.options.baseUrl,e)))return n;var r='').concat(n,'":">"}},{key:"text",value:function(e){return e}}]),e}(),ke=function(){function e(){m(this,e)}return b(e,[{key:"strong",value:function(e){return e}},{key:"em",value:function(e){return e}},{key:"codespan",value:function(e){return e}},{key:"del",value:function(e){return e}},{key:"html",value:function(e){return e}},{key:"text",value:function(e){return e}},{key:"link",value:function(e,t,n){return""+n}},{key:"image",value:function(e,t,n){return""+n}},{key:"br",value:function(){return""}}]),e}(),xe=function(){function e(){m(this,e),this.seen={}}return b(e,[{key:"serialize",value:function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}},{key:"getNextSafeSlug",value:function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do{n=e+"-"+ ++r}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n}},{key:"slug",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)}}]),e}(),De=function(){function e(t){m(this,e),this.options=t||V,this.options.renderer=this.options.renderer||new we,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ke,this.slugger=new xe}return b(e,[{key:"parse",value:function(e){var t,n,r,i,o,a,l,u,c,s,d,f,h,p,v,g,m,y,b,w=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],k="",x=e.length;for(t=0;t0&&"paragraph"===v.tokens[0].type?(v.tokens[0].text=y+" "+v.tokens[0].text,v.tokens[0].tokens&&v.tokens[0].tokens.length>0&&"text"===v.tokens[0].tokens[0].type&&(v.tokens[0].tokens[0].text=y+" "+v.tokens[0].tokens[0].text)):v.tokens.unshift({type:"text",text:y}):p+=y),p+=this.parse(v.tokens,h),c+=this.renderer.listitem(p,m,g);k+=this.renderer.list(c,d,f);continue;case"html":k+=this.renderer.html(s.text,s.block);continue;case"paragraph":k+=this.renderer.paragraph(this.parseInline(s.tokens));continue;case"text":for(c=s.tokens?this.parseInline(s.tokens):s.text;t+1";return t?Promise.resolve(i):n?void n(null,i):i}if(t)return Promise.reject(r);if(!n)throw r;n(r)}}var Re=new Fe(V);function _e(e,t,n){return Re.parse(e,t,n)}_e.options=_e.setOptions=function(e){return Re.setOptions(e),_e.defaults=Re.defaults,$(_e.defaults),_e},_e.getDefaults=U,_e.defaults=V,_e.use=function(){return Re.use.apply(Re,arguments),_e.defaults=Re.defaults,$(_e.defaults),_e},_e.walkTokens=function(e,t){return Re.walkTokens(e,t)},_e.parseInline=Re.parseInline,_e.Parser=De,_e.parser=De.parse,_e.Renderer=we,_e.TextRenderer=ke,_e.Lexer=be,_e.lexer=be.lex,_e.Tokenizer=pe,_e.Slugger=xe,_e.Hooks=Ce,_e.parse=_e;_e.options,_e.setOptions,_e.use,_e.walkTokens,_e.parseInline,De.parse,be.lex;var Te,Pe=["onClickOutside"],ze=["width"],Oe=["width"],Ie=["inWidth","inHeight","children"],Le=["placeholder","value","onKeyDown","highlight","altNewline","validatedSelection"];function Be(){throw new Error(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"This should not happen")}function He(e){if(!e)return Be(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Assertion failed")}function Ne(e){return Be("Hell froze over")}var je=Object.prototype.hasOwnProperty;function We(e,t){var n,r;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&We(e[r],t[r]););return-1===r}if(!n||"object"===typeof e){for(n in r=0,e){if(je.call(e,n)&&++r&&!je.call(t,n))return!1;if(!(n in t)||!We(e[n],t[n]))return!1}return Object.keys(t).length===r}}return e!==e&&t!==t}var Ue=function(t){k(r,t);var n=C(r);function r(){var t;return m(this,r),(t=n.apply(this,arguments)).wrapperRef=e.createRef(),t.clickOutside=function(e){if(null!==t.wrapperRef.current&&!t.wrapperRef.current.contains(e.target)){for(var n=e.target;null!==n;){if(n.classList.contains("click-outside-ignore"))return;n=n.parentElement}t.props.onClickOutside()}},t}return b(r,[{key:"componentDidMount",value:function(){document.addEventListener("mousedown",this.clickOutside,!0),document.addEventListener("contextmenu",this.clickOutside,!0)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("mousedown",this.clickOutside),document.removeEventListener("contextmenu",this.clickOutside)}},{key:"render",value:function(){var t=this.props,n=(t.onClickOutside,g(t,Pe));return e.createElement("div",v(v({},n),{},{ref:this.wrapperRef}),this.props.children)}}]),r}(e.PureComponent);function Ve(e){var t,n;return{"--gdg-accent-color":e.accentColor,"--gdg-accent-fg":e.accentFg,"--gdg-accent-light":e.accentLight,"--gdg-text-dark":e.textDark,"--gdg-text-medium":e.textMedium,"--gdg-text-light":e.textLight,"--gdg-text-bubble":e.textBubble,"--gdg-bg-icon-header":e.bgIconHeader,"--gdg-fg-icon-header":e.fgIconHeader,"--gdg-text-header":e.textHeader,"--gdg-text-group-header":null!=(t=e.textGroupHeader)?t:e.textHeader,"--gdg-text-header-selected":e.textHeaderSelected,"--gdg-bg-cell":e.bgCell,"--gdg-bg-cell-medium":e.bgCellMedium,"--gdg-bg-header":e.bgHeader,"--gdg-bg-header-has-focus":e.bgHeaderHasFocus,"--gdg-bg-header-hovered":e.bgHeaderHovered,"--gdg-bg-bubble":e.bgBubble,"--gdg-bg-bubble-selected":e.bgBubbleSelected,"--gdg-bg-search-result":e.bgSearchResult,"--gdg-border-color":e.borderColor,"--gdg-horizontal-border-color":null!=(n=e.horizontalBorderColor)?n:e.borderColor,"--gdg-drilldown-border":e.drilldownBorder,"--gdg-link-color":e.linkColor,"--gdg-cell-horizontal-padding":"".concat(e.cellHorizontalPadding,"px"),"--gdg-cell-vertical-padding":"".concat(e.cellVerticalPadding,"px"),"--gdg-header-font-style":e.headerFontStyle,"--gdg-base-font-style":e.baseFontStyle,"--gdg-font-family":e.fontFamily,"--gdg-editor-font-size":e.editorFontSize}}var $e={accentColor:"#4F5DFF",accentFg:"#FFFFFF",accentLight:"rgba(62, 116, 253, 0.1)",textDark:"#313139",textMedium:"#737383",textLight:"#B2B2C0",textBubble:"#313139",bgIconHeader:"#737383",fgIconHeader:"#FFFFFF",textHeader:"#313139",textGroupHeader:"#313139BB",textHeaderSelected:"#FFFFFF",bgCell:"#FFFFFF",bgCellMedium:"#FAFAFB",bgHeader:"#F7F7F8",bgHeaderHasFocus:"#E9E9EB",bgHeaderHovered:"#EFEFF1",bgBubble:"#EDEDF3",bgBubbleSelected:"#FFFFFF",bgSearchResult:"#fff9e3",borderColor:"rgba(115, 116, 131, 0.16)",drilldownBorder:"rgba(0, 0, 0, 0)",linkColor:"#4F5DFF",cellHorizontalPadding:8,cellVerticalPadding:3,headerIconSize:18,headerFontStyle:"600 13px",baseFontStyle:"13px",fontFamily:"Inter, Roboto, -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Ubuntu, noto, arial, sans-serif",editorFontSize:"13px",lineHeight:1.4};function Ze(){return $e}var Ke=e.createContext($e);var Xe,Ye,Ge,qe,Qe=null,Je=void 0,et="header",tt="group-header",nt="out-of-bounds";(Ye=Xe||(Xe={})).Uri="uri",Ye.Text="text",Ye.Image="image",Ye.RowID="row-id",Ye.Number="number",Ye.Bubble="bubble",Ye.Boolean="boolean",Ye.Loading="loading",Ye.Markdown="markdown",Ye.Drilldown="drilldown",Ye.Protected="protected",Ye.Custom="custom",(qe=Ge||(Ge={})).HeaderRowID="headerRowID",qe.HeaderCode="headerCode",qe.HeaderNumber="headerNumber",qe.HeaderString="headerString",qe.HeaderBoolean="headerBoolean",qe.HeaderAudioUri="headerAudioUri",qe.HeaderVideoUri="headerVideoUri",qe.HeaderEmoji="headerEmoji",qe.HeaderImage="headerImage",qe.HeaderUri="headerUri",qe.HeaderPhone="headerPhone",qe.HeaderMarkdown="headerMarkdown",qe.HeaderDate="headerDate",qe.HeaderTime="headerTime",qe.HeaderEmail="headerEmail",qe.HeaderReference="headerReference",qe.HeaderIfThenElse="headerIfThenElse",qe.HeaderSingleValue="headerSingleValue",qe.HeaderLookup="headerLookup",qe.HeaderTextTemplate="headerTextTemplate",qe.HeaderMath="headerMath",qe.HeaderRollup="headerRollup",qe.HeaderJoinStrings="headerJoinStrings",qe.HeaderSplitString="headerSplitString",qe.HeaderGeoDistance="headerGeoDistance",qe.HeaderArray="headerArray",qe.RowOwnerOverlay="rowOwnerOverlay",qe.ProtectedColumnOverlay="protectedColumnOverlay";var rt,it,ot,at="___gdg_header_cell_",lt=at+"checked",ut=at+"unchecked",ct=at+"indeterminate";function st(e){return"width"in e&&"number"===typeof e.width}function dt(e){return ft.apply(this,arguments)}function ft(){return(ft=c(l().mark((function e(t){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("object"!==typeof t){e.next=2;break}return e.abrupt("return",t);case 2:return e.next=4,t();case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ht(e){return e.kind!==Xe.Loading&&e.kind!==Xe.Bubble&&e.kind!==Xe.RowID&&e.kind!==Xe.Protected&&e.kind!==Xe.Drilldown}function pt(e){return e.kind===rt.Marker||e.kind===rt.NewRow}function vt(e){return!(!ht(e)||e.kind===Xe.Image)&&(e.kind===Xe.Text||e.kind===Xe.Number||e.kind===Xe.Markdown||e.kind===Xe.Uri||e.kind===Xe.Custom||e.kind===Xe.Boolean?!0!==e.readonly:void Ne())}function gt(e){return T(e,"editor")}function mt(e){var t;return!(null!=(t=e.readonly)&&t)}(it=rt||(rt={})).NewRow="new-row",it.Marker="marker";var yt=function(e){function t(e){var n=this;m(this,t),this.items=e,this.offset=function(e){return 0===e?n:new t(n.items.map((function(t){return[t[0]+e,t[1]+e]})))},this.add=function(e){var r="number"===typeof e?[e,e+1]:e,i=function(e){if(0===e.length)return[];var t=h(e),n=[];t.sort((function(e,t){return e[0]-t[0]})),n.push(h(t[0]));var r,i=d(t.slice(1));try{for(i.s();!(r=i.n()).done;){var o=r.value,a=n[n.length-1];a[1]=o&&e` as the last child of your ``.'),null;var J=Y?"gdg-style":"gdg-unstyle";return R||(J+=" invalid"),X&&(J+=" pad"),(0,_.createPortal)(e.createElement(Ke.Provider,{value:p},e.createElement(Ue,{style:Ve(p),className:h,onClickOutside:L},e.createElement(wt,{ref:Z,id:g,className:J,style:F,as:!0===V?"label":void 0,targetX:n.x,targetY:n.y,targetWidth:n.width,targetHeight:n.height},e.createElement("div",{className:"clip-region",onKeyDown:H},E)))),Q)},Dt=65536,Ct=[];function St(e,t){return t*Dt+e}function Et(e){return e%Dt}function Ft(e,t){return(e-t)/Dt}function At(e){var t=Et(e);return[t,Ft(e,t)]}var Mt=function(){function e(){var t=this;m(this,e),this.imageLoaded=function(){},this.loadedLocations=[],this.visibleWindow={x:0,y:0,width:0,height:0},this.freezeCols=0,this.isInWindow=function(e){var n=Et(e),r=Ft(e,n),i=t.visibleWindow;return n=i.y&&r<=i.y+i.height||n>=i.x&&n<=i.x+i.width&&r>=i.y&&r<=i.y+i.height},this.cache={},this.sendLoaded=P((function(){t.imageLoaded(t.loadedLocations),t.loadedLocations=[]}),20),this.clearOutOfWindow=function(){for(var e=0,n=Object.keys(t.cache);e4&&void 0!==arguments[4]&&arguments[4],a=e.useRef();a.current=n,e.useEffect((function(){if(null!==r&&void 0!==r.addEventListener){var e=r,n=function(t){var n;null==(n=a.current)||n.call(e,t)};return e.addEventListener(t,n,{passive:i,capture:o}),function(){e.removeEventListener(t,n,{capture:o})}}}),[t,r,i,o])}function Tt(e,t){return void 0===e?void 0:t}var Pt=Math.PI;function zt(e){return e*Pt/180}var Ot=function(t){var n,r=null!=(n=t.fgColor)?n:"currentColor";return e.createElement("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12.7073 7.05029C7.87391 11.8837 10.4544 9.30322 6.03024 13.7273C5.77392 13.9836 5.58981 14.3071 5.50189 14.6587L4.52521 18.5655C4.38789 19.1148 4.88543 19.6123 5.43472 19.475L9.34146 18.4983C9.69313 18.4104 10.0143 18.2286 10.2706 17.9722L16.9499 11.2929",stroke:r,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none",vectorEffect:"non-scaling-stroke"}),e.createElement("path",{d:"M20.4854 4.92901L19.0712 3.5148C18.2901 2.73375 17.0238 2.73375 16.2428 3.5148L14.475 5.28257C15.5326 7.71912 16.4736 8.6278 18.7176 9.52521L20.4854 7.75744C21.2665 6.97639 21.2665 5.71006 20.4854 4.92901Z",stroke:r,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none",vectorEffect:"non-scaling-stroke"}))},It=function(t){var n,r=null!=(n=t.fgColor)?n:"currentColor";return e.createElement("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M19 6L10.3802 17L5.34071 11.8758",vectorEffect:"non-scaling-stroke",stroke:r,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))};var Lt="\u0591-\u07ff\ufb1d-\ufdfd\ufe70-\ufefc",Bt="A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff",Ht=new RegExp("^[^"+Bt+"]*["+Lt+"]"),Nt=new RegExp("^[^"+Lt+"]*["+Bt+"]");var jt=void 0;var Wt=Symbol();function Ut(e,t){return(null!=e?e:"")===(null!=t?t:"")}function Vt(e,t,n){var i=n.x,o=n.x+n.width-1,a=n.y,l=n.y+n.height-1,u=(0,r.Z)(e,2),c=u[0],s=u[1];if(sl)return!1;if(void 0===t.span)return c>=i&&c<=o;var d=(0,r.Z)(t.span,2),f=d[0],h=d[1];return f>=i&&f<=o||h>=i&&f<=o||fo}function $t(e,t){var n=e;if(void 0!==t){var r=h(e),i=n[t.src];t.src>t.dest?(r.splice(t.src,1),r.splice(t.dest,0,i)):(r.splice(t.dest+1,0,i),r.splice(t.src,1)),n=r=r.map((function(t,n){return v(v({},t),{},{sticky:e[n].sticky})}))}return n}function Zt(e,t){for(var n=0,r=$t(e,t),i=0;i0){var s,f=d(l);try{for(f.s();!(s=f.n()).done;){n-=s.value.width}}catch(m){f.e(m)}finally{f.f()}}for(var h=t,p=null!=i?i:0;p<=n&&h1e4&&(Yt={},Xt=0),i}function Jt(e,t){return"string"!==typeof t&&(t="".concat(t.baseFontStyle," ").concat(t.fontFamily)),function(e,t){var n,r=d(tn);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(i.key===t)return i.val}}catch(u){r.e(u)}finally{r.f()}var o=en(e,"alphabetic"),a=en(e,"middle"),l=-(a.actualBoundingBoxDescent-o.actualBoundingBoxDescent)+o.actualBoundingBoxAscent/2;return tn.push({key:t,val:l}),l}(e,t)}function en(e,t){e.save(),e.textBaseline=t;var n=e.measureText("ABCDEFGHIJKLMNOPQRSTUVWXYZ");return e.restore(),n}!function(){qt.apply(this,arguments)}();var tn=[];function nn(e,t,n){var r=e.ctx,i=e.theme,o=null!=t?t:{},a=null!=n?n:i.textDark;return a!==o.fillStyle&&(r.fillStyle=a,o.fillStyle=a),o}function rn(e,t,n,r,i,o,a,l,u){"right"===u?e.fillText(t,n+i-(l.cellHorizontalPadding+.5),r+o/2+a):"center"===u?e.fillText(t,n+i/2,r+o/2+a):e.fillText(t,n+l.cellHorizontalPadding+.5,r+o/2+a)}function on(e,t){var n=Qt("ABCi09jgqpy",e,t);return n.actualBoundingBoxAscent+n.actualBoundingBoxDescent}function an(e,t,n,r,i){var o=e.ctx,a=e.rect,l=e.theme,u=a.x,c=a.y,s=a.width,f=a.height;if(!(r=null!=r&&r)){t.includes("\n")&&(t=t.split(/\r?\n/)[0]);var h=s/4;t.length>h&&(t=t.slice(0,h))}var p,v=Jt(o,l),g="rtl"===(p=t,Ht.test(p)?"rtl":Nt.test(p)?"ltr":"neutral");if(void 0===n&&g&&(n="right"),g&&(o.direction="rtl"),t.length>0){var m=!1;if("right"===n?(o.textAlign="right",m=!0):void 0!==n&&"left"!==n&&(o.textAlign=n,m=!0),r){var y="".concat(l.fontFamily," ").concat(l.baseFontStyle),b=function(e,t,n,r,i,o){var a="".concat(t,"_").concat(n,"_").concat(r,"px"),l=z.get(a);if(void 0!==l)return l;if(r<=0)return[];var u,c=[],s=t.split("\n"),f=O.get(n),h=void 0===f?t.length:r/f.size*1.5,p=i&&void 0!==f&&f.count>2e4,v=d(s);try{for(v.s();!(u=v.n()).done;){var g=u.value,m=L(e,g.slice(0,Math.max(0,h)),n,p),y=Math.min(g.length,h);if(m<=r)c.push(g);else{for(;m>r;){var b=B(e,g,r,n,m,y,p,o),w=g.slice(0,Math.max(0,b));g=g.slice(w.length),c.push(w),m=L(e,g.slice(0,Math.max(0,h)),n,p),y=Math.min(g.length,h)}m>0&&c.push(g)}}}catch(k){v.e(k)}finally{v.f()}return c=c.map((function(e,t){return 0===t?e.trimEnd():e.trim()})),z.set(a,c),z.size>500&&z.delete(z.keys().next().value),c}(o,t,y,s-2*l.cellHorizontalPadding,null!=i&&i),w=on(o,y),k=l.lineHeight*w,x=w+k*(b.length-1),D=x+l.cellVerticalPadding>f;D&&(o.save(),o.rect(u,c,s,f),o.clip());var C,S=c+f/2-x/2,E=Math.max(c+l.cellVerticalPadding,S),F=d(b);try{for(F.s();!(C=F.n()).done;){if(rn(o,C.value,u,E,s,w,v,l,n),(E+=k)>c+f)break}}catch(A){F.e(A)}finally{F.f()}D&&o.restore()}else rn(o,t,u,c,s,f,v,l,n);m&&(o.textAlign="start"),g&&(o.direction="inherit")}}function ln(e,t,n,r,i,o,a,l){var u=arguments.length>8&&void 0!==arguments[8]?arguments[8]:-20,c=arguments.length>9&&void 0!==arguments[9]?arguments[9]:-20,s=r+o/2,d=i+a/2,f=a/1.89,h=a/2,p=a/3.4,v=Math.abs(u-o/2)s+f)break;var D=Qt(x.text,a,h).width,C=0;if(void 0!==x.img)void 0!==l.loadOrGetImage(x.img,u,c)&&(C=m-8+4);var S=D+C+16;w.push({x:y,width:S}),y+=S+4}}catch(Q){k.e(Q)}finally{k.f()}if(null!==b){var E,F=b.el,A=b.height,M=b.middleWidth,R=b.sideWidth,_=b.width,T=b.dpr,P=R/T,z=b.padding/T,O=d(w);try{for(O.s();!(E=O.n()).done;){var I=E.value,L=Math.floor(I.x),B=Math.floor(I.width);a.imageSmoothingEnabled=!1,a.drawImage(F,0,0,R,A,L-z,g,P,v),I.width>2*R&&a.drawImage(F,R,0,M,A,L+(P-z),g,B-2*(P-z),v),a.drawImage(F,_-R,0,R,A,L+B-(P-z),g,P,v),a.imageSmoothingEnabled=!0}}catch(Q){O.e(Q)}finally{O.f()}}a.beginPath();var H,N=d(w.entries());try{for(N.s();!(H=N.n()).done;){var j=(0,r.Z)(H.value,2),W=j[0],U=j[1],V=t[W],$=U.x+8;if(void 0!==V.img){var Z=l.loadOrGetImage(V.img,u,c);if(void 0!==Z){var K=m-8,X=0,Y=0,G=Z.width,q=Z.height;G>q?(X+=(G-q)/2,G=q):q>G&&(Y+=(q-G)/2,q=G),a.beginPath(),cn(a,$,g+v/2-K/2,K,K,3),a.save(),a.clip(),a.drawImage(Z,X,Y,G,q,$,g+v/2-K/2,K,K),a.restore(),$+=K+4}}a.beginPath(),a.fillStyle=o.textBubble,a.fillText(V.text,$,g+v/2+Jt(a,o))}}catch(Q){N.e(Q)}finally{N.f()}}function fn(e,t,n,r,i,o,a,l,u,c,s,d,f,h,p){var v={x:0,y:o+c,width:0,height:0},g=o-i;if(e>=d){var m=a>e?-1:1,y=Zt(h);v.x+=y+u;for(var b=a;b!==e;b+=m)v.x+=h[1===m?b:b-1].width*m}else for(var w=0;w0&&Ut(h[k-1].group,x)&&h[k-1].sticky===D;){var C=h[k-1];v.x-=C.width,v.width+=C.width,k--}for(var S=e;S+1n&&(v.width=n-v.x)}}else if(f&&t===s-1){var M="number"===typeof p?p:p(t);v.y=r-M,v.height=M}else{var R=l>t?-1:1;if("number"===typeof p){var _=t-l;v.y+=_*p}else for(var T=l;T!==t;T+=R)v.y+=p(T)*R;v.height=("number"===typeof p?p:p(t))+1}return v}var hn='',pn=function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n\n\n\n\n ')},vn={headerRowID:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'')},headerNumber:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n ')},headerCode:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'')},headerString:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n')},headerBoolean:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n')},headerAudioUri:pn,headerVideoUri:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n')},headerEmoji:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n \n \n \n \n \n ')},headerImage:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n \n')},headerUri:pn,headerPhone:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n ')},headerMarkdown:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n ')},headerDate:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n')},headerTime:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n \n ')},headerEmail:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n \n')},headerReference:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n \n ')},headerIfThenElse:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n')},headerSingleValue:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n ')},headerLookup:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n ')},headerTextTemplate:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n')},headerMath:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n \n \n \n')},headerRollup:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n ')},headerJoinStrings:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n')},headerSplitString:function(e){var t=e.fgColor,n=e.bgColor;return"\n ".concat(hn,'\n \n \n ')},headerGeoDistance:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n \n')},headerArray:function(e){var t=e.fgColor,n=e.bgColor;return"".concat(hn,'\n \n \n')},rowOwnerOverlay:function(e){var t=e.fgColor,n=e.bgColor;return'\n \n \n ')},protectedColumnOverlay:function(e){var t=e.fgColor,n=e.bgColor;return'\n \n \n \n')},renameIcon:function(e){var t=e.bgColor;return"".concat(hn,'\n \n \n \n \n')}};var gn=function(){function e(t,n){m(this,e),this.onSettled=n,this.spriteMap=new Map,this.inFlight=0,this.headerIcons=v(v({},vn),t)}return b(e,[{key:"drawSprite",value:function(e,t,n,i,o,a,l){var u=this,c=arguments.length>7&&void 0!==arguments[7]?arguments[7]:1,s=function(e,t){return"normal"===e?[t.bgIconHeader,t.fgIconHeader]:"selected"===e?["white",t.accentColor]:[t.accentColor,t.bgHeader]}(t,l),d=(0,r.Z)(s,2),f=d[0],h=d[1],p=a*Math.ceil(window.devicePixelRatio),v="".concat(f,"_").concat(h,"_").concat(p,"_").concat(e),g=this.spriteMap.get(v);if(void 0===g){var m=this.headerIcons[e];if(void 0===m)return;var y=(g=document.createElement("canvas")).getContext("2d");if(null===y)return;var b=new Image;b.src="data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent(m({fgColor:h,bgColor:f}))),this.spriteMap.set(v,g);var w=b.decode();if(void 0===w)return;this.inFlight++,w.then((function(){y.drawImage(b,0,0,p,p)})).finally((function(){u.inFlight--,0===u.inFlight&&u.onSettled()}))}else c<1&&(n.globalAlpha=c),n.drawImage(g,0,0,p,p,i,o,a,a),c<1&&(n.globalAlpha=1)}}]),e}(),mn={},yn=null;function bn(e){var t=e.toLowerCase().trim();if(void 0!==mn[t])return mn[t];yn=yn||function(){var e=document.createElement("div");return e.style.opacity="0",e.style.pointerEvents="none",e.style.position="fixed",document.body.append(e),e}(),yn.style.color="#000",yn.style.color=t;var n=getComputedStyle(yn).color;yn.style.color="#fff",yn.style.color=t;var r=getComputedStyle(yn).color;if(r!==n)throw new Error("Could not parse color");var i=r.replace(/[^\d.,]/g,"").split(",").map(Number.parseFloat);return i.length<4&&i.push(1),mn[t]=i,i}function wn(e,t){var n=bn(e),i=(0,r.Z)(n,3),o=i[0],a=i[1],l=i[2];return"rgba(".concat(o,", ").concat(a,", ").concat(l,", ").concat(t,")")}function kn(e,t){if(void 0===t)return e;var n=bn(e),i=(0,r.Z)(n,4),o=i[0],a=i[1],l=i[2],u=i[3];if(1===u)return e;var c=bn(t),s=(0,r.Z)(c,4),d=s[0],f=s[1],h=s[2],p=s[3],v=u+p*(1-u),g=(u*a+p*f*(1-u))/v,m=(u*l+p*h*(1-u))/v;return"rgba(".concat((u*o+p*d*(1-u))/v,", ").concat(g,", ").concat(m,", ").concat(v,")")}var xn={kind:Xe.Loading,allowOverlay:!1};function Dn(e,t,n,r,i,o,a,l,u,c,s,d,f,h,p,v,g,m,y,b){var w,k;void 0!==p&&p[0][0]===r&&p[0][1]===t&&(w=p[1][0],k=p[1][1]);var x=void 0,D={ctx:e,theme:c,col:r,row:t,cell:n,rect:{x:i,y:o,width:a,height:l},highlighted:u,hoverAmount:h,hoverX:w,hoverY:k,imageLoader:d,spriteManager:f,hyperWrapping:v,requestAnimationFrame:function(){C=!0}},C=!1,S=function(e,t,n,r,i){var o=e.ctx,a=e.rect,l=e.theme,u=Number.MAX_SAFE_INTEGER;if(void 0!==t&&(u=n-t)<500){var c=1-u/500;o.globalAlpha=c,o.fillStyle=l.bgSearchResult,o.fillRect(a.x,a.y,a.width,a.height),o.globalAlpha=1,void 0!==r&&(r.fillStyle=l.bgSearchResult)}return i(),u<500}(D,n.lastUpdated,g,m,(function(){var e,t;if(!(!pt(n)&&!0===(null==s?void 0:s(D)))){var r=b(n);if(void 0!==r){(null==m?void 0:m.renderer)!==r&&(null==(e=null==m?void 0:m.deprep)||e.call(m,D),m=void 0);var i=null==(t=r.drawPrep)?void 0:t.call(r,D,m);r.draw(D,n),x={deprep:null==i?void 0:i.deprep,fillStyle:null==i?void 0:i.fillStyle,font:null==i?void 0:i.font,renderer:r}}}}));return(S||C)&&(null==y||y([r,t])),x}function Cn(e,t,n,r,i,o,a,l,u,c,s,f,h,p,v,g,m){var y,b,w,k=arguments.length>17&&void 0!==arguments[17]&&arguments[17];if(void 0!==u){e.beginPath(),e.save(),e.rect(0,0,o,a);var x,D=d(u);try{for(D.s();!(x=D.n()).done;){var C=x.value;e.rect(C.x+1,C.y+1,C.width-1,C.height-1)}}catch(te){D.e(te)}finally{D.f()}e.clip("evenodd")}var S=null!=(y=m.horizontalBorderColor)?y:m.borderColor,E=m.borderColor,F=0,A=o,M=0,R=a;if(void 0!==l&&l.length>0){F=Number.MAX_SAFE_INTEGER,M=Number.MAX_SAFE_INTEGER,A=Number.MIN_SAFE_INTEGER,R=Number.MIN_SAFE_INTEGER;var _,T=d(l);try{for(T.s();!(_=T.n()).done;){var P=_.value;F=Math.min(F,P.x-1),A=Math.max(A,P.x+P.width+1),M=Math.min(M,P.y-1),R=Math.max(R,P.y+P.height+1)}}catch(te){T.e(te)}finally{T.f()}}var z=[];e.beginPath();for(var O=.5,I=0;I=F&&B<=A&&p(I+1)&&z.push({x1:B,y1:Math.max(c,M),x2:B,y2:Math.min(a,R),color:E})}}var N=f(g-1),j=a-N+.5,W="sticky"===v;if(W&&z.push({x1:F,y1:j,x2:A,y2:j,color:S}),!0!==k)for(var U=s+.5,V=n,$=W?a-N:a;U+i<=$;){var Z=U+i;if(Z>=M&&Z<=R-1&&(!W||V!==g-1||Math.abs(Z-j)>1)){var K=null==h?void 0:h(V);z.push({x1:F,y1:Z,x2:A,y2:Z,color:null!=(w=null!=(b=null==K?void 0:K.horizontalBorderColor)?b:null==K?void 0:K.borderColor)?w:S})}U+=f(V),V++}for(var X=H(z,(function(e){return e.color})),Y=0,G=Object.keys(X);Y=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height}var Fn=30;function An(e,t,n,r){return{x:e+n-Fn,y:Math.max(t,t+r/2-Fn/2),width:Fn,height:Math.min(Fn,r)}}function Mn(e,t,n,r,i,o,a,l,u,c,s,d,f,h){var p=o.title.startsWith(at),g=An(t,n,r,i);if(void 0!==f){var m=o;if(p&&(m=v(v({},o),{},{title:""})),f({ctx:e,theme:l,rect:{x:t,y:n,width:r,height:i},column:m,columnIndex:m.sourceIndex,isSelected:a,hoverAmount:s,isHovered:u,hasSelectedCell:c,spriteManager:d,menuBounds:g}))return}if(p){var y=void 0;return o.title===lt&&(y=!0),o.title===ut&&(y=!1),!0!==y&&(e.globalAlpha=s),ln(e,l,y,t,n,r,i,!1,void 0,void 0),void(!0!==y&&(e.globalAlpha=1))}var b=l.cellHorizontalPadding,w=a?l.textHeaderSelected:l.textHeader,k=!0===o.hasMenu&&(u||h&&a),x=t+b;if(void 0!==o.icon){var D=a?"selected":"normal";"highlight"===o.style&&(D=a?"selected":"special");var C=l.headerIconSize;d.drawSprite(o.icon,D,e,x,n+(i-C)/2,C,l),void 0!==o.overlayIcon&&d.drawSprite(o.overlayIcon,a?"selected":"special",e,x+9,n+((i-18)/2+6),18,l),x+=Math.ceil(1.3*C)}if(k&&!0===o.hasMenu&&r>35){var S=(r-35)/r,E=(r-24.5)/r,F=e.createLinearGradient(t,0,t+r,0),A=wn(w,0);F.addColorStop(0,w),F.addColorStop(S,w),F.addColorStop(E,A),F.addColorStop(1,A),e.fillStyle=F}else e.fillStyle=w;if(e.fillText(o.title,x,n+i/2+Jt(e,"".concat(l.headerFontStyle," ").concat(l.fontFamily))),k&&!0===o.hasMenu){e.beginPath();var M=g.x+g.width/2-5.5,R=g.y+g.height/2-3;!function(e,t,n){for(var r,i=function(e,t){var n=t.x-e.x,r=t.y-e.y,i=Math.sqrt(n*n+r*r),o=n/i,a=r/i;return{x:n,y:t.y-e.y,len:i,nx:o,ny:a,ang:Math.atan2(a,o)}},o=t.length,a=t[o-1],l=0;l1?1:f),v=1,g=!1;h<0?p<0?p=Math.PI+p:(p=Math.PI-p,v=-1,g=!0):p>0&&(v=-1,g=!0),r=void 0!==u.radius?u.radius:n;var m=p/2,y=Math.abs(Math.cos(m)*r/Math.sin(m)),b=void 0;y>Math.min(s.len/2,d.len/2)?(y=Math.min(s.len/2,d.len/2),b=Math.abs(y*Math.sin(m)/Math.cos(m))):b=r;var w=u.x+d.nx*y,k=u.y+d.ny*y;w+=-d.ny*b*v,k+=d.nx*b*v,e.arc(w,k,b,s.ang+Math.PI/2*v,d.ang-Math.PI/2*v,g),a=u,u=c}e.closePath()}(e,[{x:M,y:R},{x:M+11,y:R},{x:M+5.5,y:R+6}],1),e.fillStyle=w,e.fill()}}function Rn(e,t,n,i,o,a,l,u,c,s,d,f,h,p,g,m,y,b,w){var k,x=l+u;if(!(x<=0)){e.fillStyle=f.bgHeader,e.fillRect(0,0,o,x);var D=null!=(k=null==i?void 0:i[0])?k:[],C=(0,r.Z)(D,2),S=C[0],E=C[1],F="".concat(f.headerFontStyle," ").concat(f.fontFamily);e.font=F,Bn(t,0,a,0,x,(function(t,r,i,o){var a,g,k;if(void 0===y||y.some((function(e){return-1===e[1]&&e[0]===t.sourceIndex}))){var x=Math.max(0,o-r);e.save(),e.beginPath(),e.rect(r+x,u,t.width-x,l),e.clip();var D=m(null!=(a=t.group)?a:"").overrideTheme,C=void 0===t.themeOverride&&void 0===D?f:v(v(v({},f),D),t.themeOverride);C.bgHeader!==f.bgHeader&&(e.fillStyle=C.bgHeader,e.fill());var A="".concat(C.headerFontStyle," ").concat(C.fontFamily);F!==A&&(e.font=A);var M=d.columns.hasIndex(t.sourceIndex),R=void 0!==c||s,_=!R&&-1===E&&S===t.sourceIndex,T=R?0:null!=(k=null==(g=p.find((function(e){return e.item[0]===t.sourceIndex&&-1===e.item[1]})))?void 0:g.hoverAmount)?k:0,P=void 0!==(null==d?void 0:d.current)&&d.current.cell[0]===t.sourceIndex,z=M?C.accentColor:P?C.bgHeaderHasFocus:C.bgHeader,O=n?u:0,I=0===t.sourceIndex?0:1;M?(e.fillStyle=z,e.fillRect(r+I,O,t.width-I,l)):(P||T>0)&&(e.beginPath(),e.rect(r+I,O,t.width-I,l),P&&(e.fillStyle=C.bgHeaderHasFocus,e.fill()),T>0&&(e.globalAlpha=T,e.fillStyle=C.bgHeaderHovered,e.fill(),e.globalAlpha=1)),Mn(e,r,O,t.width,l,t,M,C,_,P,T,h,b,w),e.restore()}})),n&&function(e,t,n,i,o,a,l,u,c,s,d,f){var h,p=null!=(h=null==a?void 0:a[0])?h:[],g=(0,r.Z)(p,2),m=g[0],y=g[1],b=0;Hn(t,n,i,o,(function(t,n,i,c,h,p){var g,w;if(void 0===f||f.some((function(e){return-2===e[1]&&e[0]>=t[0]&&e[0]<=t[1]}))){e.save(),e.beginPath(),e.rect(i,c,h,p),e.clip();var k=d(n),x=void 0===(null==k?void 0:k.overrideTheme)?l:v(v({},l),k.overrideTheme),D=-2===y&&void 0!==m&&m>=t[0]&&m<=t[1],C=D?x.bgHeaderHovered:x.bgHeader;if(C!==l.bgHeader&&(e.fillStyle=C,e.fill()),e.fillStyle=null!=(g=x.textGroupHeader)?g:x.textHeader,void 0!==k){var S=i;if(void 0!==k.icon&&(u.drawSprite(k.icon,"normal",e,S+8,(o-20)/2,20,x),S+=26),e.fillText(k.name,S+8,o/2+Jt(e,"".concat(l.headerFontStyle," ").concat(l.fontFamily))),void 0!==k.actions&&D){var E=Sn({x:i,y:c,width:h,height:p},k.actions);e.beginPath();var F=E[0].x-10,A=i+h-F;e.rect(F,0,A,o);var M=e.createLinearGradient(F,0,F+A,0),R=wn(C,0);M.addColorStop(0,R),M.addColorStop(10/A,C),M.addColorStop(1,C),e.fillStyle=M,e.fill(),e.globalAlpha=.6;for(var _=null!=(w=null==a?void 0:a[1])?w:[-1,-1],T=(0,r.Z)(_,2),P=T[0],z=T[1],O=0;O=t[0]&&u[0]<=t[1]){e.rect(r,i,o,a);break}}})),Bn(t,u,a,l,o,(function(t,n,a,l,u){for(var v=Math.max(0,l-n),g=n+v+1,m=t.width-v-1,y=0;y0&&e.rect(g,s,m,d)}}))})),e.clip()}}function Pn(e,t,n,i,o,a,l){var u,c,s,d,f=(0,r.Z)(e,2),h=f[0],p=f[1],v=null!=(c=null==(u=l.find((function(e){return!e.sticky})))?void 0:u.sourceIndex)?c:0;if(p>v){for(var g=Math.max(h,v),m=t,y=i,b=a.sourceIndex-1;b>=g;b--)m-=l[b].width,y+=l[b].width;for(var w=a.sourceIndex+1;w<=p;w++)y+=l[w].width;d={x:m,y:n,width:y,height:o}}if(v>h){for(var k=Math.min(p,v-1),x=t,D=i,C=a.sourceIndex-1;C>=h;C--)x-=l[C].width,D+=l[C].width;for(var S=a.sourceIndex+1;S<=k;S++)D+=l[S].width;s={x:x,y:n,width:D,height:o}}return[s,d]}function zn(e,t,n,i,o,a,l,u,c,s,f,h,p,g,m,y,b,w,k,x,D,C,S,E,F,A,M,R,_,T,P){var z,O,I=null!=(z=null==k?void 0:k.length)?z:Number.MAX_SAFE_INTEGER,L=performance.now(),B="".concat(_.baseFontStyle," ").concat(_.fontFamily);e.font=B;var H=new Set;return Bn(t,u,a,l,o,(function(t,a,l,u,z){var N,j=Math.max(0,u-a),W=a+j,U=o+1,V=t.width-j,$=i-o-1;if(w.length>0){for(var Z=!1,K=0;K0){for(var $=!1,Z=0;Z=t.span[0]&&o<=t.span[1])}(ge,te,x),ye=function(e,t,n){var r=0;if(void 0===n.current)return r;Vt(e,t,n.current.range)&&r++;var i,o=d(n.current.rangeStack);try{for(o.s();!(i=o.n()).done;)Vt(e,t,i.value)&&r++}catch(a){o.e(a)}finally{o.f()}return r}(ge,te,x),be=void 0!==te.span&&x.columns.some((function(e){return void 0!==te.span&&e>=te.span[0]&&e<=te.span[1]}));me&&!m&&y?ye=0:me&&(ye=Math.max(ye,1)),be&&ye++,me||(X&&ye++,G&&!s&&ye++);var we,ke=te.kind===Xe.Protected?ve.bgCellMedium:ve.bgCell;if((s||ke!==_.bgCell)&&(we=kn(ke,we)),ye>0||q){q&&(we=kn(ve.bgHeader,we));for(var xe=0;xe10&&!oe){var Ae="".concat(ve.baseFontStyle," ").concat(ve.fontFamily);Ae!==B&&(e.font=Ae,B=Ae),ee=Dn(e,o,te,t.sourceIndex,ne,i,re,l,ye>0,ve,S,E,F,null!=(N=null==Fe?void 0:Fe.hoverAmount)?N:0,M,R,L,ee,T,P)}return"faded"===te.style&&(e.globalAlpha=1),I--,ie&&(e.restore(),null==(j=null==ee?void 0:ee.deprep)||j.call(ee,{ctx:e}),ee=void 0,Y(),B=J,e.font=J),I<=0}})),e.restore(),I<=0})),O}function On(e,t,n,i,o,a,l,u,c,s,d,f,h,p,v,g){var m;if(void 0!==d.current&&l.some((function(e){var t;return e.sourceIndex===(null==(t=d.current)?void 0:t.cell[0])}))){var y=(0,r.Z)(d.current.cell,2),b=y[0],w=y[1],k=h(d.current.cell),x=null!=(m=k.span)?m:[b,b],D="sticky"!==p||"sticky"===p&&w===g-1?0:f(g-1)-1,C=void 0;if(Bn(l,i,o,a,s,(function(r,i,o,a,l){if(!(r.sticky&&b>r.sourceIndex)&&!(r.sourceIndexx[1]))return Ln(l,o,n,g,f,p,(function(o,l,s){if(l===w){var d=i,f=r.width;if(void 0!==k.span){var h=Pn(k.span,i,o,r.width,s,r,u),p=r.sticky?h[0]:h[1];void 0!==p&&(d=p.x,f=p.width)}return C=function(){var i,l,u,h;a>d&&!r.sticky&&(e.beginPath(),e.rect(a,0,t-a,n),e.clip()),e.beginPath(),e.rect(d+.5,o+.5,f,s),e.strokeStyle=null!=(l=null==(i=r.themeOverride)?void 0:i.accentColor)?l:c.accentColor,e.lineWidth=1,e.stroke(),v&&(e.beginPath(),e.rect(d+f-4,o+s-4,4,4),e.fillStyle=null!=(h=null==(u=r.themeOverride)?void 0:u.accentColor)?h:c.accentColor,e.fill())},!0}})),!0})),void 0!==C){var S=function(){e.save(),e.beginPath(),e.rect(0,s,t,n-s-D),e.clip(),null==C||C(),e.restore()};return S(),S}}}function In(e,t){var n,i,o=e.canvas,a=e.headerCanvas,l=e.width,u=e.height,c=e.cellXOffset,s=e.cellYOffset,f=e.translateX,h=e.translateY,p=e.mappedColumns,m=e.enableGroups,y=e.freezeColumns,b=e.dragAndDropState,w=e.theme,k=e.drawFocus,x=e.headerHeight,D=e.groupHeaderHeight,C=e.disabledRows,S=e.rowHeight,E=e.verticalBorder,F=e.isResizing,A=e.selection,M=e.fillHandle,R=e.lastRowSticky,_=e.rows,T=e.getCellContent,P=e.getGroupDetails,z=e.getRowThemeOverride,O=e.isFocused,I=e.drawCustomCell,L=e.drawHeaderCallback,B=e.prelightCells,H=e.highlightRegions,N=e.imageLoader,j=e.lastBlitData,W=e.hoverValues,U=e.hyperWrapping,V=e.hoverInfo,$=e.spriteManager,Z=e.scrolling,K=e.touchMode,X=e.enqueue,Y=e.getCellRenderer,G=e.renderStrategy,q=e.bufferA,Q=e.bufferB,J=e.damage;if(0!==l&&0!==u){var ee="double-buffer"===G,te=Z?1:Math.ceil(null!=(n=window.devicePixelRatio)?n:1),ne="direct"!==G&&function(e,t){if(void 0===t)return!1;if(e.width!==t.width||e.height!==t.height||e.theme!==t.theme||e.headerHeight!==t.headerHeight||e.rowHeight!==t.rowHeight||e.rows!==t.rows||e.getRowThemeOverride!==t.getRowThemeOverride||e.isFocused!==t.isFocused||e.isResizing!==t.isResizing||e.verticalBorder!==t.verticalBorder||e.getCellContent!==t.getCellContent||e.highlightRegions!==t.highlightRegions||e.selection!==t.selection||e.dragAndDropState!==t.dragAndDropState||e.prelightCells!==t.prelightCells||e.touchMode!==t.touchMode||e.scrolling!==t.scrolling)return!1;if(e.mappedColumns!==t.mappedColumns){if(e.mappedColumns.length>100||e.mappedColumns.length!==t.mappedColumns.length)return!1;for(var n,r=0;r0&&(Tn(se,he,l,u,D,ie,f,h,s,_,fe,R,J,!0),se.fillStyle=w.bgCell,se.fillRect(0,ie+1,l,u-ie-1),zn(se,he,p,u,ie,f,h,s,_,fe,T,P,z,C,O,k,R,pe,J,A,B,H,I,N,$,W,V,U,w,X,Y),M&&k&&void 0!==A.current&&J.some((function(e){var t,n;return e[0]===(null==(t=A.current)?void 0:t.cell[0])&&e[1]===(null==(n=A.current)?void 0:n.cell[1])}))&&On(se,l,u,s,f,h,he,p,w,ie,A,fe,T,R,M,_)),me&&(Tn(ce,he,l,ie,D,ie,f,h,s,_,fe,R,J,!1),ge()),se.restore(),ce.restore(),void(null!==le&&(le.fillStyle=w.bgCell,le.fillRect(0,0,l,u),le.drawImage(se.canvas,0,0)))}if(!0===ne&&c===(null==ae?void 0:ae.cellXOffset)&&f===(null==ae?void 0:ae.translateX)&&ve===(null==ae?void 0:ae.mustDrawFocusOnHeader)||ge(),!0===ne){He(void 0!==de&&void 0!==ae);var ye=function(e,t,n,r,i,o,a,l,u,c,s,d,f,h,p,v,g){var m=[],y=!1;e.imageSmoothingEnabled=!1;var b=Math.min(n.cellYOffset,i),w=Math.max(n.cellYOffset,i),k=0;if("number"===typeof v)k+=(w-b)*v;else for(var x=b;xn.cellYOffset&&(k=-k),k+=a-n.translateY;for(var D=Math.min(n.cellXOffset,r),C=Math.max(n.cellXOffset,r),S=0,E=D;En.cellXOffset&&(S=-S),S+=o-n.translateX;var F=Zt(p);if(F>0&&F++,0!==S&&0!==k)return{regions:[],yOnly:!1};var A=l?"number"===typeof v?v:v(s-1):0,M=u-F-Math.abs(S),R=c-d-A-Math.abs(k)-1;if(M>150&&R>150){y=0===S;var _={sx:0,sy:0,sw:u*f,sh:c*f,dx:0,dy:0,dw:u*f,dh:c*f};k>0?(_.sy=(d+1)*f,_.sh=R*f,_.dy=(k+d+1)*f,_.dh=R*f,m.push({x:0,y:d,width:u,height:k+1})):k<0&&(_.sy=(-k+d+1)*f,_.sh=R*f,_.dy=(d+1)*f,_.dh=R*f,m.push({x:0,y:c+k-A,width:u,height:-k+A})),S>0?(_.sx=F*f,_.sw=M*f,_.dx=(S+F)*f,_.dw=M*f,m.push({x:F-1,y:0,width:S+2,height:c})):S<0&&(_.sx=(F-S)*f,_.sw=M*f,_.dx=F*f,_.dw=M*f,m.push({x:u+S,y:0,width:-S,height:c})),e.setTransform(1,0,0,1,0,0),F>0&&0!==S&&0===k&&g&&e.drawImage(t,0,0,F*f,c*f,0,0,F*f,c*f),e.drawImage(t,_.sx,_.sy,_.sw,_.sh,_.dx,_.dy,_.dw,_.dh),e.scale(f,f)}return e.imageSmoothingEnabled=!0,{regions:m,yOnly:y}}(se,de,ae,c,s,f,h,"sticky"===R,l,u,_,ie,te,p,he,S,ee);pe=ye.regions}else if(!1!==ne){He(void 0!==ae),pe=function(e,t,n,r,i,o,a,l,u,c){var s=[];return t!==e.cellXOffset||n!==e.cellYOffset||r!==e.translateX||i!==e.translateY||Bn(u,n,r,i,l,(function(e,t,n,r){if(e.sourceIndex===c){var i=Math.max(t,r)+1;return s.push({x:i,y:0,width:o-i,height:a}),!0}})),s}(ae,c,s,f,h,l,u,ie,he,ne)}!function(e,t,n,r,i,o,a,l,u){var c,s,f=!1,h=d(t);try{for(h.s();!(s=h.n()).done;){var p=s.value;if(!p.sticky){f=a(p.sourceIndex);break}}}catch(b){h.e(b)}finally{h.f()}var v=null!=(c=u.horizontalBorderColor)?c:u.borderColor,g=u.borderColor,m=f?Zt(t):0;if(0!==m&&(e.beginPath(),e.moveTo(m+.5,0),e.lineTo(m+.5,r),e.strokeStyle=kn(g,u.bgCell),e.stroke()),i){var y=l(o-1);e.beginPath(),e.moveTo(0,r-y+.5),e.lineTo(n,r-y+.5),e.strokeStyle=kn(v,u.bgCell),e.stroke()}}(se,he,l,u,"sticky"===R,_,E,fe,w);var be=k?On(se,l,u,s,f,h,he,p,w,ie,A,fe,T,R,M,_):void 0,we=function(e,t,n,i,o,a,l,u,c,s,f,h,p,v,g){var m=null==g?void 0:g.filter((function(e){return"no-outline"!==e.style}));if(void 0!==m&&0!==m.length){var y=m.map((function(e){var r,d,g,m,y,b=e.range,w=fn(b.x,b.y,t,n,f,s+f,i,o,a,l,v,c,p,u,h);if(1===b.width&&1===b.height)return b.x=c){var x=fn(c-1,b.y+b.height-1,t,n,f,s+f,i,o,a,l,v,c,p,u,h),D=fn(c,b.y+b.height-1,t,n,f,s+f,i,o,a,l,v,c,p,u,h);return[{color:e.color,style:null!=(g=e.style)?g:"dashed",rect:{x:w.x,y:w.y,width:x.x+x.width-w.x,height:x.y+x.height-w.y}},{color:e.color,style:null!=(m=e.style)?m:"dashed",rect:{x:D.x,y:D.y,width:k.x+k.width-D.x,height:k.y+k.height-D.y}}]}return[void 0,{color:e.color,style:null!=(y=e.style)?y:"dashed",rect:{x:w.x,y:w.y,width:k.x+k.width-w.x,height:k.y+k.height-w.y}}]})),b=Zt(u),w=function(){e.beginPath(),e.save();var i=!1,o=function(t){i!==t&&(e.setLineDash(t?[5,3]:[]),i=t)};e.lineWidth=1;var a,l=d(y);try{for(l.s();!(a=l.n()).done;){var u=a.value,c=(0,r.Z)(u,1)[0];void 0!==c&&_n(0,0,t,n,c.rect.x,c.rect.y,c.rect.width,c.rect.height)&&(o("dashed"===c.style),e.strokeStyle=wn(c.color,1),e.strokeRect(c.rect.x+1,c.rect.y+1,c.rect.width-2,c.rect.height-2))}}catch(g){l.e(g)}finally{l.f()}var s,f=!1,h=d(y);try{for(h.s();!(s=h.n()).done;){var p=s.value,v=(0,r.Z)(p,2)[1];void 0!==v&&_n(0,0,t,n,v.rect.x,v.rect.y,v.rect.width,v.rect.height)&&(o("dashed"===v.style),!f&&v.rect.x0){se.beginPath();var ke,xe=d(pe);try{for(xe.s();!(ke=xe.n()).done;){var De=ke.value;se.rect(De.x,De.y,De.width,De.height)}}catch(Ee){xe.e(Ee)}finally{xe.f()}se.clip(),se.fill(),se.beginPath()}else se.fillRect(0,0,l,u);var Ce=zn(se,he,p,u,ie,f,h,s,_,fe,T,P,z,C,O,k,R,pe,J,A,B,H,I,N,$,W,V,U,w,X,Y);!function(e,t,n,r,i,o,a,l,u,c,s,d,f,h,p,g,m,y){void 0===m&&t[t.length-1]===n[t.length-1]&&Bn(t,u,a,l,o,(function(n,a,l,u,m){if(n===t[t.length-1]){a+=n.width;var b=Math.max(a,u);b>r||(e.save(),e.beginPath(),e.rect(b,o+1,1e4,i-o-1),e.clip(),Ln(m,l,i,c,s,p,(function(t,n,r,i){if(i||!(g.length>0)||g.some((function(e){return _n(a,t,1e4,r,e.x,e.y,e.width,e.height)}))){var o=f.hasIndex(n),l=h.hasIndex(n);e.beginPath();var u=null==d?void 0:d(n),c=void 0===u?y:v(v({},y),u);c.bgCell!==y.bgCell&&(e.fillStyle=c.bgCell,e.fillRect(a,t,1e4,r)),l&&(e.fillStyle=c.bgHeader,e.fillRect(a,t,1e4,r)),o&&(e.fillStyle=c.accentLight,e.fillRect(a,t,1e4,r))}})),e.restore())}}))}(se,he,p,l,u,ie,f,h,s,_,fe,z,A.rows,C,R,pe,J,w),Cn(se,he,s,f,h,l,u,pe,Ce,D,ie,fe,z,E,R,_,w),null==be||be(),null==we||we(),null!==le&&(le.fillStyle=w.bgCell,le.fillRect(0,0,l,u),le.drawImage(se.canvas,0,0));var Se=function(e,t,n,r,i,o,a,l,u){var c=0;return Bn(e,o,r,i,n,(function(e,n,r,i,o){return Ln(o,r,t,a,l,u,(function(e,t,n,r){r||(c=Math.max(t,c))})),!0})),c}(he,u,ie,f,h,s,_,fe,R);null==N||N.setWindow({x:c,y:s,width:he.length,height:Se-s},y),j.current={cellXOffset:c,cellYOffset:s,translateX:f,translateY:h,mustDrawFocusOnHeader:ve,lastBuffer:ee?ue===q?"a":"b":void 0},se.restore(),ce.restore()}}}}function Ln(e,t,n,r,i,o,a){for(var l=t,u=e,c="sticky"===o;l=n;s&&(c=!1,u=r-1);var d=i(u);if(s&&(l=n-d),!(c&&u===r-1)&&!0===a(l,u,d,s,"none"!==o&&u===r-1))break;if(s)break;l+=d,u++}}function Bn(e,t,n,r,i,o){var a,l=0,u=0,c=i+r,s=d(e);try{for(s.s();!(a=s.n()).done;){var f=a.value;if(!0===o(f,f.sticky?u:l+n,c,u,t))break;l+=f.width,u+=f.sticky?f.width:0}}catch(h){s.e(h)}finally{s.f()}}function Hn(e,t,n,r,i){for(var o,a=0,l=0,u=0;u0}))},this.shouldStep=function(){var e=n.leavingItems.length>0,t=void 0!==n.currentHoveredItem&&n.currentHoveredItem.hoverAmount<1;return e||t},this.getAnimatingItems=function(){return void 0!==n.currentHoveredItem?[].concat(h(n.leavingItems),[n.currentHoveredItem]):n.leavingItems.map((function(e){return v(v({},e),{},{hoverAmount:Nn(e.hoverAmount)})}))},this.step=function(e){if(void 0===n.lastAnimationTime)n.lastAnimationTime=e;else{var t,r=(e-n.lastAnimationTime)/80,i=d(n.leavingItems);try{for(i.s();!(t=i.n()).done;){var o=t.value;o.hoverAmount=E(o.hoverAmount-r,0,1)}}catch(l){i.e(l)}finally{i.f()}void 0!==n.currentHoveredItem&&(n.currentHoveredItem.hoverAmount=E(n.currentHoveredItem.hoverAmount+r,0,1));var a=n.getAnimatingItems();n.callback(a),n.cleanUpLeavingElements()}n.shouldStep()?(n.lastAnimationTime=e,window.requestAnimationFrame(n.step)):n.lastAnimationTime=void 0},this.setHovered=function(e){var t;if(!n.areSameItems(null==(t=n.currentHoveredItem)?void 0:t.item,e)){if(void 0!==n.currentHoveredItem&&n.addToLeavingItems(n.currentHoveredItem),void 0!==e){var r=n.removeFromLeavingItems(e);n.currentHoveredItem={item:e,hoverAmount:r}}else n.currentHoveredItem=void 0;void 0===n.lastAnimationTime&&window.requestAnimationFrame(n.step)}}})),Wn=function(){function e(t){m(this,e),this.fn=t}return b(e,[{key:"value",get:function(){var e;return null!=(e=this.val)?e:this.val=this.fn()}}]),e}();function Un(e){return new Wn(e)}var Vn=Un((function(){return window.navigator.userAgent.includes("Firefox")})),$n=Un((function(){return window.navigator.userAgent.includes("Mac OS")&&window.navigator.userAgent.includes("Safari")&&!window.navigator.userAgent.includes("Chrome")})),Zn=Un((function(){return window.navigator.platform.toLowerCase().startsWith("mac")}));function Kn(t){var n=e.useRef([]),r=e.useRef(0),i=e.useRef(t);i.current=t;var o=e.useCallback((function(){var e=function(){var e=n.current;n.current=[],i.current(e),n.current.length>0?r.current++:r.current=0};window.requestAnimationFrame(r.current>600?function(){return window.requestAnimationFrame(e)}:e)}),[]);return e.useCallback((function(e){(function(e,t){var n,r=d(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(i[0]===t[0]&&i[1]===t[1])return!0}}catch(o){r.e(o)}finally{r.f()}return!1})(n.current,e)||(0===n.current.length&&o(),n.current.push(e))}),[o])}var Xn=e.memo(e.forwardRef((function(t,n){var i,o,a,u,s,f,h,p,g=t.width,m=t.height,y=t.accessibilityHeight,b=t.columns,w=t.cellXOffset,k=t.cellYOffset,x=t.headerHeight,D=t.fillHandle,C=void 0!==D&&D,S=t.groupHeaderHeight,F=t.rowHeight,A=t.rows,_=t.getCellContent,T=t.getRowThemeOverride,P=t.onHeaderMenuClick,z=t.enableGroups,O=t.isFilling,I=t.onCanvasFocused,L=t.onCanvasBlur,B=t.isFocused,H=t.selection,N=t.freezeColumns,j=t.onContextMenu,W=t.trailingRowType,U=t.fixedShadowX,V=void 0===U||U,$=t.fixedShadowY,Z=void 0===$||$,K=t.drawFocusRing,X=void 0===K||K,Y=t.onMouseDown,G=t.onMouseUp,q=t.onMouseMoveRaw,Q=t.onMouseMove,J=t.onItemHovered,ee=t.dragAndDropState,te=t.firstColAccessible,ne=t.onKeyDown,re=t.onKeyUp,ie=t.highlightRegions,oe=t.canvasRef,ae=t.onDragStart,le=t.onDragEnd,ue=t.eventTargetRef,ce=t.isResizing,se=t.isDragging,de=t.isDraggable,fe=void 0!==de&&de,he=t.allowResize,pe=t.disabledRows,ve=t.getGroupDetails,ge=t.theme,me=t.prelightCells,ye=t.headerIcons,be=t.verticalBorder,we=t.drawHeader,ke=t.drawCustomCell,xe=t.onCellFocused,De=t.onDragOverCell,Ce=t.onDrop,Se=t.onDragLeave,Ee=t.imageWindowLoader,Fe=t.smoothScrollX,Ae=void 0!==Fe&&Fe,Me=t.smoothScrollY,Re=void 0!==Me&&Me,_e=t.experimental,Te=t.getCellRenderer,Pe=null!=(i=t.translateX)?i:0,ze=null!=(o=t.translateY)?o:0,Oe=Math.max(N,Math.min(b.length-1,w)),Ie=e.useRef(null),Le=e.useMemo((function(){return new Rt}),[]),Be=null!=Ee?Ee:Le,Ne=e.useRef(),je=e.useState(!1),We=(0,r.Z)(je,2),Ue=We[0],Ve=We[1],$e=e.useRef([]),Ze=e.useRef(),Ke=e.useState(),Ye=(0,r.Z)(Ke,2),Ge=Ye[0],qe=Ye[1],Qe=e.useState(),Je=(0,r.Z)(Qe,2),it=Je[0],ot=Je[1],at=e.useRef(null),lt=e.useState(!1),ut=(0,r.Z)(lt,2),ct=ut[0],st=ut[1],dt=e.useRef(ct);dt.current=ct;var ft=e.useMemo((function(){return new gn(ye,(function(){Pt.current=void 0,Ot.current()}))}),[ye]),ht=z?S+x:x,gt=e.useRef(-1),yt=!0!==(null==_e?void 0:_e.enableFirefoxRescaling);e.useLayoutEffect((function(){Vn.value&&1!==window.devicePixelRatio&&!yt&&(-1!==gt.current&&Ve(!0),window.clearTimeout(gt.current),gt.current=window.setTimeout((function(){Ve(!1),gt.current=-1}),200))}),[k,Oe,Pe,ze,yt]);var wt=function(t,n){return e.useMemo((function(){return t.map((function(e,t){return v(v({},e),{},{sourceIndex:t,sticky:t=wt.length||n>=A)){var i=r.width/g,o=fn(t,n,g,m,S,ht,Oe,k,Pe,ze,A,N,"sticky"===W,wt,F);return 1!==i&&(o.x*=i,o.y*=i,o.width*=i,o.height*=i),o.x+=r.x,o.y+=r.y,o}}),[g,m,S,ht,Oe,k,Pe,ze,A,N,W,wt,F]),xt=e.useCallback((function(e,t,n,r){var i,o,a=e.getBoundingClientRect(),l=a.width/g,u=(t-a.left)/l,c=(n-a.top)/l,s=Kt(wt,Oe,g,void 0,Pe),f=0;r instanceof MouseEvent&&(f=r.button);var h,p=function(e,t,n){var r,i=0,o=d(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;if(e<=(a.sticky?i:i+(null!=n?n:0))+a.width)return a.sourceIndex;i+=a.width}}catch(l){o.e(l)}finally{o.f()}return-1}(u,s,Pe),v=function(e,t,n,r,i,o,a,l,u,c){var s=r+i;if(n&&e<=i)return-2;if(e<=s)return-1;var d="number"===typeof a?a:a(o-1);if(c&&e>t-d)return o-1;var f=o-(c?1:0),h=e-(null!=u?u:0);if("number"===typeof a){var p=Math.floor((h-s)/a)+l;if(p>=f)return;return p}for(var v=s,g=l;gg||c>m){var M=u>g?-1:u<0?1:0,R=c>m?1:c<0?-1:0,_=!1;if(-1===p&&-1===v){var T=kt(e,wt.length-1,-1);He(void 0!==T),_=t=0?(O=!0,He(void 0!==(P=kt(e,I,v))),h={kind:z&&-2===v?tt:et,location:[I,v],bounds:P,group:null!=(i=wt[I].group)?i:"",isEdge:O,shiftKey:y,ctrlKey:b,metaKey:w,isTouch:D,localEventX:t-P.x,localEventY:n-P.y,button:f,scrollEdge:E}):h={kind:z&&-2===v?tt:et,group:null!=(o=wt[p].group)?o:"",location:[p,v],bounds:P,isEdge:O,shiftKey:y,ctrlKey:b,metaKey:w,isTouch:D,localEventX:t-P.x,localEventY:n-P.y,button:f,scrollEdge:E}}else{var L=kt(e,p,v);He(void 0!==L),h={kind:"cell",location:[p,v],bounds:L,isEdge:void 0!==L&&L.x+L.width-t<5,shiftKey:y,ctrlKey:b,isFillHandle:C&&void 0!==L&&L.x+L.width-t<6&&L.y+L.height-n<6,metaKey:w,isTouch:D,localEventX:t-L.x,localEventY:n-L.y,button:f,scrollEdge:E}}return h}),[wt,Oe,g,Pe,m,z,x,S,A,F,k,ze,W,kt,C]);var Dt=null!=Ge?Ge:[],Ct=(0,r.Z)(Dt,1)[0],St=e.useRef((function(e){})),Et=e.useRef(Ge);Et.current=Ge;var Ft=e.useMemo((function(){var e=document.createElement("canvas"),t=document.createElement("canvas");return e.style.display="none",e.style.opacity="0",e.style.position="fixed",t.style.display="none",t.style.opacity="0",t.style.position="fixed",[e,t]}),[]),At=(0,r.Z)(Ft,2),Mt=At[0],Tt=At[1];e.useLayoutEffect((function(){return document.documentElement.append(Mt),document.documentElement.append(Tt),function(){Mt.remove(),Tt.remove()}}),[Mt,Tt]);var Pt=e.useRef(),zt=e.useCallback((function(){var e,t,n=Ie.current,r=at.current;if(null!==n&&null!==r){var i=Pt.current,o={canvas:n,bufferA:Mt,bufferB:Tt,headerCanvas:r,width:g,height:m,cellXOffset:Oe,cellYOffset:k,translateX:Math.round(Pe),translateY:Math.round(ze),mappedColumns:wt,enableGroups:z,freezeColumns:N,dragAndDropState:ee,theme:ge,headerHeight:x,groupHeaderHeight:S,disabledRows:null!=pe?pe:bt.empty(),rowHeight:F,verticalBorder:be,isResizing:ce,isFocused:B,selection:H,fillHandle:C,lastRowSticky:W,rows:A,drawFocus:X,getCellContent:_,getGroupDetails:null!=ve?ve:function(e){return{name:e}},getRowThemeOverride:T,drawCustomCell:ke,drawHeaderCallback:we,prelightCells:me,highlightRegions:ie,imageLoader:Be,lastBlitData:Ze,damage:Ne.current,hoverValues:$e.current,hoverInfo:Et.current,spriteManager:ft,scrolling:Ue,hyperWrapping:null!=(e=null==_e?void 0:_e.hyperWrapping)&&e,touchMode:ct,enqueue:St.current,renderStrategy:null!=(t=null==_e?void 0:_e.renderStrategy)?t:$n.value?"double-buffer":"single-buffer",getCellRenderer:Te};void 0===o.damage?(Pt.current=o,In(o,i)):In(o,void 0)}}),[Mt,Tt,g,m,Oe,k,Pe,ze,wt,z,N,ee,ge,x,S,pe,F,be,ce,B,H,C,W,A,X,_,ve,T,ke,we,me,ie,Be,ft,Ue,null==_e?void 0:_e.hyperWrapping,null==_e?void 0:_e.renderStrategy,ct,Te]),Ot=e.useRef(zt);e.useLayoutEffect((function(){zt(),Ot.current=zt}),[zt]),e.useLayoutEffect((function(){var e=function(){var e=c(l().mark((function e(){var t;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==(null==(t=null==document?void 0:document.fonts)?void 0:t.ready)){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,document.fonts.ready;case 4:Pt.current=void 0,Ot.current();case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();e()}),[]);var It=e.useCallback((function(e){Ne.current=e,Ot.current(),Ne.current=void 0}),[]),Lt=Kn(It);St.current=Lt;var Bt=e.useCallback((function(e){It(e.map((function(e){return e.cell})))}),[It]);Be.setCallback(It);var Ht,Nt=e.useState(!1),jt=(0,r.Z)(Nt,2),Wt=jt[0],Ut=jt[1],Vt=null!=Ct?Ct:[],$t=(0,r.Z)(Vt,2),Xt=$t[0],Yt=$t[1],Gt=void 0!==Xt&&-1===Yt,qt=void 0!==Xt&&-2===Yt,Qt=!1,Jt=!1;if(void 0!==Xt&&void 0!==Yt&&Yt>-1){var en=_([Xt,Yt]);Qt=en.kind===rt.NewRow||en.kind===rt.Marker&&"number"!==en.markerKind,Jt=en.kind===Xe.Boolean&&mt(en),Ht=en.cursor}var tn=se?"grabbing":null!=it&&it||ce?"col-resize":Wt||O?"crosshair":void 0!==Ht?Ht:Gt||Qt||Jt||qt?"pointer":"default",nn=e.useMemo((function(){return{contain:"strict",display:"block",cursor:tn}}),[tn]),rn=e.useRef("default"),on=null==ue?void 0:ue.current;null!==on&&void 0!==on&&rn.current!==nn.cursor&&(on.style.cursor=rn.current=nn.cursor);var an=e.useCallback((function(e,t,n,i){if(void 0!==ve){var o=ve(e);if(void 0!==o.actions){var a,l=d(Sn(t,o.actions).entries());try{for(l.s();!(a=l.n()).done;){var u=(0,r.Z)(a.value,2),c=u[0],s=u[1];if(En(s,n+t.x,i+s.y))return o.actions[c]}}catch(f){l.e(f)}finally{l.f()}}}}),[ve]),ln=e.useCallback((function(e,t,n,r){var i=b[t];if(!se&&!ce&&!0===i.hasMenu&&(null==it||!it)){var o=kt(e,t,-1);He(void 0!==o);var a=An(o.x,o.y,o.width,o.height);if(n>a.x&&na.y&&ro.left+n.clientWidth)return;if(i>o.top+n.clientHeight)return}var a=xt(t,r,i,e);if(cn.current=a.location,a.isTouch&&(un.current=Date.now()),dt.current!==a.isTouch&&st(a.isTouch),a.kind!==et||void 0===ln(t,a.location[0],r,i))a.kind===tt&&void 0!==an(a.group,a.bounds,a.localEventX,a.localEventY)||(null==Y||Y(a),a.isTouch||!0===fe||fe===a.kind||e.preventDefault())}}),[ue,fe,xt,an,ln,Y]);_t("touchstart",sn,window,!1),_t("mousedown",sn,window,!1);var dn=e.useCallback((function(e){var t,n,i=Ie.current;if(void 0!==G&&null!==i){var o,a,l=null==ue?void 0:ue.current,u=e.target!==i&&e.target!==l;e instanceof MouseEvent?(o=e.clientX,a=e.clientY):(o=e.changedTouches[0].clientX,a=e.changedTouches[0].clientY);var c=xt(i,o,a,e);if(c.isTouch&&0!==un.current&&Date.now()-un.current>500&&(c=v(v({},c),{},{isLongTouch:!0})),dt.current!==c.isTouch&&st(c.isTouch),!u&&e.cancelable&&e.preventDefault(),c.kind===et&&ln(i,c.location[0],o,a)){var s=(0,r.Z)(c.location,1)[0],d=ln(i,s,o,a);if(void 0!==d)return void(0===c.button&&(null==(t=cn.current)?void 0:t[0])===s&&-1===(null==(n=cn.current)?void 0:n[1])?null==P||P(s,d):G(c,!0))}else if(c.kind===tt){var f=an(c.group,c.bounds,c.localEventX,c.localEventY);if(void 0!==f)return void(0===c.button&&f.onClick(c))}G(c,u)}}),[G,ue,xt,ln,P,an]);_t("mouseup",dn,window,!1),_t("touchend",dn,window,!1),_t("contextmenu",e.useCallback((function(e){var t=Ie.current;if(null!==t&&void 0!==j){var n=xt(t,e.clientX,e.clientY,e);j(n,(function(){e.cancelable&&e.preventDefault()}))}}),[xt,j]),null!=(a=null==ue?void 0:ue.current)?a:null,!1);var hn=e.useCallback((function(e){Ne.current=e.map((function(e){return e.item})),$e.current=e,Ot.current(),Ne.current=void 0}),[]),pn=e.useMemo((function(){return new jn(hn)}),[hn]),vn=e.useRef(pn);vn.current=pn,e.useLayoutEffect((function(){var e=vn.current;if(void 0===Ct||Ct[1]<0)e.setHovered(Ct);else{var t=_(Ct),n=Te(t);e.setHovered(void 0===n&&t.kind===Xe.Custom||!0===(null==n?void 0:n.needsHover)?Ct:void 0)}}),[_,Te,Ct]);var mn=e.useRef();_t("mousemove",e.useCallback((function(e){var t,n=Ie.current;if(null!==n){var i,o,a=xt(n,e.clientX,e.clientY,e);if(i=a,o=mn.current,i===o||(null==i?void 0:i.kind)===(null==o?void 0:o.kind)&&(null==i?void 0:i.location[0])===(null==o?void 0:o.location[0])&&(null==i?void 0:i.location[1])===(null==o?void 0:o.location[1])){if("cell"===a.kind||a.kind===et||a.kind===tt){var l=[a.location,[a.localEventX,a.localEventY]];if(qe(l),Et.current=l,"cell"===a.kind){var u=_(a.location);u.kind!==Xe.Custom&&!0!==(null==(t=Te(u))?void 0:t.needsHoverPosition)||It([a.location])}else a.kind===tt&&It([a.location])}}else null==J||J(a),qe(a.kind===nt?void 0:[a.location,[a.localEventX,a.localEventY]]),mn.current=a;if(ot(a.kind===et&&a.isEdge&&!0===he),C&&void 0!==H.current){var c=(0,r.Z)(H.current.cell,2),s=c[0],d=c[1],f=kt(n,s,d),h=e.clientX,p=e.clientY;He(void 0!==f),Ut(h>=f.x+f.width-6&&h<=f.x+f.width&&p>=f.y+f.height-6&&p<=f.y+f.height)}else Ut(!1);null==q||q(e),Q(a)}}),[xt,he,C,H,q,Q,J,_,Te,It,kt]),window,!0);var yn=e.useCallback((function(e){var t,n=Ie.current;null!==n&&(void 0!==H.current&&(t=kt(n,H.current.cell[0],H.current.cell[1])),null==ne||ne({bounds:t,stopPropagation:function(){return e.stopPropagation()},preventDefault:function(){return e.preventDefault()},cancel:function(){},ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,altKey:e.altKey,key:e.key,keyCode:e.keyCode,rawEvent:e}))}),[ne,H,kt]),bn=e.useCallback((function(e){var t,n=Ie.current;null!==n&&(void 0!==H.current&&(t=kt(n,H.current.cell[0],H.current.cell[1])),null==re||re({bounds:t,stopPropagation:function(){return e.stopPropagation()},preventDefault:function(){return e.preventDefault()},cancel:function(){},ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,altKey:e.altKey,key:e.key,keyCode:e.keyCode,rawEvent:e}))}),[re,H,kt]),wn=e.useCallback((function(e){Ie.current=e,void 0!==oe&&(oe.current=e)}),[oe]);_t("dragstart",e.useCallback((function(e){var t=Ie.current;if(null===t||!1===fe||ce)e.preventDefault();else{var n,i,o=xt(t,e.clientX,e.clientY);if(!0===fe||o.kind===fe){var a,l,u,c=!1;if(null==ae||ae(v(v({},o),{},{setData:function(e,t){n=e,i=t},setDragImage:function(e,t,n){a=e,l=t,u=n},preventDefault:function(){return c=!0},defaultPrevented:function(){return c}})),c||void 0===n||void 0===i||null===e.dataTransfer)e.preventDefault();else if(e.dataTransfer.setData(n,i),e.dataTransfer.effectAllowed="copyLink",void 0!==a&&void 0!==l&&void 0!==u)e.dataTransfer.setDragImage(a,l,u);else{var s=(0,r.Z)(o.location,2),d=s[0],f=s[1];if(void 0!==f){var h=document.createElement("canvas"),p=kt(t,d,f);He(void 0!==p),h.width=p.width,h.height=p.height;var g=h.getContext("2d");null!==g&&(g.textBaseline="middle",-1===f?(g.font="".concat(ge.headerFontStyle," ").concat(ge.fontFamily),g.fillStyle=ge.bgHeader,g.fillRect(0,0,h.width,h.height),Mn(g,0,0,p.width,p.height,wt[d],!1,ge,!1,!1,0,ft,we,!1)):(g.font="".concat(ge.baseFontStyle," ").concat(ge.fontFamily),g.fillStyle=ge.bgCell,g.fillRect(0,0,h.width,h.height),Dn(g,f,_([d,f]),0,0,0,p.width,p.height,!1,ge,ke,Be,ft,1,void 0,!1,0,void 0,void 0,Te))),h.style.left="-100%",h.style.position="absolute",document.body.append(h),e.dataTransfer.setDragImage(h,p.width/2,p.height/2),window.setTimeout((function(){h.remove()}),0)}}}else e.preventDefault()}}),[fe,ce,xt,ae,kt,ge,wt,ft,we,_,ke,Be,Te]),null!=(u=null==ue?void 0:ue.current)?u:null,!1,!1);var kn=e.useRef();_t("dragover",e.useCallback((function(e){var t,n=Ie.current;if(void 0!==Ce&&e.preventDefault(),null!==n&&void 0!==De){var i=xt(n,e.clientX,e.clientY),o=(0,r.Z)(i.location,2),a=o[0],l=o[1],u=a-(te?0:1),c=null!=(t=kn.current)?t:[],s=(0,r.Z)(c,2),d=s[0],f=s[1];d===u&&f===l||(kn.current=[u,l],De([u,l],e.dataTransfer))}}),[te,xt,De,Ce]),null!=(s=null==ue?void 0:ue.current)?s:null,!1,!1),_t("dragend",e.useCallback((function(){kn.current=void 0,null==le||le()}),[le]),null!=(f=null==ue?void 0:ue.current)?f:null,!1,!1),_t("drop",e.useCallback((function(e){var t=Ie.current;if(null!==t&&void 0!==Ce){e.preventDefault();var n=xt(t,e.clientX,e.clientY),i=(0,r.Z)(n.location,2),o=i[0],a=i[1];Ce([o-(te?0:1),a],e.dataTransfer)}}),[te,xt,Ce]),null!=(h=null==ue?void 0:ue.current)?h:null,!1,!1),_t("dragleave",e.useCallback((function(){null==Se||Se()}),[Se]),null!=(p=null==ue?void 0:ue.current)?p:null,!1,!1);var xn=e.useRef(H);xn.current=H;var Cn=e.useRef(null),Fn=e.useCallback((function(e){var t;null!==Ie.current&&Ie.current.contains(document.activeElement)&&(null===e&&void 0!==xn.current.current?null==(t=null==oe?void 0:oe.current)||t.focus({preventScroll:!0}):null!==e&&e.focus({preventScroll:!0}),Cn.current=e)}),[oe]);e.useImperativeHandle(n,(function(){return{focus:function(){var e,t=Cn.current;null!==t&&document.contains(t)?t.focus({preventScroll:!0}):null==(e=null==oe?void 0:oe.current)||e.focus({preventScroll:!0})},getBounds:function(e,t){if(void 0!==oe&&null!==oe.current)return kt(oe.current,e,null!=t?t:-1)},damage:Bt}}),[oe,Bt,kt]);var Rn=e.useRef(),_n=function(t,n,i){var o=e.useState(t),a=(0,r.Z)(o,2),l=a[0],u=a[1],c=e.useRef(!0);e.useEffect((function(){return function(){c.current=!1}}),[]);var s=e.useRef(R((function(e){c.current&&u(e)}),i));return e.useLayoutEffect((function(){c.current&&s.current((function(){return t()}))}),n),l}((function(){var t,n,i,o;if(g<50)return null;var a=Kt(wt,Oe,g,ee,Pe),l=te?0:-1;te||0!==(null==(t=a[0])?void 0:t.sourceIndex)||(a=a.slice(1));var u=null!=(i=null==(n=H.current)?void 0:n.cell)?i:[],c=(0,r.Z)(u,2),s=c[0],d=c[1],f=null==(o=H.current)?void 0:o.range,h=a.map((function(e){return e.sourceIndex})),p=M(k,Math.min(A,k+y));return void 0===s||void 0===d||h.includes(s)&&p.includes(d)||Fn(null),e.createElement("table",{key:"access-tree",role:"grid","aria-rowcount":A+1,"aria-multiselectable":"true","aria-colcount":wt.length+l},e.createElement("thead",{role:"rowgroup"},e.createElement("tr",{role:"row","aria-rowindex":1},a.map((function(t){return e.createElement("th",{role:"columnheader","aria-selected":H.columns.hasIndex(t.sourceIndex),"aria-colindex":t.sourceIndex+1+l,tabIndex:-1,onFocus:function(e){if(e.target!==Cn.current)return null==xe?void 0:xe([t.sourceIndex,-1])},key:t.sourceIndex},t.title)})))),e.createElement("tbody",{role:"rowgroup"},p.map((function(t){return e.createElement("tr",{role:"row","aria-selected":H.rows.hasIndex(t),key:t,"aria-rowindex":t+2},a.map((function(n){var r=n.sourceIndex,i="".concat(r,",").concat(t),o=s===r&&d===t,a=void 0!==f&&r>=f.x&&r=f.y&&tN?1:E(-Pe/100,0,1):0,zn=Z?E(-(32*-k+ze)/100,0,1):0,On=e.useMemo((function(){if(!Pn&&!zn)return null;var t={position:"absolute",top:0,left:Tn,width:g-Tn,height:m,opacity:Pn,pointerEvents:"none",transition:Ae?void 0:"opacity 0.2s",boxShadow:"inset 13px 0 10px -13px rgba(0, 0, 0, 0.2)"},n={position:"absolute",top:ht,left:0,width:g,height:m,opacity:zn,pointerEvents:"none",transition:Re?void 0:"opacity 0.2s",boxShadow:"inset 0 13px 10px -13px rgba(0, 0, 0, 0.2)"};return e.createElement(e.Fragment,null,Pn>0&&e.createElement("div",{id:"shadow-x",style:t}),zn>0&&e.createElement("div",{id:"shadow-y",style:n}))}),[Pn,zn,Tn,g,Ae,ht,m,Re]),Ln=e.useMemo((function(){return{position:"absolute",top:0,left:0}}),[]);return e.createElement(e.Fragment,null,e.createElement("canvas",{"data-testid":"data-grid-canvas",tabIndex:0,onKeyDown:yn,onKeyUp:bn,onFocus:I,onBlur:L,ref:wn,style:nn},_n),e.createElement("canvas",{ref:at,style:Ln}),On)})));function Yn(e,t,n,r){var i;return E(Math.round(t-(null!=(i=e.growOffset)?i:0)),Math.ceil(n),Math.floor(r))}var Gn=function(t){var n,i=e.useState(),o=(0,r.Z)(i,2),a=o[0],l=o[1],u=e.useState(),c=(0,r.Z)(u,2),s=c[0],f=c[1],h=e.useState(),p=(0,r.Z)(h,2),v=p[0],g=p[1],m=e.useState(),y=(0,r.Z)(m,2),b=y[0],w=y[1],k=e.useState(!1),x=(0,r.Z)(k,2),D=x[0],C=x[1],S=e.useState(),E=(0,r.Z)(S,2),F=E[0],A=E[1],M=e.useState(),R=(0,r.Z)(M,2),_=R[0],T=R[1],P=e.useState(),z=(0,r.Z)(P,2),O=z[0],I=z[1],L=e.useState(!1),B=(0,r.Z)(L,2),H=B[0],N=B[1],j=e.useState(),W=(0,r.Z)(j,2),U=W[0],V=W[1],$=t.onHeaderMenuClick,Z=t.getCellContent,K=t.onColumnMoved,X=t.onColumnResize,Y=t.onColumnResizeStart,G=t.onColumnResizeEnd,q=t.gridRef,Q=t.maxColumnWidth,J=t.minColumnWidth,ee=t.onRowMoved,te=t.lockColumns,ne=t.onMouseDown,re=t.onMouseUp,ie=t.onItemHovered,oe=t.onDragStart,ae=void 0!==(null!=(n=null!=X?X:G)?n:Y),le=t.columns,ue=t.selection.columns,ce=e.useCallback((function(e){var t=(0,r.Z)(e.location,2),n=t[0],i=t[1];void 0!==v&&b!==n&&n>=te?(C(!0),w(n)):void 0!==_&&void 0!==i?(N(!0),I(Math.max(0,i))):null==ie||ie(e)}),[v,_,b,ie,te]),se=void 0!==K,de=e.useCallback((function(e){var t,n;if(0===e.button){var i=(0,r.Z)(e.location,2),o=i[0],a=i[1];if("out-of-bounds"===e.kind&&e.isEdge&&ae){var u=null==(t=null==q?void 0:q.current)?void 0:t.getBounds(le.length-1,-1);void 0!==u&&(l(u.x),f(le.length-1))}else"header"===e.kind&&o>=te?e.isEdge&&ae?(l(e.bounds.x),f(o),null==Y||Y(le[o],e.bounds.width,o,e.bounds.width+(null!=(n=le[o].growOffset)?n:0))):"header"===e.kind&&se&&(A(e.bounds.x),g(o)):"cell"===e.kind&&te>0&&0===o&&void 0!==a&&void 0!==ee&&(V(e.bounds.y),T(a))}null==ne||ne(e)}),[ne,ae,te,ee,q,le,se,Y]),fe=e.useCallback((function(e,t){D||H||null==$||$(e,t)}),[D,H,$]),he=e.useRef(-1),pe=e.useCallback((function(){he.current=-1,T(void 0),I(void 0),V(void 0),N(!1),g(void 0),w(void 0),A(void 0),C(!1),f(void 0),l(void 0)}),[]),ve=e.useCallback((function(e,t){var n,r,i;if(0===e.button){if(void 0!==s){if(!0===(null==ue?void 0:ue.hasIndex(s))){var o,a=d(ue);try{for(a.s();!(o=a.n()).done;){var l=o.value;if(l!==s){var u=le[l],c=Yn(u,he.current,J,Q);null==X||X(u,c,l,c+(null!=(n=u.growOffset)?n:0))}}}catch(w){a.e(w)}finally{a.f()}}var f=Yn(le[s],he.current,J,Q);null==G||G(le[s],f,s,f+(null!=(r=le[s].growOffset)?r:0));var h,p=d(ue);try{for(p.s();!(h=p.n()).done;){var g=h.value;if(g!==s){var m=le[g],y=Yn(m,he.current,J,Q);null==G||G(m,y,g,y+(null!=(i=m.growOffset)?i:0))}}}catch(w){p.e(w)}finally{p.f()}}pe(),void 0!==v&&void 0!==b&&(null==K||K(v,b)),void 0!==_&&void 0!==O&&(null==ee||ee(_,O))}null==re||re(e,t)}),[re,s,v,b,_,O,ue,G,le,J,Q,X,K,ee,pe]),ge=e.useMemo((function(){if(void 0!==v&&void 0!==b&&v!==b)return{src:v,dest:b}}),[v,b]),me=e.useCallback((function(e){var t,n;if(void 0!==v&&void 0!==F)Math.abs(e.clientX-F)>20&&C(!0);else if(void 0!==_&&void 0!==U){Math.abs(e.clientY-U)>20&&N(!0)}else if(void 0!==s&&void 0!==a){var r=le[s],i=e.clientX-a,o=Yn(r,i,J,Q);if(null==X||X(r,o,s,o+(null!=(t=r.growOffset)?t:0)),he.current=i,(null==ue?void 0:ue.first())===s){var l,u=d(ue);try{for(u.s();!(l=u.n()).done;){var c=l.value;if(c!==s){var f=le[c],h=Yn(f,he.current,J,Q);null==X||X(f,h,c,h+(null!=(n=f.growOffset)?n:0))}}}catch(p){u.e(p)}finally{u.f()}}}}),[v,F,_,U,s,a,le,J,Q,X,ue]),ye=e.useCallback((function(e){if(void 0===_||void 0===O)return Z(e);var t=(0,r.Z)(e,2),n=t[0],i=t[1];return i===O?i=_:(i>O&&(i-=1),i>=_&&(i+=1)),Z([n,i])}),[_,O,Z]),be=e.useCallback((function(e){null==oe||oe(e),e.defaultPrevented()||pe()}),[pe,oe]);return e.createElement(Xn,{accessibilityHeight:t.accessibilityHeight,canvasRef:t.canvasRef,cellXOffset:t.cellXOffset,cellYOffset:t.cellYOffset,columns:t.columns,disabledRows:t.disabledRows,drawCustomCell:t.drawCustomCell,drawFocusRing:t.drawFocusRing,drawHeader:t.drawHeader,enableGroups:t.enableGroups,eventTargetRef:t.eventTargetRef,experimental:t.experimental,fillHandle:t.fillHandle,firstColAccessible:t.firstColAccessible,fixedShadowX:t.fixedShadowX,fixedShadowY:t.fixedShadowY,freezeColumns:t.freezeColumns,getCellRenderer:t.getCellRenderer,getGroupDetails:t.getGroupDetails,getRowThemeOverride:t.getRowThemeOverride,groupHeaderHeight:t.groupHeaderHeight,headerHeight:t.headerHeight,headerIcons:t.headerIcons,height:t.height,highlightRegions:t.highlightRegions,imageWindowLoader:t.imageWindowLoader,isDraggable:t.isDraggable,isFilling:t.isFilling,isFocused:t.isFocused,onCanvasBlur:t.onCanvasBlur,onCanvasFocused:t.onCanvasFocused,onCellFocused:t.onCellFocused,onContextMenu:t.onContextMenu,onDragEnd:t.onDragEnd,onDragLeave:t.onDragLeave,onDragOverCell:t.onDragOverCell,onDrop:t.onDrop,onKeyDown:t.onKeyDown,onKeyUp:t.onKeyUp,onMouseMove:t.onMouseMove,prelightCells:t.prelightCells,rowHeight:t.rowHeight,rows:t.rows,selection:t.selection,smoothScrollX:t.smoothScrollX,smoothScrollY:t.smoothScrollY,theme:t.theme,trailingRowType:t.trailingRowType,translateX:t.translateX,translateY:t.translateY,verticalBorder:t.verticalBorder,width:t.width,getCellContent:ye,isResizing:void 0!==s,onHeaderMenuClick:fe,isDragging:D,onItemHovered:ce,onDragStart:be,onMouseDown:de,allowResize:ae,onMouseUp:ve,dragAndDropState:ge,onMouseMoveRaw:me,ref:q})};var qn=(0,S.d)("div")({name:"ScrollRegionStyle",class:"s1jz82f8",vars:{"s1jz82f8-0":[function(e){return e.isSafari?"scroll":"auto"}]}});function Qn(e){e.stopPropagation()}var Jn=function(t){var n,i,o,a,l=t.children,u=t.clientHeight,c=t.scrollHeight,s=t.scrollWidth,f=t.update,h=t.draggable,p=t.className,g=t.preventDiagonalScrolling,m=void 0!==g&&g,y=t.paddingBottom,b=void 0===y?0:y,w=t.paddingRight,k=void 0===w?0:w,x=t.rightElement,D=t.rightElementProps,C=t.scrollRef,S=t.scrollToEnd,E=t.initialSize,F=t.minimap,A=[],M=null!=(n=null==D?void 0:D.sticky)&&n,R=null!=(i=null==D?void 0:D.fill)&&i,_=e.useRef(0),T=e.useRef(0),P=e.useRef(null),z=window.devicePixelRatio;e.useEffect((function(){var e=P.current;null!==e&&!0===S&&(e.scrollLeft=e.scrollWidth-e.clientWidth)}),[S]);var O=e.useRef({scrollLeft:0,scrollTop:0,lockDirection:void 0}),I=e.useRef(null),L=function(t){var n=e.useState(!1),i=(0,r.Z)(n,2),o=i[0],a=i[1],l=e.useRef(0);return _t("touchstart",e.useCallback((function(){window.clearTimeout(l.current),a(!0)}),[]),window,!0,!1),_t("touchend",e.useCallback((function(e){0===e.touches.length&&(l.current=window.setTimeout((function(){return a(!1)}),t))}),[t]),window,!0,!1),o}(200),B=e.useState(!0),H=(0,r.Z)(B,2),N=H[0],j=H[1],W=e.useRef(0);e.useEffect((function(){if(N&&!L&&void 0!==O.current.lockDirection){var e=P.current;if(null!==e){var t=(0,r.Z)(O.current.lockDirection,2),n=t[0],i=t[1];void 0!==n?e.scrollLeft=n:void 0!==i&&(e.scrollTop=i),O.current.lockDirection=void 0}}}),[L,N]);var U=e.useCallback((function(){var e,t,n,r,i=P.current;if(null!==i){var o=i.scrollTop,a=i.scrollLeft,l=O.current.scrollTop,u=O.current.scrollLeft,s=a-u,d=o-l;L&&0!==s&&0!==d&&(Math.abs(s)>3||Math.abs(d)>3)&&m&&void 0===O.current.lockDirection&&(O.current.lockDirection=Math.abs(s)0&&(Math.abs(v)>2e3||0===p||p===g)&&c>i.scrollHeight+5){var y=p/g,w=(c-i.clientHeight)*y;_.current=w-p}void 0!==h&&(window.clearTimeout(W.current),j(!1),W.current=window.setTimeout((function(){return j(!0)}),200)),f({x:a,y:p+_.current,width:i.clientWidth-k,height:i.clientHeight-b,paddingRight:null!=(r=null==(n=I.current)?void 0:n.clientWidth)?r:0})}}),[b,k,c,f,m,L]),V=e.useRef(U);V.current=U;var $=e.useRef(),Z=e.useRef(!1);e.useEffect((function(){Z.current?U():Z.current=!0}),[U,b,k]);var K=e.useCallback((function(e){P.current=e,void 0!==C&&(C.current=e)}),[C]),X=0,Y=0;for(A.push(e.createElement("div",{key:X++,style:{width:s,height:0}}));Y=w+b.width)i+=b.width,s++,c++;else if(r.x>w)i+=b.width,_?o+=w-r.x:s++,c++;else{if(!(r.x+r.width>w))break;i+=b.width,c++}}}catch(R){m.e(R)}finally{m.f()}var k=0,x=0,D=0;if("number"===typeof u)P?k=(x=Math.floor(r.y/u))*u-r.y:x=Math.ceil(r.y/u),D=Math.ceil(r.height/u)+x,k<0&&D++;else for(var C=0,S=0;S=C+E)C+=E,x++,D++;else if(r.y>F)C+=E,P?k+=F-r.y:x++,D++;else{if(!(r.y+r.height>E/2+C))break;C+=E,D++}}var A={x:s,y:x,width:c-s,height:D-x},M=j.current;void 0!==M&&M.y===A.y&&M.x===A.x&&M.height===A.height&&M.width===A.width&&W.current===o&&U.current===k&&r.width===(null==(e=V.current)?void 0:e[0])&&r.height===(null==(t=V.current)?void 0:t[1])||(null==y||y({x:s,y:x,width:c-s,height:D-x},r.width,r.height,null!=(n=r.paddingRight)?n:0,o,k),j.current=A,W.current=o,U.current=k,V.current=[r.width,r.height])}}),[a,u,l,y,h,_,P]),G=e.useCallback((function(e){X.current=e,Y()}),[Y]);e.useEffect((function(){Y()}),[Y]);var q=null!=(n=null==w?void 0:w.current)?n:void 0,Q=E($/Z,2/3,1.5),J=200,ee=Q>1?J:Math.ceil(J*Q),te=Q>1?Math.ceil(J/Q):J,ne=ee/$,re=te/Z,ie=Math.min(H*Math.max(ne,.01),ee),oe=Math.min(N*Math.max(re,.01),te),ae=(null!=(i=null==q?void 0:q.scrollLeft)?i:0)/($-H)*(ee-ie),le=(null!=(o=null==q?void 0:q.scrollTop)?o:0)/(Z-N)*(te-oe),ue=e.useMemo((function(){if(A&&0!==ie&&0!==oe){var t=function(e){if(void 0!==q){var t=e.currentTarget.getBoundingClientRect(),n=e.clientX-t.x-ie/2,r=e.clientY-t.y-oe/2,i=($-q.clientWidth)*(n/(ee-ie)),o=(Z-q.clientHeight)*(r/(te-oe));q.scrollTo({left:i,top:o,behavior:"mousemove"===e.type?"auto":"smooth"})}};return e.createElement(er,{style:{width:ee,height:te},"data-testid":"minimap-container",onMouseMove:function(e){1===e.buttons&&t(e)},onClick:t},e.createElement("div",{className:"header"}),e.createElement("div",{className:"locationMarker",onDragStart:function(e){return e.preventDefault()},style:{left:ae,top:le,width:ie,height:oe,borderRadius:Math.min(ie,.2*oe,9)}}))}}),[te,Z,ae,q,A,le,oe,ie,ee,$]);return e.createElement(Jn,{scrollRef:w,minimap:ue,className:m,preventDiagonalScrolling:k,draggable:!0===z||"string"===typeof z,scrollWidth:$+(null!=I?I:0),scrollHeight:Z+(null!=L?L:0),clientHeight:N,rightElement:x,paddingBottom:L,paddingRight:I,rightElementProps:D,update:G,initialSize:M,scrollToEnd:b},e.createElement(Gn,{eventTargetRef:w,width:H,height:N,accessibilityHeight:t.accessibilityHeight,canvasRef:t.canvasRef,cellXOffset:t.cellXOffset,cellYOffset:t.cellYOffset,columns:t.columns,disabledRows:t.disabledRows,enableGroups:t.enableGroups,fillHandle:t.fillHandle,firstColAccessible:t.firstColAccessible,fixedShadowX:t.fixedShadowX,fixedShadowY:t.fixedShadowY,freezeColumns:t.freezeColumns,getCellContent:t.getCellContent,getCellRenderer:t.getCellRenderer,getGroupDetails:t.getGroupDetails,getRowThemeOverride:t.getRowThemeOverride,groupHeaderHeight:t.groupHeaderHeight,headerHeight:t.headerHeight,highlightRegions:t.highlightRegions,imageWindowLoader:t.imageWindowLoader,isFilling:t.isFilling,isFocused:t.isFocused,lockColumns:t.lockColumns,maxColumnWidth:t.maxColumnWidth,minColumnWidth:t.minColumnWidth,onHeaderMenuClick:t.onHeaderMenuClick,onMouseMove:t.onMouseMove,prelightCells:t.prelightCells,rowHeight:t.rowHeight,rows:t.rows,selection:t.selection,theme:t.theme,trailingRowType:t.trailingRowType,translateX:t.translateX,translateY:t.translateY,verticalBorder:t.verticalBorder,drawCustomCell:t.drawCustomCell,drawFocusRing:t.drawFocusRing,drawHeader:t.drawHeader,experimental:t.experimental,gridRef:t.gridRef,headerIcons:t.headerIcons,isDraggable:t.isDraggable,onCanvasBlur:t.onCanvasBlur,onCanvasFocused:t.onCanvasFocused,onCellFocused:t.onCellFocused,onColumnMoved:t.onColumnMoved,onColumnResize:t.onColumnResize,onColumnResizeEnd:t.onColumnResizeEnd,onColumnResizeStart:t.onColumnResizeStart,onContextMenu:t.onContextMenu,onDragEnd:t.onDragEnd,onDragLeave:t.onDragLeave,onDragOverCell:t.onDragOverCell,onDragStart:t.onDragStart,onDrop:t.onDrop,onItemHovered:t.onItemHovered,onKeyDown:t.onKeyDown,onKeyUp:t.onKeyUp,onMouseDown:t.onMouseDown,onMouseUp:t.onMouseUp,onRowMoved:t.onRowMoved,smoothScrollX:t.smoothScrollX,smoothScrollY:t.smoothScrollY}))},nr=(0,S.d)("div")({name:"SearchWrapper",class:"sxep88s",vars:{"sxep88s-0":[function(e){return e.showSearch?0:400},"px"]}}),rr=e.createElement("svg",{className:"button-icon",viewBox:"0 0 512 512"},e.createElement("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"48",d:"M112 244l144-144 144 144M256 120v292"})),ir=e.createElement("svg",{className:"button-icon",viewBox:"0 0 512 512"},e.createElement("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"48",d:"M112 268l144 144 144-144M256 392V100"})),or=e.createElement("svg",{className:"button-icon",viewBox:"0 0 512 512"},e.createElement("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M368 368L144 144M368 144L144 368"})),ar=function(t){var n=t.canvasRef,i=t.cellYOffset,o=t.rows,a=t.columns,u=t.searchInputRef,s=t.getCellsForSelection,f=t.onSearchResultsChanged,h=t.showSearch,p=void 0!==h&&h,g=t.onSearchClose,m=e.useState((function(){return"search-box-"+Math.round(1e3*Math.random())})),y=(0,r.Z)(m,1)[0],b=e.useState(""),w=(0,r.Z)(b,2),k=w[0],x=w[1],D=e.useState(),C=(0,r.Z)(D,2),S=C[0],E=C[1],F=e.useRef(S);F.current=S;var A=e.useRef(new AbortController),M=e.useRef(),R=e.useState([]),_=(0,r.Z)(R,2),T=_[0],P=_[1],z=e.useCallback((function(){void 0!==M.current&&(window.cancelAnimationFrame(M.current),M.current=void 0,A.current.abort())}),[]),O=e.useRef(i);O.current=i;var I=e.useCallback((function(e){var t=new RegExp(e.replace(/([$()*+.?[\\\]^{|}-])/g,"\\$1"),"i"),n=O.current,i=Math.min(10,o),u=0;E(void 0),P([]);var h=[],p=function(){var e=c(l().mark((function e(){var c,v,g,m,y,b,w,k,x,D,C,S,R,_,T,z,O,I,L,B,H,N;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==s){e.next=2;break}return e.abrupt("return");case 2:if(g=performance.now(),m=o-u,"function"!==typeof(y=s({x:0,y:n,width:a.length,height:Math.min(i,m,o-n)},A.current.signal))){e.next=9;break}return e.next=8,y();case 8:y=e.sent;case 9:b=!1,w=d(y.entries()),e.prev=11,w.s();case 13:if((k=w.n()).done){e.next=47;break}x=(0,r.Z)(k.value,2),D=x[0],C=x[1],S=d(C.entries()),e.prev=16,S.s();case 18:if((R=S.n()).done){e.next=37;break}_=(0,r.Z)(R.value,2),T=_[0],z=_[1],O=void 0,e.t0=z.kind,e.next=e.t0===Xe.Text||e.t0===Xe.Number?24:e.t0===Xe.Uri||e.t0===Xe.Markdown?26:e.t0===Xe.Boolean?28:e.t0===Xe.Image||e.t0===Xe.Bubble?30:e.t0===Xe.Custom?32:34;break;case 24:return O=z.displayData,e.abrupt("break",34);case 26:return O=z.data,e.abrupt("break",34);case 28:return O="boolean"===typeof z.data?z.data.toString():void 0,e.abrupt("break",34);case 30:return O=z.data.join("\ud83d\udc33"),e.abrupt("break",34);case 32:return O=z.copyData,e.abrupt("break",34);case 34:void 0!==O&&t.test(O)&&(h.push([T,D+n]),b=!0);case 35:e.next=18;break;case 37:e.next=42;break;case 39:e.prev=39,e.t1=e.catch(16),S.e(e.t1);case 42:return e.prev=42,S.f(),e.finish(42);case 45:e.next=13;break;case 47:e.next=52;break;case 49:e.prev=49,e.t2=e.catch(11),w.e(e.t2);case 52:return e.prev=52,w.f(),e.finish(52);case 55:I=performance.now(),b&&P([].concat(h)),He((u+=y.length)<=o),L=null!=(v=null==(c=F.current)?void 0:c.selectedIndex)?v:-1,E({results:h.length,rowsSearched:u,selectedIndex:L}),null==f||f(h,L),n+i>=o?n=0:n+=i,B=I-g,H=Math.max(B,1),N=10/H,i=Math.ceil(i*N),u=1e3?"over 1000":"".concat(S.results," result").concat(1!==S.results?"s":""),S.selectedIndex>=0&&(i="".concat(S.selectedIndex+1," of ").concat(i)));var a=function(e){e.stopPropagation()},l=Math.floor((null!=(t=null==S?void 0:S.rowsSearched)?t:0)/o*100),c={width:"".concat(l,"%")};return e.createElement(nr,{showSearch:p,onMouseDown:a,onMouseMove:a,onMouseUp:a,onClick:a},e.createElement("div",{className:"search-bar-inner"},e.createElement("input",{id:y,"aria-hidden":!p,"data-testid":"search-input",ref:u,onChange:B,value:k,tabIndex:p?void 0:-1,onKeyDownCapture:j}),e.createElement("button",{"aria-label":"Previous Result","aria-hidden":!p,tabIndex:p?void 0:-1,onClick:N,disabled:0===(null!=(n=null==S?void 0:S.results)?n:0)},rr),e.createElement("button",{"aria-label":"Next Result","aria-hidden":!p,tabIndex:p?void 0:-1,onClick:H,disabled:0===(null!=(r=null==S?void 0:S.results)?r:0)},ir),void 0!==g&&e.createElement("button",{"aria-label":"Close Search","aria-hidden":!p,"data-testid":"search-close-button",tabIndex:p?void 0:-1,onClick:L},or)),void 0!==S?e.createElement(e.Fragment,null,e.createElement("div",{className:"search-status"},e.createElement("div",{"data-testid":"search-result-area"},i)),e.createElement("div",{className:"search-progress",style:c})):e.createElement("div",{className:"search-status"},e.createElement("label",{htmlFor:y},"Type to search")))}),[L,H,N,B,g,j,o,S,k,p,y,u]);return e.createElement(e.Fragment,null,e.createElement(tr,{prelightCells:T,accessibilityHeight:t.accessibilityHeight,canvasRef:t.canvasRef,cellXOffset:t.cellXOffset,cellYOffset:t.cellYOffset,className:t.className,clientSize:t.clientSize,columns:t.columns,disabledRows:t.disabledRows,enableGroups:t.enableGroups,fillHandle:t.fillHandle,firstColAccessible:t.firstColAccessible,fixedShadowX:t.fixedShadowX,fixedShadowY:t.fixedShadowY,freezeColumns:t.freezeColumns,getCellContent:t.getCellContent,getCellRenderer:t.getCellRenderer,getGroupDetails:t.getGroupDetails,getRowThemeOverride:t.getRowThemeOverride,groupHeaderHeight:t.groupHeaderHeight,headerHeight:t.headerHeight,highlightRegions:t.highlightRegions,imageWindowLoader:t.imageWindowLoader,initialSize:t.initialSize,isFilling:t.isFilling,isFocused:t.isFocused,lockColumns:t.lockColumns,maxColumnWidth:t.maxColumnWidth,minColumnWidth:t.minColumnWidth,onHeaderMenuClick:t.onHeaderMenuClick,onMouseMove:t.onMouseMove,onVisibleRegionChanged:t.onVisibleRegionChanged,overscrollX:t.overscrollX,overscrollY:t.overscrollY,preventDiagonalScrolling:t.preventDiagonalScrolling,rightElement:t.rightElement,rightElementProps:t.rightElementProps,rowHeight:t.rowHeight,rows:t.rows,scrollRef:t.scrollRef,selection:t.selection,showMinimap:t.showMinimap,theme:t.theme,trailingRowType:t.trailingRowType,translateX:t.translateX,translateY:t.translateY,verticalBorder:t.verticalBorder,drawCustomCell:t.drawCustomCell,drawFocusRing:t.drawFocusRing,drawHeader:t.drawHeader,experimental:t.experimental,gridRef:t.gridRef,headerIcons:t.headerIcons,isDraggable:t.isDraggable,onCanvasBlur:t.onCanvasBlur,onCanvasFocused:t.onCanvasFocused,onCellFocused:t.onCellFocused,onColumnMoved:t.onColumnMoved,onColumnResize:t.onColumnResize,onColumnResizeEnd:t.onColumnResizeEnd,onColumnResizeStart:t.onColumnResizeStart,onContextMenu:t.onContextMenu,onDragEnd:t.onDragEnd,onDragLeave:t.onDragLeave,onDragOverCell:t.onDragOverCell,onDragStart:t.onDragStart,onDrop:t.onDrop,onItemHovered:t.onItemHovered,onKeyDown:t.onKeyDown,onKeyUp:t.onKeyUp,onMouseDown:t.onMouseDown,onMouseUp:t.onMouseUp,onRowMoved:t.onRowMoved,smoothScrollX:t.smoothScrollX,smoothScrollY:t.smoothScrollY,scrollToEnd:t.scrollToEnd}),W)},lr=(0,S.d)("input")({name:"RenameInput",class:"r1kzy40b",vars:{"r1kzy40b-0":[function(e){return Math.max(16,e.targetHeight-10)},"px"]}}),ur=function(t){var n=t.bounds,i=t.group,o=t.onClose,a=t.canvasBounds,l=t.onFinish,u=e.useState(i),c=(0,r.Z)(u,2),s=c[0],d=c[1];return e.createElement(Ue,{style:{position:"absolute",left:n.x-a.left+1,top:n.y-a.top,width:n.width-2,height:n.height},className:"c1sqdbw3",onClickOutside:o},e.createElement(lr,{targetHeight:n.height,"data-testid":"group-rename-input",value:s,onBlur:o,onFocus:function(e){return e.target.setSelectionRange(0,s.length)},onChange:function(e){return d(e.target.value)},onKeyDown:function(e){"Enter"===e.key?l(s):"Escape"===e.key&&o()},autoFocus:!0}))},cr=150;function sr(e,t,n,r,i,o,a,l,u){var c,s=[];void 0!==i&&(c=s).push.apply(c,h(i.map((function(e){return e[r]})).map((function(n){return function(e,t,n,r){var i,o;if(t.kind===Xe.Custom)return cr;var a=r(t);return null!=(o=null==(i=null==a?void 0:a.measure)?void 0:i.call(a,e,t,n))?o:cr}(e,n,t,u)}))));if(s.length>5&&l){var d=s.reduce((function(e,t){return e+t}))/s.length;s=s.filter((function(e){return e<2*d}))}s.push(e.measureText(n.title).width+16+(void 0===n.icon?0:28));var f=Math.max.apply(Math,h(s)),p=Math.max(Math.ceil(o),Math.min(Math.floor(a),Math.ceil(f)));return v(v({},n),{},{width:p})}function dr(e,t){if(0===e.length)return!1;var n=!1,r=!1,i=!1,o=!1,a=e.split("+");if(!function(e,t){if(void 0===e)return!1;if(e.length>1&&e.startsWith("_")){if(Number.parseInt(e.slice(1))!==t.keyCode)return!1}else if(e!==t.key)return!1;return!0}(a.pop(),t))return!1;var l,u=d(a);try{for(u.s();!(l=u.n()).done;){switch(l.value){case"ctrl":n=!0;break;case"shift":r=!0;break;case"alt":i=!0;break;case"meta":o=!0;break;case"primary":Zn.value?o=!0:n=!0}}}catch(c){u.e(c)}finally{u.f()}return t.altKey===i&&t.ctrlKey===n&&t.shiftKey===r&&t.metaKey===o}function fr(e){return e.startsWith('"')&&e.endsWith('"')&&(e=e.slice(1,-1).replace(/""/g,'"')),e}function hr(e){var t,n;(n=t||(t={}))[n.None=0]="None",n[n.inString=1]="inString",n[n.inStringPostQuote=2]="inStringPostQuote";var r,i=[],o=[],a=0,l=0,u=0,c=d(e=e.replace(/\r\n/g,"\n"));try{for(c.s();!(r=c.n()).done;){var s=r.value;switch(l){case 0:"\t"===s||"\n"===s?(o.push(e.slice(a,u)),a=u+1,"\n"===s&&(i.push(o),o=[])):'"'===s&&(l=1);break;case 1:'"'===s&&(l=2);break;case 2:'"'===s?l=1:"\t"===s||"\n"===s?(o.push(fr(e.slice(a,u))),a=u+1,"\n"===s&&(i.push(o),o=[]),l=0):l=0}u++}}catch(f){c.e(f)}finally{c.f()}return a0;){var a=i.pop();if(void 0===a)break;a instanceof HTMLTableElement||"TBODY"===a.nodeName?i.push.apply(i,h(h(a.children).reverse())):a instanceof HTMLTableRowElement?(void 0!==r&&o.push(r),r=[],i.push.apply(i,h(h(a.children).reverse()))):a instanceof HTMLTableCellElement&&(null==r||r.push(null!=(n=null!=(t=a.innerText)?t:a.textContent)?n:""))}return void 0!==r&&o.push(r),o}function vr(e){return/[\t\n"]/.test(e)&&(e='"'.concat(e.replace(/"/g,'""'),'"')),e}function gr(e,t,n){var i,o,a,l,u=function(e,n,r){var i,o,a=t[n];if(void 0!==e.span&&e.span[0]!==a)return"";switch(e.kind){case Xe.Text:case Xe.Number:return vr(r?null!=(o=null==(i=e.data)?void 0:i.toString())?o:"":e.displayData);case Xe.Markdown:case Xe.RowID:case Xe.Uri:return vr(e.data);case Xe.Image:case Xe.Bubble:return e.data.reduce((function(e,t){return"".concat(vr(e),",").concat(vr(t))}));case Xe.Boolean:return function(e){switch(e){case!0:return"TRUE";case!1:return"FALSE";case Je:return"INDETERMINATE";case Qe:return"";default:Ne()}}(e.data);case Xe.Loading:return r?"":"#LOADING";case Xe.Protected:return r?"":"************";case Xe.Drilldown:return e.data.map((function(e){return e.text})).reduce((function(e,t){return"".concat(vr(e),",").concat(vr(t))}));case Xe.Custom:return vr(e.copyData);default:Ne()}},c=e.map((function(e){return e.map((function(e,t){return u(e,t,!1)})).join("\t")})).join("\n");if(void 0!==(null==(i=window.navigator.clipboard)?void 0:i.write)||void 0!==n){var s,f=document.createElement("tbody"),h=d(e);try{for(h.s();!(s=h.n()).done;){var p,v=s.value,g=document.createElement("tr"),m=d(v.entries());try{for(m.s();!(p=m.n()).done;){var y=(0,r.Z)(p.value,2),b=y[0],w=y[1],k=document.createElement("td");if(w.kind===Xe.Uri){var x=document.createElement("a");x.href=w.data,x.innerText=w.data,k.append(x)}else k.innerText=u(w,b,!0);g.append(k)}}catch(D){m.e(D)}finally{m.f()}f.append(g)}}catch(D){h.e(D)}finally{h.f()}if(void 0!==(null==(o=window.navigator.clipboard)?void 0:o.write))window.navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([c],{type:"text/plain"}),"text/html":new Blob(["".concat(f.outerHTML,"
    ")],{type:"text/html"})})]);else if(void 0!==n&&null!==(null==n?void 0:n.clipboardData))try{n.clipboardData.setData("text/plain",c),n.clipboardData.setData("text/html","".concat(f.outerHTML,"
    "))}catch(C){null==(a=window.navigator.clipboard)||a.writeText(c)}}else null==(l=window.navigator.clipboard)||l.writeText(c);null==n||n.preventDefault()}function mr(e){return"string"===typeof e?e:"".concat(e,"px")}var yr=(0,S.d)("div")({name:"Wrapper",class:"wzg2m5k",vars:{"wzg2m5k-0":[function(e){return e.innerWidth}],"wzg2m5k-1":[function(e){return e.innerHeight}]}}),br=function(t){var n=t.inWidth,r=t.inHeight,i=t.children,o=g(t,Ie);return e.createElement(yr,v({innerHeight:mr(r),innerWidth:mr(n)},o),i)};function wr(e){return!0!==e}var kr={getAccessibilityString:function(e){var t,n;return null!=(n=null==(t=e.data)?void 0:t.toString())?n:"false"},kind:Xe.Boolean,needsHover:!0,useLabel:!1,needsHoverPosition:!0,measure:function(){return 50},draw:function(e){return function(e,t,n){if(n||t!==Qe){var r=e.ctx,i=e.hoverAmount,o=e.theme,a=e.rect,l=e.highlighted,u=e.hoverX,c=e.hoverY,s=a.x,d=a.y,f=a.width,h=a.height,p=n?.65+.35*i:.4;t===Qe&&(p*=i),0!==p&&(r.globalAlpha=p,ln(r,o,t,s,d,f,h,l,u,c),r.globalAlpha=1)}}(e,e.cell.data,mt(e.cell))},onDelete:function(e){return v(v({},e),{},{data:!1})},onClick:function(e){var t=e.cell,n=e.posX,r=e.posY,i=e.bounds;if(mt(t)&&Math.abs(n-i.width/2)<=i.height/3.4&&Math.abs(r-i.height/2)<=i.height/3.4)return v(v({},t),{},{data:wr(t.data)})},onPaste:function(e,t){var n=Qe;return"true"===e.toLowerCase()?n=!0:"false"===e.toLowerCase()?n=!1:"indeterminate"===e.toLowerCase()&&(n=Je),n===t.data?void 0:v(v({},t),{},{data:n})}};var xr=(0,S.d)("div")({name:"BubblesOverlayEditorStyle",class:"b1bqsp5z"}),Dr=function(t){var n=t.bubbles;return e.createElement(xr,null,n.map((function(t,n){return e.createElement("div",{key:n,className:"boe-bubble"},t)})),e.createElement("textarea",{className:"gdg-input",autoFocus:!0}))},Cr={getAccessibilityString:function(e){var t,n;return null!=(n=null==(t=e.data)?void 0:t.toString())?n:""},kind:Xe.Bubble,needsHover:!1,useLabel:!1,needsHoverPosition:!1,measure:function(e,t,n){return t.data.reduce((function(t,n){return e.measureText(n).width+t+20}),0)+2*n.cellHorizontalPadding-4},draw:function(e){return function(e,t){var n,i=e.rect,o=e.theme,a=e.ctx,l=e.highlighted,u=i.x,c=i.y,s=i.width,f=i.height,h=u+o.cellHorizontalPadding,p=[],v=d(t);try{for(v.s();!(n=v.n()).done;){var g=n.value;if(h>u+s)break;var m=Qt(g,a,"".concat(o.baseFontStyle," ").concat(o.fontFamily)).width;p.push({x:h,width:m}),h+=m+16+4}}catch(E){v.e(E)}finally{v.f()}a.beginPath();for(var y=0,b=p;y1;return e.createElement(Ar,{"data-testid":"GDG-default-image-overlay-editor"},e.createElement(N.lr,{showArrows:l,showThumbs:!1,swipeable:l,emulateTouch:l,infiniteLoop:l},a.map((function(t){var n,r=null!=(n=null==o?void 0:o(t))?n:e.createElement("img",{draggable:!1,src:t});return e.createElement("div",{className:"centering-container",key:t},r)}))),r&&i&&e.createElement("button",{className:"edit-icon",onClick:i},e.createElement(Ot,null)))},Rr={getAccessibilityString:function(e){return e.data.join(", ")},kind:Xe.Image,needsHover:!1,useLabel:!1,needsHoverPosition:!1,draw:function(e){var t;return function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4,i=e.rect,o=e.col,a=e.row,l=e.theme,u=e.ctx,c=e.imageLoader,s=i.x,f=i.y,h=i.height,p=s+l.cellHorizontalPadding,v=d(t);try{for(v.s();!(n=v.n()).done;){var g=n.value;if(0!==g.length){var m=c.loadOrGetImage(g,o,a);if(void 0!==m){var y=h-2*l.cellVerticalPadding,b=m.width*(y/m.height);r>0&&(cn(u,p,f+l.cellVerticalPadding,b,y,r),u.save(),u.clip()),u.drawImage(m,p,f+l.cellVerticalPadding,b,y),r>0&&u.restore(),p+=b+4}}}}catch(w){v.e(w)}finally{v.f()}}(e,null!=(t=e.cell.displayData)?t:e.cell.data,e.cell.rounding)},measure:function(e,t){return 50*t.data.length},onDelete:function(e){return v(v({},e),{},{data:[]})},provideEditor:function(){return function(t){var n=t.value,r=t.onFinishedEditing,i=t.imageEditorOverride,o=null!=i?i:Mr;return e.createElement(o,{urls:n.data,canWrite:n.allowAdd,onCancel:r,onChange:function(e){r(v(v({},n),{},{data:[e]}))}})}},onPaste:function(e,t){var n=(e=e.trim()).split(",").map((function(e){try{return new URL(e),e}catch(t){return}})).filter((function(e){return void 0!==e}));if(n.length!==t.data.length||!n.every((function(e,n){return e===t.data[n]})))return v(v({},t),{},{data:n})}},_r={getAccessibilityString:function(){return""},kind:Xe.Loading,needsHover:!1,useLabel:!1,needsHoverPosition:!1,measure:function(){return 120},draw:function(){},onPaste:function(){}},Tr=(0,S.d)("div")({name:"MarkdownContainer",class:"mlbeo71"}),Pr=function(t){k(r,t);var n=C(r);function r(){var e;return m(this,r),(e=n.apply(this,arguments)).targetElement=null,e.containerRefHook=function(t){e.targetElement=t,e.renderMarkdownIntoDiv()},e}return b(r,[{key:"renderMarkdownIntoDiv",value:function(){var e=this.targetElement,t=this.props;if(null!==e){var n=t.contents,r=t.createNode,i=_e(n),o=document.createRange();o.selectNodeContents(e),o.deleteContents();var a=null==r?void 0:r(i);if(void 0===a){var l=document.createElement("template");l.innerHTML=i,a=l.content}e.append(a);var u,c=d(e.getElementsByTagName("a"));try{for(c.s();!(u=c.n()).done;){var s=u.value;s.target="_blank",s.rel="noreferrer noopener"}}catch(f){c.e(f)}finally{c.f()}}}},{key:"render",value:function(){return this.renderMarkdownIntoDiv(),e.createElement(Tr,{ref:this.containerRefHook})}}]),r}(e.PureComponent),zr=(0,S.d)("textarea")({name:"InputBox",class:"ijuk0po"}),Or=(0,S.d)("div")({name:"ShadowBox",class:"saq3p5l"}),Ir=(0,S.d)("div")({name:"GrowingEntryStyle",class:"gf8vzix"}),Lr=function(t){var n=t.placeholder,r=t.value,i=t.onKeyDown,o=t.highlight,a=t.altNewline,l=t.validatedSelection,u=g(t,Le),c=u.onChange,s=u.className,d=e.useRef(null),f=null!=r?r:"";He(void 0!==c,"GrowingEntry must be a controlled input area"),e.useEffect((function(){var e=d.current;if(null!==e&&!e.disabled){var t=f.toString().length;e.focus(),e.setSelectionRange(o?0:t,t)}}),[]),e.useLayoutEffect((function(){var e;if(void 0!==l){var t="number"===typeof l?[l,null]:l;null==(e=d.current)||e.setSelectionRange(t[0],t[1])}}),[l]);var h=e.useCallback((function(e){"Enter"===e.key&&e.shiftKey&&!0===a||null==i||i(e)}),[a,i]);return e.createElement(Ir,{className:"gdg-growing-entry"},e.createElement(Or,{className:s},f+"\n"),e.createElement(zr,v(v({},u),{},{className:(null!=s?s:"")+" gdg-input",ref:d,onKeyDown:h,value:f,placeholder:n,dir:"auto"})))},Br=(0,S.d)("div")({name:"MarkdownOverlayEditorStyle",class:"mdwzdl1",vars:{"mdwzdl1-0":[function(e){return e.targetWidth},"px"]}}),Hr=function(t){var n=t.value,i=t.onChange,o=t.forceEditMode,a=t.createNode,l=t.targetRect,u=t.onFinish,c=t.validatedSelection,s=n.data,d=!0===n.readonly,f=e.useState(""===s||o),h=(0,r.Z)(f,2),p=h[0],v=h[1],g=e.useCallback((function(){v((function(e){return!e}))}),[]),m=s?"ml-6":"";return p?e.createElement(Br,{targetWidth:l.width-20},e.createElement(Lr,{autoFocus:!0,highlight:!1,validatedSelection:c,value:s,onKeyDown:function(e){"Enter"===e.key&&e.stopPropagation()},onChange:i}),e.createElement("div",{className:"edit-icon checkmark-hover ".concat(m),onClick:function(){return u(n)}},e.createElement(It,null))):e.createElement(Br,{targetWidth:l.width},e.createElement(Pr,{contents:s,createNode:a}),!d&&e.createElement(e.Fragment,null,e.createElement("div",{className:"spacer"}),e.createElement("div",{className:"edit-icon edit-hover ".concat(m),onClick:g},e.createElement(Ot,null))),e.createElement("textarea",{className:"md-edit-textarea gdg-input",autoFocus:!0}))},Nr={getAccessibilityString:function(e){var t,n;return null!=(n=null==(t=e.data)?void 0:t.toString())?n:""},kind:Xe.Markdown,needsHover:!1,needsHoverPosition:!1,drawPrep:nn,measure:function(e,t,n){var r=t.data.split("\n")[0];return e.measureText(r).width+2*n.cellHorizontalPadding},draw:function(e){return an(e,e.cell.data,e.cell.contentAlign)},onDelete:function(e){return v(v({},e),{},{data:""})},provideEditor:function(){return function(t){var n=t.onChange,r=t.value,i=t.target,o=t.onFinishedEditing,a=t.markdownDivCreateNode,l=t.forceEditMode,u=t.validatedSelection;return e.createElement(Hr,{onFinish:o,targetRect:i,value:r,validatedSelection:u,onChange:function(e){return n(v(v({},r),{},{data:e.target.value}))},forceEditMode:l,createNode:a})}},onPaste:function(e,t){return e===t.data?void 0:v(v({},t),{},{data:e})}},jr={getAccessibilityString:function(e){return e.row.toString()},kind:rt.Marker,needsHover:!0,needsHoverPosition:!1,drawPrep:function(e,t){var n=e.ctx,r=e.theme,i="9px ".concat(r.fontFamily),o=null!=t?t:{};return(null==o?void 0:o.font)!==i&&(n.font=i,o.font=i),o.deprep=un,n.textAlign="center",o},measure:function(){return 44},draw:function(e){return function(e,t,n,r,i){var o=e.ctx,a=e.rect,l=e.hoverAmount,u=e.theme,c=a.x,s=a.y,d=a.width,f=a.height,h=n?1:l;if("number"!==r&&h>0){o.globalAlpha=h;var p=7*(n?l:1);if(ln(o,u,n,i?c+p:c,s,i?d-p:d,f,!0),i){o.globalAlpha=l,o.beginPath();for(var v=0,g=[3,6];v0&&(r.moveTo(u+b+y,c+d/2),r.lineTo(u+b+y+m,c+d/2),r.moveTo(u+b+y+.5*m,c+d/2-.5*m),r.lineTo(u+b+y+.5*m,c+d/2+.5*m),r.lineWidth=2,r.strokeStyle=a.bgIconHeader,r.lineCap="round",r.stroke())}r.fillStyle=a.textMedium,r.fillText(t,h+u+a.cellHorizontalPadding+.5,c+d/2+Jt(r,a)),r.beginPath()}(e,e.cell.hint,e.cell.icon)},onPaste:function(){}},Ur=e.lazy(c(l().mark((function e(){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.e(297).then(n.bind(n,297));case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))),Vr={getAccessibilityString:function(e){var t,n;return null!=(n=null==(t=e.data)?void 0:t.toString())?n:""},kind:Xe.Number,needsHover:!1,needsHoverPosition:!1,useLabel:!0,drawPrep:nn,draw:function(e){return an(e,e.cell.displayData,e.cell.contentAlign)},measure:function(e,t){return e.measureText(t.displayData).width+16},onDelete:function(e){return v(v({},e),{},{data:void 0})},provideEditor:function(){return function(t){var n=t.isHighlighted,r=t.onChange,i=t.value,o=t.validatedSelection;return e.createElement(e.Suspense,{fallback:null},e.createElement(Ur,{highlight:n,disabled:!0===i.readonly,value:i.data,validatedSelection:o,onChange:function(e){var t;return r(v(v({},i),{},{data:Number.isNaN(null!=(t=e.floatValue)?t:0)?0:e.floatValue}))}}))}},onPaste:function(e,t){var n=Number.parseFloat(e);if(!Number.isNaN(n)&&t.data!==n)return v(v({},t),{},{data:n})}},$r={getAccessibilityString:function(){return""},measure:function(){return 108},kind:Xe.Protected,needsHover:!1,needsHoverPosition:!1,draw:function(e){var t=e.ctx,n=e.theme,r=e.rect,i=r.x,o=r.y,a=r.height;t.beginPath();for(var l=2.5,u=i+n.cellHorizontalPadding+l,c=o+a/2,s=Math.cos(zt(30))*l,d=Math.sin(zt(30))*l,f=0;f<12;f++)t.moveTo(u,c-l),t.lineTo(u,c+l),t.moveTo(u+s,c-d),t.lineTo(u-s,c+d),t.moveTo(u-s,c-d),t.lineTo(u+s,c+d),u+=8;t.lineWidth=1.1,t.lineCap="square",t.strokeStyle=n.textLight,t.stroke()},onPaste:function(){}},Zr={getAccessibilityString:function(e){var t,n;return null!=(n=null==(t=e.data)?void 0:t.toString())?n:""},kind:Xe.RowID,needsHover:!1,needsHoverPosition:!1,drawPrep:function(e,t){return nn(e,t,e.theme.textLight)},draw:function(e){return an(e,e.cell.data,e.cell.contentAlign)},measure:function(e,t){return e.measureText(t.data).width+16},provideEditor:function(){return function(t){var n=t.isHighlighted,r=t.onChange,i=t.value,o=t.validatedSelection;return e.createElement(Lr,{highlight:n,autoFocus:!0!==i.readonly,disabled:!1!==i.readonly,value:i.data,validatedSelection:o,onChange:function(e){return r(v(v({},i),{},{data:e.target.value}))}})}},onPaste:function(){}},Kr={getAccessibilityString:function(e){var t,n;return null!=(n=null==(t=e.data)?void 0:t.toString())?n:""},kind:Xe.Text,needsHover:!1,needsHoverPosition:!1,drawPrep:nn,useLabel:!0,draw:function(e){return an(e,e.cell.displayData,e.cell.contentAlign,e.cell.allowWrapping,e.hyperWrapping),!0},measure:function(e,t,n){var r=t.displayData.split("\n").slice(0,!0===t.allowWrapping?void 0:1);return Math.max.apply(Math,h(r.map((function(t){return e.measureText(t).width+2*n.cellHorizontalPadding}))))},onDelete:function(e){return v(v({},e),{},{data:""})},provideEditor:function(){return function(t){var n=t.isHighlighted,r=t.onChange,i=t.value,o=t.validatedSelection;return e.createElement(Lr,{highlight:n,autoFocus:!0!==i.readonly,disabled:!0===i.readonly,altNewline:!0,value:i.data,validatedSelection:o,onChange:function(e){return r(v(v({},i),{},{data:e.target.value}))}})}},onPaste:function(e,t){return e===t.data?void 0:v(v({},t),{},{data:e})}},Xr=(0,S.d)("div")({name:"UriOverlayEditorStyle",class:"uf0sjo8"}),Yr=function(t){var n=t.uri,i=t.onChange,o=t.forceEditMode,a=t.readonly,l=t.validatedSelection,u=e.useState(""===n||o),c=(0,r.Z)(u,2),s=c[0],d=c[1],f=e.useCallback((function(){d(!0)}),[]);return s?e.createElement(Lr,{validatedSelection:l,highlight:!0,autoFocus:!0,value:n,onChange:i}):e.createElement(Xr,null,e.createElement("a",{className:"link-area",href:n,target:"_blank",rel:"noopener noreferrer"},n),!a&&e.createElement("div",{className:"edit-icon",onClick:f},e.createElement(Ot,null)),e.createElement("textarea",{className:"gdg-input",autoFocus:!0}))},Gr={getAccessibilityString:function(e){var t,n;return null!=(n=null==(t=e.data)?void 0:t.toString())?n:""},kind:Xe.Uri,needsHover:!1,needsHoverPosition:!1,useLabel:!0,drawPrep:nn,draw:function(e){return an(e,e.cell.data,e.cell.contentAlign)},measure:function(e,t){return e.measureText(t.data).width+16},onDelete:function(e){return v(v({},e),{},{data:""})},provideEditor:function(){return function(t){var n=t.onChange,r=t.value,i=t.forceEditMode,o=t.validatedSelection;return e.createElement(Yr,{forceEditMode:i,uri:r.data,validatedSelection:o,readonly:!0===r.readonly,onChange:function(e){return n(v(v({},r),{},{data:e.target.value}))}})}},onPaste:function(e,t){return e===t.data?void 0:v(v({},t),{},{data:e})}},qr=(a(Te={},rt.Marker,jr),a(Te,rt.NewRow,Wr),a(Te,Xe.Boolean,kr),a(Te,Xe.Bubble,Cr),a(Te,Xe.Drilldown,Fr),a(Te,Xe.Image,Rr),a(Te,Xe.Loading,_r),a(Te,Xe.Markdown,Nr),a(Te,Xe.Number,Vr),a(Te,Xe.Protected,$r),a(Te,Xe.RowID,Zr),a(Te,Xe.Text,Kr),a(Te,Xe.Uri,Gr),Te),Qr=0;function Jr(e,t){return void 0===e||0===t||0===e.columns.length&&void 0===e.current?e:{current:void 0===e.current?void 0:{cell:[e.current.cell[0]+t,e.current.cell[1]],range:v(v({},e.current.range),{},{x:e.current.range.x+t}),rangeStack:e.current.rangeStack.map((function(e){return v(v({},e),{},{x:e.x+t})}))},rows:e.rows,columns:e.columns.offset(t)}}var ei={selectAll:!0,selectRow:!0,selectColumn:!0,downFill:!1,rightFill:!1,pageUp:!1,pageDown:!1,clear:!0,copy:!0,paste:!0,search:!1,first:!0,last:!0},ti={kind:Xe.Loading,allowOverlay:!1},ni={columns:bt.empty(),rows:bt.empty(),current:void 0},ri=e.forwardRef((function(t,n){var i,o,a,u,s,f=e.useState(ni),p=(0,r.Z)(f,2),g=p[0],m=p[1],y=e.useState(),b=(0,r.Z)(y,2),w=b[0],k=b[1],x=e.useRef(null),D=e.useRef(null),C=e.useState(),S=(0,r.Z)(C,2),_=S[0],T=S[1],P=e.useRef(null),z=e.useRef(),O=t.rowMarkers,I=void 0===O?"none":O,L=t.rowMarkerWidth,B=t.imageEditorOverride,H=t.getRowThemeOverride,N=t.markdownDivCreateNode,j=t.width,W=t.height,U=t.columns,V=t.rows,$=t.getCellContent,Z=t.onCellClicked,K=t.onCellActivated,X=t.onFinishedEditing,Y=t.coercePasteValue,G=t.drawHeader,q=t.onHeaderClicked,Q=t.spanRangeBehavior,J=void 0===Q?"default":Q,ee=t.onGroupHeaderClicked,te=t.onCellContextMenu,ne=t.className,re=t.onHeaderContextMenu,ie=t.getCellsForSelection,oe=t.onGroupHeaderContextMenu,ae=t.onGroupHeaderRenamed,le=t.onCellEdited,ue=t.onCellsEdited,ce=t.onKeyDown,se=t.onKeyUp,de=t.keybindings,fe=t.onRowAppended,he=t.onColumnMoved,pe=t.validateCell,ve=t.highlightRegions,ge=t.drawCell,me=t.rangeSelect,ye=void 0===me?"rect":me,be=t.columnSelect,we=void 0===be?"multi":be,ke=t.rowSelect,xe=void 0===ke?"multi":ke,De=t.rangeSelectionBlending,Ce=void 0===De?"exclusive":De,Se=t.columnSelectionBlending,Ee=void 0===Se?"exclusive":Se,Fe=t.rowSelectionBlending,Ae=void 0===Fe?"exclusive":Fe,Me=t.onDelete,Re=t.onDragStart,_e=t.onMouseMove,Te=t.onPaste,Pe=t.copyHeaders,ze=void 0!==Pe&&Pe,Oe=t.freezeColumns,Ie=void 0===Oe?0:Oe,Le=t.rowSelectionMode,Be=void 0===Le?"auto":Le,je=t.rowMarkerStartIndex,We=void 0===je?1:je,Ue=t.rowMarkerTheme,$e=t.onHeaderMenuClick,Ye=t.getGroupDetails,Ge=t.onSearchClose,qe=t.onItemHovered,Qe=t.onSelectionCleared,Je=t.showSearch,it=t.onVisibleRegionChanged,ot=t.gridSelection,at=t.onGridSelectionChange,ft=t.minColumnWidth,mt=void 0===ft?50:ft,yt=t.maxColumnWidth,wt=void 0===yt?500:yt,kt=t.maxColumnAutoWidth,Dt=t.provideEditor,Ct=t.trailingRowOptions,St=t.scrollOffsetX,Et=t.scrollOffsetY,Ft=t.verticalBorder,At=t.onDragOverCell,Mt=t.onDrop,Rt=t.onColumnResize,Pt=t.onColumnResizeEnd,zt=t.onColumnResizeStart,Ot=t.customRenderers,It=t.fillHandle,Lt=t.drawFocusRing,Bt=t.experimental,Ht=t.fixedShadowX,Nt=t.fixedShadowY,Vt=t.headerIcons,$t=t.imageWindowLoader,Zt=t.initialSize,Kt=t.isDraggable,Xt=t.onDragLeave,Yt=t.onRowMoved,Gt=t.overscrollX,qt=t.overscrollY,Qt=t.preventDiagonalScrolling,Jt=t.rightElement,en=t.rightElementProps,tn=t.showMinimap,nn=t.smoothScrollX,rn=t.smoothScrollY,on=t.scrollToEnd,an=t.scaleToRem,ln=void 0!==an&&an,un=t.rowHeight,cn=void 0===un?34:un,sn=t.headerHeight,dn=void 0===sn?36:sn,fn=t.groupHeaderHeight,hn=void 0===fn?dn:fn,pn=t.theme,vn=Math.max(mt,20),gn=Math.max(wt,vn),mn=Math.max(null!=kt?kt:gn,vn),yn=e.useMemo((function(){return"undefined"===typeof window?{fontSize:"16px"}:window.getComputedStyle(document.documentElement)}),[]).fontSize,bn=e.useMemo((function(){return Number.parseFloat(yn)}),[yn]),wn=e.useMemo((function(){var e,t,n;if(!ln||16===bn)return[cn,dn,hn,pn,Gt,qt];var r=bn/16,i=cn,o=Ze();return["number"===typeof i?i*r:function(e){return Math.ceil(i(e)*r)},Math.ceil(dn*r),Math.ceil(hn*r),v(v({},pn),{},{headerIconSize:(null!=(e=null==pn?void 0:pn.headerIconSize)?e:o.headerIconSize)*r,cellHorizontalPadding:(null!=(t=null==pn?void 0:pn.cellHorizontalPadding)?t:o.cellHorizontalPadding)*r,cellVerticalPadding:(null!=(n=null==pn?void 0:pn.cellVerticalPadding)?n:o.cellVerticalPadding)*r}),Math.ceil((null!=Gt?Gt:0)*r),Math.ceil((null!=qt?qt:0)*r)]}),[hn,dn,Gt,qt,bn,cn,ln,pn]),kn=(0,r.Z)(wn,6),xn=kn[0],Dn=kn[1],Cn=kn[2],Sn=kn[3],En=kn[4],Fn=kn[5],An=e.useMemo((function(){return void 0===de?ei:v(v({},ei),de)}),[de]),Mn=null!=L?L:V>1e4?48:V>1e3?44:V>100?36:32,Rn="none"!==I,_n=Rn?1:0,Tn=void 0!==fe,Pn=!0===(null==Ct?void 0:Ct.sticky),zn=e.useState(!1),On=(0,r.Z)(zn,2),In=On[0],Ln=On[1],Bn=null!=Je?Je:In,Hn=e.useCallback((function(){void 0!==Ge?Ge():Ln(!1)}),[Ge]),Nn=e.useMemo((function(){return void 0===ot?void 0:Jr(ot,_n)}),[ot,_n]),jn=null!=Nn?Nn:g,Wn=e.useRef(new AbortController);e.useEffect((function(){return function(){null==Wn||Wn.current.abort()}}),[]);var Un=function(t,n,r,i){var o=e.useCallback((function(e){var r;if(!0===t){for(var o=[],a=e.y;a2){var f=t({x:c.x,y:c.y,width:1,height:c.height},i.signal);if("function"===typeof f)return l;s.push.apply(s,h(f));var p=t({x:c.x+c.width-1,y:c.y,width:1,height:c.height},i.signal);if("function"===typeof p)return l;s.push.apply(s,h(p))}else{var v=t({x:c.x,y:c.y,width:c.width,height:c.height},i.signal);if("function"===typeof v)return l;s.push.apply(s,h(v))}for(var g=c.x-n,m=c.x+c.width-1-n,y=0,b=s;y0)u={current:void 0,columns:bt.empty(),rows:e};else{var c=l&&"mixed"===i;u={current:l&&"mixed"===r?t.current:void 0,columns:c?t.columns:bt.empty(),rows:e}}n(u,!1)}),[i,t,r,o,n]),e.useCallback((function(e,a,l){var u;if(e=null!=e?e:t.columns,void 0!==a&&(e=e.add(a)),"exclusive"===i&&e.length>0)u={current:void 0,rows:bt.empty(),columns:e};else{var c=l&&"mixed"===o;u={current:l&&"mixed"===r?t.current:void 0,rows:c?t.rows:bt.empty(),columns:e}}n(u,!1)}),[i,t,r,o,n])]}(jn,Gn,Ce,Ee,Ae,ye),rr=(0,r.Z)(nr,3),ir=rr[0],or=rr[1],lr=rr[2],fr=e.useMemo((function(){return v(v({},Ze()),Sn)}),[Sn]),vr=e.useState([10,10,0]),mr=(0,r.Z)(vr,2),yr=mr[0],kr=mr[1],xr=e.useCallback((function(e){return e.kind!==Xe.Custom?qr[e.kind]:null==Ot?void 0:Ot.find((function(t){return t.isMatch(e)}))}),[Ot]),Dr=function(t,n,i,o,a,u,s,f,p){var g=e.useRef(n),m=e.useRef(i),y=e.useRef(s);g.current=n,m.current=i,y.current=s;var b=e.useState((function(){if(void 0===typeof window)return null;var e=document.createElement("canvas");return e.style.display="none",e.style.opacity="0",e.style.position="fixed",document.documentElement.append(e),e.getContext("2d",{alpha:!1})})),w=(0,r.Z)(b,1)[0],k=e.useRef({}),x=e.useRef(),D=e.useState(),C=(0,r.Z)(D,2),S=C[0],E=C[1];return e.useLayoutEffect((function(){var e=m.current;if(void 0!==e&&!t.every(st)){var n=Math.max(1,10-Math.floor(t.length/1e4)),r=0;n1&&(n--,r=1);var i={x:0,y:0,width:t.length,height:Math.min(g.current,n)},o={x:0,y:g.current-1,width:t.length,height:1},a=function(){var n=c(l().mark((function n(){var a,u,c;return l().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(a=e(i,p.signal),u=r>0?e(o,p.signal):void 0,"object"!==typeof a){n.next=6;break}c=a,n.next=9;break;case 6:return n.next=8,dt(a);case 8:c=n.sent;case 9:if(void 0===u){n.next=22;break}if("object"!==typeof u){n.next=14;break}c=[].concat(h(c),h(u)),n.next=22;break;case 14:return n.t0=[],n.t1=h(c),n.t2=h,n.next=19,dt(u);case 19:n.t3=n.sent,n.t4=(0,n.t2)(n.t3),c=n.t0.concat.call(n.t0,n.t1,n.t4);case 22:x.current=t,E(c);case 24:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}();a()}}),[p.signal,t]),e.useMemo((function(){var e,n,i=t.every(st)?t:null===w?t.map((function(e){return st(e)?e:v(v({},e),{},{width:cr})})):(w.font="".concat(y.current.baseFontStyle," ").concat(y.current.fontFamily),t.map((function(e,n){if(st(e))return e;if(void 0!==k.current[e.id])return v(v({},e),{},{width:k.current[e.id]});if(void 0===S||x.current!==t||void 0===e.id)return v(v({},e),{},{width:cr});var r=sr(w,s,e,n,S,a,u,!0,f);return k.current[e.id]=r.width,r}))),l=0,c=0,p=[],g=d(i.entries());try{for(g.s();!(n=g.n()).done;){var m=(0,r.Z)(n.value,2),b=m[0],D=m[1];l+=D.width,void 0!==D.grow&&D.grow>0&&(c+=D.grow,p.push(b))}}catch(T){g.e(T)}finally{g.f()}if(l0){for(var C=h(i),E=o-l,F=E,A=0;A1;e.useLayoutEffect((function(){if(void 0!==Et&&null!==P.current&&jr){if(P.current.scrollTop===Et)return;P.current.scrollTop=Et,P.current.scrollTop!==Et&&Nr(),Or.current=!0}}),[Et,jr,Nr]);var Wr=(null!=(o=Br.width)?o:1)>1;e.useLayoutEffect((function(){if(void 0!==St&&null!==P.current&&Wr){if(P.current.scrollLeft===St)return;P.current.scrollLeft=St,P.current.scrollLeft!==St&&Nr(),Or.current=!0}}),[St,Wr,Nr]);var Ur=Br.x+_n,Vr=Br.y,$r=e.useRef(null),Zr=e.useCallback((function(e){var t;!0===e?null==(t=$r.current)||t.focus():window.requestAnimationFrame((function(){var e;null==(e=$r.current)||e.focus()}))}),[]),Kr=Tn?V+1:V,Xr=e.useCallback((function(e){var t=0===_n?e:e.map((function(e){return v(v({},e),{},{location:[e.location[0]-_n,e.location[1]]})})),n=null==ue?void 0:ue(t);if(!0!==n){var r,i=d(t);try{for(i.s();!(r=i.n()).done;){var o=r.value;null==le||le(o.location,o.value)}}catch(a){i.e(a)}finally{i.f()}}return n}),[le,ue,_n]),Yr=e.useMemo((function(){if(void 0!==ve)return 0===_n?ve:ve.map((function(e){var t=Ar.length-e.range.x-_n;if(!(t<=0))return{color:e.color,range:v(v({},e.range),{},{x:e.range.x+_n,width:Math.min(t,e.range.width)}),style:e.style}})).filter((function(e){return void 0!==e}))}),[ve,Ar.length,_n]),Gr=e.useRef(Ar);Gr.current=Ar;var ri=e.useCallback((function(e){var t,n,i,o,a,l,u,c,s,d,f=(0,r.Z)(e,2),h=f[0],p=f[1],g=Tn&&p===Kr-1;if(0===h&&Rn)return g?ti:{kind:rt.Marker,allowOverlay:!1,checked:!0===(null==jn?void 0:jn.rows.hasIndex(p)),markerKind:"clickable-number"===I?"number":I,row:We+p,drawHandle:void 0!==Yt};if(g){var m=h===_n&&null!=(t=null==Ct?void 0:Ct.hint)?t:"",y=Gr.current[h];if(!0===(null==(n=null==y?void 0:y.trailingRowOptions)?void 0:n.disabled))return ti;var b=null!=(o=null==(i=null==y?void 0:y.trailingRowOptions)?void 0:i.hint)?o:m,w=null!=(l=null==(a=null==y?void 0:y.trailingRowOptions)?void 0:a.addIcon)?l:null==Ct?void 0:Ct.addIcon;return{kind:rt.NewRow,hint:b,allowOverlay:!1,icon:w}}var k=h-_n;if(!0===(null==Bt?void 0:Bt.strict)){var x=Pr.current,D=x.x>k||k>x.x+x.width||x.y>p||p>x.y+x.height,C=k===(null==(c=null==(u=x.extras)?void 0:u.selected)?void 0:c[0])&&p===(null==(s=x.extras)?void 0:s.selected[1]),S=void 0===(null==(d=x.extras)?void 0:d.freezeRegion)||x.extras.freezeRegion.x>k||k>x.extras.freezeRegion.x+x.extras.freezeRegion.width||x.extras.freezeRegion.y>p||p>x.extras.freezeRegion.y+x.extras.freezeRegion.height;if(D&&!C&&S)return{kind:Xe.Loading,allowOverlay:!1}}var E=$([k,p]);return 0!==_n&&void 0!==E.span&&(E=v(v({},E),{},{span:[E.span[0]+_n,E.span[1]+_n]})),E}),[Tn,Kr,Rn,null==jn?void 0:jn.rows,Yt,I,_n,null==Ct?void 0:Ct.hint,null==Ct?void 0:Ct.addIcon,null==Bt?void 0:Bt.strict,$,We]),ii=e.useCallback((function(e){var t,n,r=null!=(t=null==Ye?void 0:Ye(e))?t:{name:e};return void 0!==ae&&""!==e&&(r={icon:r.icon,name:r.name,overrideTheme:r.overrideTheme,actions:[].concat(h(null!=(n=r.actions)?n:[]),[{title:"Rename",icon:"renameIcon",onClick:function(e){return Si({group:r.name,bounds:e.bounds})}}])}),r}),[Ye,ae]),oi=e.useCallback((function(e){var t,n=(0,r.Z)(e.cell,2),i=n[0],o=n[1],a=Ar[i],l=void 0!==(null==a?void 0:a.group)?null==(t=ii(a.group))?void 0:t.overrideTheme:void 0,u=null==a?void 0:a.themeOverride,c=null==H?void 0:H(o);k(v(v({},e),{},{theme:v(v(v(v(v({},fr),l),u),c),e.content.themeOverride)}))}),[H,Ar,ii,fr]),ai=e.useCallback((function(e,t,n){var i;if(void 0!==jn.current){var o=(0,r.Z)(jn.current.cell,2),a=o[0],l=o[1],u=ri([a,l]);if(u.kind!==Xe.Boolean&&u.allowOverlay){var c=u;if(void 0!==n)switch(c.kind){case Xe.Number:var s=function(e,t){try{return e()}catch(n){return t}}((function(){return"-"===n?-0:Number.parseFloat(n)}),0);c=v(v({},c),{},{data:Number.isNaN(s)?0:s});break;case Xe.Text:case Xe.Markdown:case Xe.Uri:c=v(v({},c),{},{data:n})}oi({target:e,content:c,initialValue:n,cell:[a,l],highlight:void 0===n,forceEditMode:void 0!==n})}else u.kind===Xe.Boolean&&t&&!0!==u.readonly&&(Xr([{location:jn.current.cell,value:v(v({},u),{},{data:wr(u.data)})}]),null==(i=$r.current)||i.damage([{cell:jn.current.cell}]))}}),[ri,jn,Xr,oi]),li=e.useCallback((function(e,t){var n,r=null==(n=$r.current)?void 0:n.getBounds(e,t);if(void 0!==r&&null!==P.current){var i=ri([e,t]);i.allowOverlay&&oi({target:r,content:i,initialValue:void 0,highlight:!0,cell:[e,t],forceEditMode:!0})}}),[ri,oi]),ui=e.useCallback((function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"both",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:void 0;if(null!==P.current){var l=$r.current,u=D.current,c="number"!==typeof e?"cell"===e.unit?e.amount:void 0:e,s="number"!==typeof t?"cell"===t.unit?t.amount:void 0:t,d="number"!==typeof e&&"px"===e.unit?e.amount:void 0,f="number"!==typeof t&&"px"===t.unit?t.amount:void 0;if(null!==l&&null!==u){var h={x:0,y:0,width:0,height:0},p=0,g=0;if((void 0!==c||void 0!==s)&&(0===(h=null!=(n=l.getBounds((null!=c?c:0)+_n,null!=s?s:0))?n:h).width||0===h.height))return;var m=u.getBoundingClientRect();if(void 0!==d&&(h=v(v({},h),{},{x:d-m.left-P.current.scrollLeft,width:1})),void 0!==f&&(h=v(v({},h),{},{y:f+m.top-P.current.scrollTop,height:1})),void 0!==h){for(var y={x:h.x-i,y:h.y-o,width:h.width+2*i,height:h.height+2*o},b=0,w=0;wy.x?p=y.x-x:Cy.y?g=y.y-S:E=0)return o+(Rn?1:0)}}),[Dr,U,Rn,null==Ct?void 0:Ct.targetColumn]),pi=e.useRef(),vi=e.useRef(),gi=e.useCallback((function(e,t){var n,i=(0,r.Z)(t,2),o=i[0],a=i[1];return v(v(v(v({},fr),null==(n=Ar[o])?void 0:n.themeOverride),null==H?void 0:H(a)),e.themeOverride)}),[H,Ar,fr]),mi=e.useCallback((function(e){var t,n,i,o,a=Zn.value?e.metaKey:e.ctrlKey,l=a&&"multi"===xe,u=a&&"multi"===we,c=(0,r.Z)(e.location,2),s=c[0],d=c[1],f=jn.columns,h=jn.rows,p=null!=(n=null==(t=jn.current)?void 0:t.cell)?n:[],g=(0,r.Z)(p,2),m=g[0],y=g[1];if("cell"===e.kind){if(vi.current=void 0,yi.current=[s,d],0===s&&Rn){if(!0===Tn&&d===V||"number"===I||"none"===xe)return;var b=ri(e.location);if(b.kind!==rt.Marker)return;if(void 0!==Yt){var w=xr(b);He((null==w?void 0:w.kind)===rt.Marker);var x=null==(i=null==w?void 0:w.onClick)?void 0:i.call(w,v(v({},e),{},{cell:b,posX:e.localEventX,posY:e.localEventY,bounds:e.bounds,theme:gi(b,e.location),preventDefault:function(){}}));if(void 0===x||x.checked===b.checked)return}k(void 0),Zr();var D=h.hasIndex(d),C=pi.current;if("multi"===xe&&(e.shiftKey||!0===e.isLongTouch)&&void 0!==C&&h.hasIndex(C)){var S=[Math.min(C,d),Math.max(C,d)+1];l||"multi"===Be?or(void 0,S,!0):or(bt.fromSingleSelection(S),void 0,l)}else l||e.isTouch||"multi"===Be?D?or(h.remove(d),void 0,!0):(or(void 0,d,!0),pi.current=d):D&&1===h.length?or(bt.empty(),void 0,a):(or(bt.fromSingleSelection(d),void 0,a),pi.current=d)}else if(s>=_n&&Tn&&d===V){var E=hi(s);fi(null!=E?E:s)}else if(m!==s||y!==d){var F=ri(e.location),A=xr(F);if(void 0!==(null==A?void 0:A.onSelect)){var M=!1;if(A.onSelect(v(v({},e),{},{cell:F,posX:e.localEventX,posY:e.localEventY,bounds:e.bounds,preventDefault:function(){return M=!0},theme:gi(F,e.location)})),M)return}var R=Pn&&d===V,_=Pn&&void 0!==jn&&(null==(o=jn.current)?void 0:o.cell[1])===V;if(!e.shiftKey&&!0!==e.isLongTouch||void 0===m||void 0===y||void 0===jn.current||_)ir({cell:[s,d],range:{x:s,y:d,width:1,height:1}},!0,a,"click"),pi.current=void 0,k(void 0),Zr();else{if(R)return;var T=Math.min(s,m),P=Math.max(s,m),z=Math.min(d,y),O=Math.max(d,y);ir(v(v({},jn.current),{},{range:{x:T,y:z,width:P-T+1,height:O-z+1}}),!0,a,"click"),pi.current=void 0,Zr()}}}else if("header"===e.kind)if(yi.current=[s,d],k(void 0),Rn&&0===s)pi.current=void 0,vi.current=void 0,"multi"===xe&&(h.length!==V?or(bt.fromSingleSelection([0,V]),void 0,a):or(bt.empty(),void 0,a),Zr());else{var L=vi.current;if("multi"===we&&(e.shiftKey||!0===e.isLongTouch)&&void 0!==L&&f.hasIndex(L)){var B=[Math.min(L,s),Math.max(L,s)+1];u?lr(void 0,B,a):lr(bt.fromSingleSelection(B),void 0,a)}else u?(f.hasIndex(s)?lr(f.remove(s),void 0,a):lr(void 0,s,a),vi.current=s):"none"!==we&&(lr(bt.fromSingleSelection(s),void 0,a),vi.current=s);pi.current=void 0,Zr()}else e.kind===tt?yi.current=[s,d]:e.kind===nt&&(Gn(ni,!1),k(void 0),Zr(),null==Qe||Qe(),pi.current=void 0,vi.current=void 0)}),[fi,we,Zr,xr,hi,ri,jn,Rn,Pn,Qe,Yt,_n,I,xe,Be,V,ir,Gn,lr,or,Tn,gi]),yi=e.useRef(),bi=e.useRef(Br),wi=e.useRef(),ki=e.useCallback((function(e){var t,n;if(Ai.current=!1,bi.current=Pr.current,0===e.button){var r=performance.now(),i=r-(null!=(n=null==(t=wi.current)?void 0:t.time)?n:-1e3)<250;wi.current={wasDoubleClick:i,time:r,location:e.location};var o="cell"===e.kind&&e.isFillHandle;!o&&"cell"!==e.kind&&e.isEdge||(T({previousSelection:jn,fillHandle:o}),yi.current=void 0,e.isTouch||mi(e))}else wi.current=void 0}),[jn,mi]),xi=e.useState(),Di=(0,r.Z)(xi,2),Ci=Di[0],Si=Di[1],Ei=e.useCallback((function(e){if(e.kind===tt&&"multi"===we){var t=Zn.value?e.metaKey:e.ctrlKey,n=(0,r.Z)(e.location,1)[0],i=jn.columns;if(!(n<_n)){for(var o=Ar[n],a=n,l=n,u=n-1;u>=_n&&Ut(o.group,Ar[u].group);u--)a--;for(var c=n+1;c=V?e.height-1:e.height,tx:i,ty:o,extras:{selected:a,freezeRegion:0===Ie?void 0:{x:0,y:e.y,width:Ie,height:e.height}}};kr([t,n,r]),Hr(l),null==it||it(l,l.tx,l.ty,l.extras)}),[Li,_n,Tn,V,Ie,Hr,it]),Hi=Tt(he,e.useCallback((function(e,t){null==he||he(e-_n,t-_n),"none"!==we&&lr(bt.fromSingleSelection(t),void 0,!0)}),[we,he,_n,lr])),Ni=e.useRef(!1),ji=e.useCallback((function(e){0===e.location[0]&&_n>0?e.preventDefault():(null==Re||Re(v(v({},e),{},{location:[e.location[0]-_n,e.location[1]]})),e.defaultPrevented()||(Ni.current=!0),T(void 0))}),[Re,_n]),Wi=e.useCallback((function(){Ni.current=!1}),[]),Ui=e.useCallback((function(e){var t;if(void 0!==_&&0===(null==(t=wi.current)?void 0:t.location[0])&&0===e.location[0]&&1===_n&&"multi"===xe&&_.previousSelection&&!_.previousSelection.rows.hasIndex(wi.current.location[1])&&jn.rows.hasIndex(wi.current.location[1])){var n=Math.min(wi.current.location[1],e.location[1]),i=Math.max(wi.current.location[1],e.location[1])+1;or(bt.fromSingleSelection([n,i]),void 0,!1)}if(void 0!==_&&void 0!==jn.current&&!Ni.current&&("rect"===ye||"multi-rect"===ye)){var o=(0,r.Z)(jn.current.cell,2),a=o[0],l=o[1],u=(0,r.Z)(e.location,2),c=u[0],s=u[1];if(s<0&&(s=Pr.current.y),Pn&&l===V)return;if(Pn&&s===V){if(e.kind!==nt)return;s--}var d=(c=Math.max(c,_n))-a,f=s-l,h={x:d>=0?a:c,y:f>=0?l:s,width:Math.abs(d)+1,height:Math.abs(f)+1};ir(v(v({},jn.current),{},{range:h}),!0,!1,"drag")}null==qe||qe(v(v({},e),{},{location:[e.location[0]-_n,e.location[1]]}))}),[_,_n,xe,jn,ye,qe,or,Pn,V,ir]),Vi=e.useCallback((function(e){if(void 0!==jn.current){var t=(0,r.Z)(e,2),n=t[0],i=t[1],o=(0,r.Z)(jn.current.cell,2),a=o[0],l=o[1],u=jn.current.range,c=u.x,s=u.x+u.width,d=u.y,f=u.y+u.height;if(0!==i)switch(i){case 2:d=l,ui(0,f=V,"vertical");break;case-2:f=l+1,ui(0,d=0,"vertical");break;case 1:dl+1?(f--,ui(0,f,"vertical")):(d=Math.max(0,d-1),ui(0,d,"vertical"));break;default:Ne()}if(0!==n)if(2===n)s=Ar.length,c=a,ui(s-1-_n,0,"horizontal");else if(-2===n)s=a+1,ui((c=_n)-_n,0,"horizontal");else{var h=[];if(void 0!==$n){var p=$n({x:c,y:d,width:s-c-_n,height:f-d},Wn.current.signal);"object"===typeof p&&(h=function(e){return F(A(A(e).filter((function(e){return void 0!==e.span})).map((function(e){var t,n,r,i;return M((null!=(n=null==(t=e.span)?void 0:t[0])?n:0)+1,(null!=(i=null==(r=e.span)?void 0:r[1])?i:0)+1)}))))}(p))}if(1===n){var v=!1;if(c0){var g=M(c+1,a+1).find((function(e){return!h.includes(e-_n)}));void 0!==g&&(c=g,v=!0)}else c++,v=!0;v&&ui(c,0,"horizontal")}v||(s=Math.min(Ar.length,s+1),ui(s-1-_n,0,"horizontal"))}else if(-1===n){var m=!1;if(s>a+1){if(h.length>0){var y=M(s-1,a,-1).find((function(e){return!h.includes(e-_n)}));void 0!==y&&(s=y,m=!0)}else s--,m=!0;m&&ui(s-_n,0,"horizontal")}m||(c=Math.max(_n,c-1),ui(c-_n,0,"horizontal"))}else Ne()}ir({cell:jn.current.cell,range:{x:c,y:d,width:s-c,height:f-d}},!0,!1,"keyboard-select")}}),[$n,jn,Ar.length,_n,V,ui,ir]),$i=e.useCallback((function(e,t,n,r){var i=Kr-(n?0:1);if(e=E(e,_n,Dr.length-1+_n),t=E(t,0,i),e===(null==Li?void 0:Li[0])&&t===(null==Li?void 0:Li[1]))return!1;if(r&&void 0!==jn.current){var o=h(jn.current.rangeStack);(jn.current.range.width>1||jn.current.range.height>1)&&o.push(jn.current.range),Gn(v(v({},jn),{},{current:{cell:[e,t],range:{x:e,y:t,width:1,height:1},rangeStack:o}}),!0)}else ir({cell:[e,t],range:{x:e,y:t,width:1,height:1}},!0,!1,"keyboard-nav");return void 0!==z.current&&z.current[0]===e&&z.current[1]===t&&(z.current=void 0),ui(e-_n,t),!0}),[Kr,_n,Dr.length,Li,jn,ui,Gn,ir]),Zi=e.useCallback((function(e,t){void 0!==(null==w?void 0:w.cell)&&void 0!==e&&ht(e)&&(Xr([{location:w.cell,value:e}]),window.requestAnimationFrame((function(){var e;null==(e=$r.current)||e.damage([{cell:w.cell}])}))),Zr(!0),k(void 0);var n=(0,r.Z)(t,2),i=n[0],o=n[1];if(void 0!==jn.current&&(0!==i||0!==o)){var a=jn.current.cell[1]===Kr-1&&void 0!==e;$i(E(jn.current.cell[0]+i,0,Ar.length-1),E(jn.current.cell[1]+o,0,Kr-1),a,!1)}null==X||X(e,t)}),[null==w?void 0:w.cell,Zr,jn,X,Xr,Kr,$i,Ar.length]),Ki=e.useMemo((function(){return"gdg-overlay-".concat(Qr++)}),[]),Xi=e.useCallback((function(e){var t=function(){var t=c(l().mark((function t(){var n,i,o,a,u,c,s,f,h,p,g,m,y,b,D,C,S,E,F,A,M,R,_,T,P,z,O,I,L,B,H,N,j,W,Z,X,Y,G,q,Q,J,ee,te,ne,re,ie,oe,ae,le;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(T=function(e){var t,n,r;Zr();for(var i=[],o=e.x;o1)){t.next=52;break}Fi(!1),s(),t.next=136;break;case 52:if(!(An.rightFill&&dr("primary+_82",e)&&jn.current.range.width>1)){t.next=70;break}Q=[],J=jn.current.range,ee=0;case 56:if(!(eeG||G>E.y+E.height||E.x>Y||Y>E.x+E.width)){t.next=134;break}return t.abrupt("return");case 134:ai(b,!0,y),s();case 136:$i(Y,G,!1,q)&&s();case 138:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t()}),[ce,w,jn,An.selectAll,An.search,An.selectColumn,An.selectRow,An.downFill,An.rightFill,An.pageDown,An.pageUp,An.first,An.last,An.clear,we,xe,$,_n,$i,Gn,Qe,U.length,V,Ki,Zr,Xr,Dt,xr,tr,Ar.length,lr,or,Tn,hi,fi,K,ai,Fi,ri,Vi,ye,Pn]),Yi=e.useCallback((function(e,t){var n=e.location[0]-_n;if("header"===e.kind&&(null==re||re(n,v(v({},e),{},{preventDefault:t}))),e.kind===tt){if(n<0)return;null==oe||oe(n,v(v({},e),{},{preventDefault:t}))}if("cell"===e.kind){var i=(0,r.Z)(e.location,2),o=i[0],a=i[1];null==te||te([n,a],v(v({},e),{},{preventDefault:t})),function(e,t){var n=(0,r.Z)(t,2),i=n[0],o=n[1];if(e.columns.hasIndex(i)||e.rows.hasIndex(o))return!0;if(void 0!==e.current){if(e.current.cell[0]===i&&e.current.cell[1]===o)return!0;var a,l=d([e.current.range].concat(h(e.current.rangeStack)));try{for(l.s();!(a=l.n()).done;){var u=a.value;if(i>=u.x&&i=u.y&&o=V)){e.next=84;break}return e.abrupt("break",88);case 84:X=d(K.entries());try{for(X.s();!(G=X.n()).done;)q=(0,r.Z)(G.value,2),Q=q[0],J=q[1],te=ri(ee=[Q+L,Z+B]),void 0!==(ne=f(te,ee,J))&&H.push(ne)}catch(l){X.e(l)}finally{X.f()}case 86:e.next=80;break;case 88:e.next=93;break;case 90:e.prev=90,e.t1=e.catch(78),W.e(e.t1);case 93:return e.prev=93,W.f(),e.finish(93);case 96:0;case 97:Xr(H),null==(s=$r.current)||s.damage(H.map((function(e){return{cell:e.location}})));case 99:case"end":return e.stop()}}),e,null,[[17,44,47,50],[78,90,93,96]])})));return function(t){return e.apply(this,arguments)}}(),[Y,xr,ri,jn,An.paste,Xr,Te,_n,V]);_t("paste",Gi,window,!1,!0);var qi=e.useCallback(function(){var e=c(l().mark((function e(t,n){var r,i,o,a,u,c,s,f,p,v,g,m,y,b,w,k,x;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(An.copy){e.next=2;break}return e.abrupt("return");case 2:if(o=!0===n||!0===(null==(r=P.current)?void 0:r.contains(document.activeElement))||!0===(null==(i=D.current)?void 0:i.contains(document.activeElement)),a=jn.columns,u=jn.rows,c=function(e,n){ze?gr([n.map((function(e){return{kind:Xe.Text,data:U[e].title,displayData:U[e].title,allowOverlay:!1}}))].concat(h(e)),n,t):gr(e,n,t)},!o||void 0===$n){e.next=55;break}if(void 0===jn.current){e.next=16;break}if("object"===typeof(s=$n(jn.current.range,Wn.current.signal))){e.next=13;break}return e.next=12,s();case 12:s=e.sent;case 13:c(s,M(jn.current.range.x-_n,jn.current.range.x+jn.current.range.width-_n)),e.next=55;break;case 16:if(!(void 0!==u&&u.length>0)){e.next=29;break}if(f=h(u),p=f.map((function(e){var t=$n({x:_n,y:e,width:U.length-_n,height:1},Wn.current.signal);return"object"===typeof t?t[0]:t().then((function(e){return e[0]}))})),!p.some((function(e){return e instanceof Promise}))){e.next=26;break}return e.next=22,Promise.all(p);case 22:v=e.sent,c(v,M(U.length)),e.next=27;break;case 26:c(p,M(U.length));case 27:e.next=55;break;case 29:if(!(a.length>0)){e.next=55;break}g=[],m=[],y=d(a),e.prev=33,y.s();case 35:if((b=y.n()).done){e.next=46;break}if(w=b.value,"object"===typeof(k=$n({x:w,y:0,width:1,height:V},Wn.current.signal))){e.next=42;break}return e.next=41,k();case 41:k=e.sent;case 42:g.push(k),m.push(w-_n);case 44:e.next=35;break;case 46:e.next=51;break;case 48:e.prev=48,e.t0=e.catch(33),y.e(e.t0);case 51:return e.prev=51,y.f(),e.finish(51);case 54:1===g.length?c(g[0],m):(x=g.reduce((function(e,t){return e.map((function(e,n){return[].concat(h(e),h(t[n]))}))})),c(x,m));case 55:case"end":return e.stop()}}),e,null,[[33,48,51,54]])})));return function(t,n){return e.apply(this,arguments)}}(),[U,$n,jn,An.copy,_n,V,ze]);_t("copy",qi,window,!1,!1);var Qi=e.useCallback((function(e,t){if(0!==e.length&&-1!==t){var n=(0,r.Z)(e[t],2),i=n[0],o=n[1];void 0!==z.current&&z.current[0]===i&&z.current[1]===o||(z.current=[i,o],$i(i,o,!1,!1))}}),[$i]),Ji=null!=(s=null==(u=null==ot?void 0:ot.current)?void 0:u.cell)?s:[],eo=(0,r.Z)(Ji,2),to=eo[0],no=eo[1],ro=e.useRef(ui);ro.current=ui,e.useLayoutEffect((function(){var e,t,n,r;Or.current||void 0===to||void 0===no||to===(null==(t=null==(e=Yn.current)?void 0:e.current)?void 0:t.cell[0])&&no===(null==(r=null==(n=Yn.current)?void 0:n.current)?void 0:r.cell[1])||ro.current(to,no),Or.current=!1}),[to,no]);var io=e.useMemo((function(){return!0===Tn&&!0===(null==Ct?void 0:Ct.tint)?bt.fromSingleSelection(Kr-1):bt.empty()}),[Kr,Tn,null==Ct?void 0:Ct.tint]),oo=e.useCallback((function(e){var t;return"boolean"===typeof Ft?Ft:null==(t=null==Ft?void 0:Ft(e-_n))||t}),[_n,Ft]),ao=e.useMemo((function(){if(void 0===Ci||null===D.current)return null;var t=Ci.bounds,n=Ci.group,r=D.current.getBoundingClientRect();return e.createElement(ur,{bounds:t,group:n,canvasBounds:r,onClose:function(){return Si(void 0)},onFinish:function(e){Si(void 0),null==ae||ae(n,e)}})}),[ae,Ci]),lo=Math.min(Ar.length,Ie+(Rn?1:0));e.useImperativeHandle(n,(function(){return{appendRow:function(e){return fi(e+_n)},updateCells:function(e){var t;return 0!==_n&&(e=e.map((function(e){return{cell:[e.cell[0]+_n,e.cell[1]]}}))),null==(t=$r.current)?void 0:t.damage(e)},getBounds:function(e,t){var n;return null==(n=$r.current)?void 0:n.getBounds(e+_n,t)},focus:function(){var e;return null==(e=$r.current)?void 0:e.focus()},emit:function(){var e=c(l().mark((function e(t){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=t,e.next="delete"===e.t0?3:"fill-right"===e.t0?5:"fill-down"===e.t0?7:"copy"===e.t0?9:"paste"===e.t0?12:15;break;case 3:return Xi({bounds:void 0,cancel:function(){},stopPropagation:function(){},preventDefault:function(){},ctrlKey:!1,key:"Delete",keyCode:46,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0}),e.abrupt("break",15);case 5:return Xi({bounds:void 0,cancel:function(){},stopPropagation:function(){},preventDefault:function(){},ctrlKey:!0,key:"r",keyCode:82,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0}),e.abrupt("break",15);case 7:return Xi({bounds:void 0,cancel:function(){},stopPropagation:function(){},preventDefault:function(){},ctrlKey:!0,key:"d",keyCode:68,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0}),e.abrupt("break",15);case 9:return e.next=11,qi(void 0,!0);case 11:case 14:return e.abrupt("break",15);case 12:return e.next=14,Gi();case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),scrollTo:ui}}),[fi,qi,Xi,Gi,_n,ui]);var uo=null!=Li?Li:[],co=(0,r.Z)(uo,2),so=co[0],fo=co[1],ho=e.useCallback((function(e){var t=(0,r.Z)(e,2),n=t[0],i=t[1];-1!==i?so===n&&fo===i||(ir({cell:e,range:{x:n,y:i,width:1,height:1}},!0,!1,"keyboard-nav"),ui(n,i)):"none"!==we&&(lr(bt.fromSingleSelection(n),void 0,!1),Zr())}),[we,Zr,ui,so,fo,ir,lr]),po=e.useState(!1),vo=(0,r.Z)(po,2),go=vo[0],mo=vo[1],yo=e.useRef(R((function(e){mo(e)}),5)),bo=e.useCallback((function(){yo.current(!0),void 0===jn.current&&0===jn.columns.length&&0===jn.rows.length&&void 0===_&&ir({cell:[_n,Vr],range:{x:_n,y:Vr,width:1,height:1}},!0,!1,"keyboard-select")}),[Vr,jn,_,_n,ir]),wo=e.useCallback((function(){yo.current(!1)}),[]),ko=e.useMemo((function(){var e,t,n=null!=(e=null==Bt?void 0:Bt.scrollbarWidthOverride)?e:function(){if(void 0!==jt)return jt;var e=document.createElement("p");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");t.id="testScrollbar",t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.append(e),document.body.append(t);var n=e.offsetWidth;t.style.overflow="scroll";var r=e.offsetWidth;return n===r&&(r=t.clientWidth),t.remove(),jt=n-r}(),r=V+(Tn?1:0);if("number"===typeof xn)t=Sr+r*xn;else{for(var i=0,o=Math.min(r,10),a=0;a.5?"#000000":"#FFFFFF"),r.font="bold 14px sans-serif roboto",r.fillText(i,a+u/4,l+c/2+1.5),r.restore(),!0}})}),(0,ui.jsx)("div",{className:"footer",children:"Made with \u2764\ufe0f by ADAM BLVCK | Source Code"})]})})},si=function(e){e&&e instanceof Function&&n.e(787).then(n.bind(n,787)).then((function(t){var n=t.getCLS,r=t.getFID,i=t.getFCP,o=t.getLCP,a=t.getTTFB;n(e),r(e),i(e),o(e),a(e)}))};t.createRoot(document.getElementById("root")).render((0,ui.jsx)(e.StrictMode,{children:(0,ui.jsx)(ci,{})})),si()}()}(); +//# sourceMappingURL=main.83cb6605.js.map \ No newline at end of file diff --git a/static/js/main.83cb6605.js.LICENSE.txt b/static/js/main.83cb6605.js.LICENSE.txt new file mode 100644 index 0000000..b974dd4 --- /dev/null +++ b/static/js/main.83cb6605.js.LICENSE.txt @@ -0,0 +1,47 @@ +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/static/js/main.83cb6605.js.map b/static/js/main.83cb6605.js.map new file mode 100644 index 0000000..57e763b --- /dev/null +++ b/static/js/main.83cb6605.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/main.83cb6605.js","mappings":";sCAAA,OAOC,WACA,aAEA,IAAIA,EAAS,CAAC,EAAEC,eAGhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIG,EAAMF,UAAUD,GACpB,GAAKG,EAAL,CAEA,IAAIC,SAAiBD,EAErB,GAAgB,WAAZC,GAAoC,WAAZA,EAC3BL,EAAQM,KAAKF,QACP,GAAIG,MAAMC,QAAQJ,IACxB,GAAIA,EAAID,OAAQ,CACf,IAAIM,EAAQV,EAAWW,MAAM,KAAMN,GAC/BK,GACHT,EAAQM,KAAKG,EAEf,OACM,GAAgB,WAAZJ,EAAsB,CAChC,GAAID,EAAIO,WAAaC,OAAOC,UAAUF,WAAaP,EAAIO,SAASA,WAAWG,SAAS,iBAAkB,CACrGd,EAAQM,KAAKF,EAAIO,YACjB,QACD,CAEA,IAAK,IAAII,KAAOX,EACXP,EAAOmB,KAAKZ,EAAKW,IAAQX,EAAIW,IAChCf,EAAQM,KAAKS,EAGhB,CAxBkB,CAyBnB,CAEA,OAAOf,EAAQiB,KAAK,IACrB,CAEqCC,EAAOC,SAC3CpB,EAAWqB,QAAUrB,EACrBmB,EAAOC,QAAUpB,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIF,CApDA,wBCPD,IAIIsB,EAJYC,EAAQ,KAITC,CAHJD,EAAQ,MAGY,YAE/BJ,EAAOC,QAAUE,wBCNjB,IAAIG,EAAYF,EAAQ,MACpBG,EAAaH,EAAQ,MACrBI,EAAUJ,EAAQ,MAClBK,EAAUL,EAAQ,MAClBM,EAAUN,EAAQ,MAStB,SAASO,EAAKC,GACZ,IAAIC,GAAS,EACT5B,EAAoB,MAAX2B,EAAkB,EAAIA,EAAQ3B,OAG3C,IADA6B,KAAKC,UACIF,EAAQ5B,GAAQ,CACvB,IAAI+B,EAAQJ,EAAQC,GACpBC,KAAKG,IAAID,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAL,EAAKhB,UAAUoB,MAAQT,EACvBK,EAAKhB,UAAkB,OAAIY,EAC3BI,EAAKhB,UAAUuB,IAAMV,EACrBG,EAAKhB,UAAUwB,IAAMV,EACrBE,EAAKhB,UAAUsB,IAAMP,EAErBV,EAAOC,QAAUU,wBC/BjB,IAAIS,EAAiBhB,EAAQ,MACzBiB,EAAkBjB,EAAQ,MAC1BkB,EAAelB,EAAQ,MACvBmB,EAAenB,EAAQ,MACvBoB,EAAepB,EAAQ,MAS3B,SAASqB,EAAUb,GACjB,IAAIC,GAAS,EACT5B,EAAoB,MAAX2B,EAAkB,EAAIA,EAAQ3B,OAG3C,IADA6B,KAAKC,UACIF,EAAQ5B,GAAQ,CACvB,IAAI+B,EAAQJ,EAAQC,GACpBC,KAAKG,IAAID,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAS,EAAU9B,UAAUoB,MAAQK,EAC5BK,EAAU9B,UAAkB,OAAI0B,EAChCI,EAAU9B,UAAUuB,IAAMI,EAC1BG,EAAU9B,UAAUwB,IAAMI,EAC1BE,EAAU9B,UAAUsB,IAAMO,EAE1BxB,EAAOC,QAAUwB,wBC/BjB,IAIIC,EAJYtB,EAAQ,KAIdC,CAHCD,EAAQ,MAGO,OAE1BJ,EAAOC,QAAUyB,wBCNjB,IAAIC,EAAgBvB,EAAQ,MACxBwB,EAAiBxB,EAAQ,MACzByB,EAAczB,EAAQ,MACtB0B,EAAc1B,EAAQ,MACtB2B,EAAc3B,EAAQ,MAS1B,SAAS4B,EAASpB,GAChB,IAAIC,GAAS,EACT5B,EAAoB,MAAX2B,EAAkB,EAAIA,EAAQ3B,OAG3C,IADA6B,KAAKC,UACIF,EAAQ5B,GAAQ,CACvB,IAAI+B,EAAQJ,EAAQC,GACpBC,KAAKG,IAAID,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAgB,EAASrC,UAAUoB,MAAQY,EAC3BK,EAASrC,UAAkB,OAAIiC,EAC/BI,EAASrC,UAAUuB,IAAMW,EACzBG,EAASrC,UAAUwB,IAAMW,EACzBE,EAASrC,UAAUsB,IAAMc,EAEzB/B,EAAOC,QAAU+B,wBC/BjB,IAIIC,EAJY7B,EAAQ,KAIVC,CAHHD,EAAQ,MAGW,WAE9BJ,EAAOC,QAAUgC,wBCNjB,IAIIC,EAJY9B,EAAQ,KAIdC,CAHCD,EAAQ,MAGO,OAE1BJ,EAAOC,QAAUiC,uBCNjB,IAAIF,EAAW5B,EAAQ,MACnB+B,EAAc/B,EAAQ,MACtBgC,EAAchC,EAAQ,MAU1B,SAASiC,EAASC,GAChB,IAAIzB,GAAS,EACT5B,EAAmB,MAAVqD,EAAiB,EAAIA,EAAOrD,OAGzC,IADA6B,KAAKyB,SAAW,IAAIP,IACXnB,EAAQ5B,GACf6B,KAAK0B,IAAIF,EAAOzB,GAEpB,CAGAwB,EAAS1C,UAAU6C,IAAMH,EAAS1C,UAAUP,KAAO+C,EACnDE,EAAS1C,UAAUwB,IAAMiB,EAEzBpC,EAAOC,QAAUoC,wBC1BjB,IAAIZ,EAAYrB,EAAQ,MACpBqC,EAAarC,EAAQ,KACrBsC,EAActC,EAAQ,KACtBuC,EAAWvC,EAAQ,KACnBwC,EAAWxC,EAAQ,MACnByC,EAAWzC,EAAQ,MASvB,SAAS0C,EAAMlC,GACb,IAAImC,EAAOjC,KAAKyB,SAAW,IAAId,EAAUb,GACzCE,KAAKkC,KAAOD,EAAKC,IACnB,CAGAF,EAAMnD,UAAUoB,MAAQ0B,EACxBK,EAAMnD,UAAkB,OAAI+C,EAC5BI,EAAMnD,UAAUuB,IAAMyB,EACtBG,EAAMnD,UAAUwB,IAAMyB,EACtBE,EAAMnD,UAAUsB,IAAM4B,EAEtB7C,EAAOC,QAAU6C,wBC1BjB,IAGIG,EAHO7C,EAAQ,MAGD6C,OAElBjD,EAAOC,QAAUgD,wBCLjB,IAGIC,EAHO9C,EAAQ,MAGG8C,WAEtBlD,EAAOC,QAAUiD,wBCLjB,IAIIC,EAJY/C,EAAQ,KAIVC,CAHHD,EAAQ,MAGW,WAE9BJ,EAAOC,QAAUkD,oBCejBnD,EAAOC,QAXP,SAAyBmD,EAAOC,EAAQC,EAAUC,GAIhD,IAHA,IAAI1C,GAAS,EACT5B,EAAkB,MAATmE,EAAgB,EAAIA,EAAMnE,SAE9B4B,EAAQ5B,GAAQ,CACvB,IAAIuE,EAAQJ,EAAMvC,GAClBwC,EAAOE,EAAaC,EAAOF,EAASE,GAAQJ,EAC9C,CACA,OAAOG,CACT,oBCKAvD,EAAOC,QAfP,SAAqBmD,EAAOK,GAM1B,IALA,IAAI5C,GAAS,EACT5B,EAAkB,MAATmE,EAAgB,EAAIA,EAAMnE,OACnCyE,EAAW,EACXC,EAAS,KAEJ9C,EAAQ5B,GAAQ,CACvB,IAAIuE,EAAQJ,EAAMvC,GACd4C,EAAUD,EAAO3C,EAAOuC,KAC1BO,EAAOD,KAAcF,EAEzB,CACA,OAAOG,CACT,wBCtBA,IAAIC,EAAcxD,EAAQ,MAgB1BJ,EAAOC,QALP,SAAuBmD,EAAOI,GAE5B,SADsB,MAATJ,EAAgB,EAAIA,EAAMnE,SACpB2E,EAAYR,EAAOI,EAAO,IAAM,CACrD,oBCOAxD,EAAOC,QAZP,SAA2BmD,EAAOI,EAAOK,GAIvC,IAHA,IAAIhD,GAAS,EACT5B,EAAkB,MAATmE,EAAgB,EAAIA,EAAMnE,SAE9B4B,EAAQ5B,GACf,GAAI4E,EAAWL,EAAOJ,EAAMvC,IAC1B,OAAO,EAGX,OAAO,CACT,wBCnBA,IAAIiD,EAAY1D,EAAQ,MACpB2D,EAAc3D,EAAQ,MACtBd,EAAUc,EAAQ,MAClB4D,EAAW5D,EAAQ,MACnB6D,EAAU7D,EAAQ,MAClB8D,EAAe9D,EAAQ,MAMvBxB,EAHcc,OAAOC,UAGQf,eAqCjCoB,EAAOC,QA3BP,SAAuBuD,EAAOW,GAC5B,IAAIC,EAAQ9E,EAAQkE,GAChBa,GAASD,GAASL,EAAYP,GAC9Bc,GAAUF,IAAUC,GAASL,EAASR,GACtCe,GAAUH,IAAUC,IAAUC,GAAUJ,EAAaV,GACrDgB,EAAcJ,GAASC,GAASC,GAAUC,EAC1CZ,EAASa,EAAcV,EAAUN,EAAMvE,OAAQwF,QAAU,GACzDxF,EAAS0E,EAAO1E,OAEpB,IAAK,IAAIY,KAAO2D,GACTW,IAAavF,EAAekB,KAAK0D,EAAO3D,IACvC2E,IAEQ,UAAP3E,GAECyE,IAAkB,UAAPzE,GAA0B,UAAPA,IAE9B0E,IAAkB,UAAP1E,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDoE,EAAQpE,EAAKZ,KAElB0E,EAAOvE,KAAKS,GAGhB,OAAO8D,CACT,oBC1BA3D,EAAOC,QAXP,SAAkBmD,EAAOE,GAKvB,IAJA,IAAIzC,GAAS,EACT5B,EAAkB,MAATmE,EAAgB,EAAIA,EAAMnE,OACnC0E,EAAStE,MAAMJ,KAEV4B,EAAQ5B,GACf0E,EAAO9C,GAASyC,EAASF,EAAMvC,GAAQA,EAAOuC,GAEhD,OAAOO,CACT,oBCCA3D,EAAOC,QAXP,SAAmBmD,EAAOd,GAKxB,IAJA,IAAIzB,GAAS,EACT5B,EAASqD,EAAOrD,OAChByF,EAAStB,EAAMnE,SAEV4B,EAAQ5B,GACfmE,EAAMsB,EAAS7D,GAASyB,EAAOzB,GAEjC,OAAOuC,CACT,oBCKApD,EAAOC,QAZP,SAAmBmD,EAAOK,GAIxB,IAHA,IAAI5C,GAAS,EACT5B,EAAkB,MAATmE,EAAgB,EAAIA,EAAMnE,SAE9B4B,EAAQ5B,GACf,GAAIwE,EAAUL,EAAMvC,GAAQA,EAAOuC,GACjC,OAAO,EAGX,OAAO,CACT,wBCpBA,IAAIuB,EAAKvE,EAAQ,MAoBjBJ,EAAOC,QAVP,SAAsBmD,EAAOvD,GAE3B,IADA,IAAIZ,EAASmE,EAAMnE,OACZA,KACL,GAAI0F,EAAGvB,EAAMnE,GAAQ,GAAIY,GACvB,OAAOZ,EAGX,OAAQ,CACV,wBClBA,IAAI2F,EAAWxE,EAAQ,MAoBvBJ,EAAOC,QAPP,SAAwB4E,EAAYxB,EAAQC,EAAUC,GAIpD,OAHAqB,EAASC,GAAY,SAASrB,EAAO3D,EAAKgF,GACxCxB,EAAOE,EAAaC,EAAOF,EAASE,GAAQqB,EAC9C,IACOtB,CACT,wBClBA,IAAIuB,EAAiB1E,EAAQ,MAwB7BJ,EAAOC,QAbP,SAAyB8E,EAAQlF,EAAK2D,GACzB,aAAP3D,GAAsBiF,EACxBA,EAAeC,EAAQlF,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAAS2D,EACT,UAAY,IAGduB,EAAOlF,GAAO2D,CAElB,oBCDAxD,EAAOC,QAZP,SAAmB+E,EAAQC,EAAOC,GAShC,OARIF,IAAWA,SACCG,IAAVD,IACFF,EAASA,GAAUE,EAAQF,EAASE,QAExBC,IAAVF,IACFD,EAASA,GAAUC,EAAQD,EAASC,IAGjCD,CACT,wBCnBA,IAAII,EAAahF,EAAQ,MAWrBwE,EAViBxE,EAAQ,KAUdiF,CAAeD,GAE9BpF,EAAOC,QAAU2E,oBCUjB5E,EAAOC,QAZP,SAAuBmD,EAAOK,EAAW6B,EAAWC,GAIlD,IAHA,IAAItG,EAASmE,EAAMnE,OACf4B,EAAQyE,GAAaC,EAAY,GAAK,GAElCA,EAAY1E,MAAYA,EAAQ5B,GACtC,GAAIwE,EAAUL,EAAMvC,GAAQA,EAAOuC,GACjC,OAAOvC,EAGX,OAAQ,CACV,wBCrBA,IAAI2E,EAAYpF,EAAQ,MACpBqF,EAAgBrF,EAAQ,MAoC5BJ,EAAOC,QAvBP,SAASyF,EAAYtC,EAAOuC,EAAOlC,EAAWmC,EAAUjC,GACtD,IAAI9C,GAAS,EACT5B,EAASmE,EAAMnE,OAKnB,IAHAwE,IAAcA,EAAYgC,GAC1B9B,IAAWA,EAAS,MAEX9C,EAAQ5B,GAAQ,CACvB,IAAIuE,EAAQJ,EAAMvC,GACd8E,EAAQ,GAAKlC,EAAUD,GACrBmC,EAAQ,EAEVD,EAAYlC,EAAOmC,EAAQ,EAAGlC,EAAWmC,EAAUjC,GAEnD6B,EAAU7B,EAAQH,GAEVoC,IACVjC,EAAOA,EAAO1E,QAAUuE,EAE5B,CACA,OAAOG,CACT,wBCnCA,IAaIkC,EAbgBzF,EAAQ,IAad0F,GAEd9F,EAAOC,QAAU4F,wBCfjB,IAAIA,EAAUzF,EAAQ,MAClB2F,EAAO3F,EAAQ,MAcnBJ,EAAOC,QAJP,SAAoB8E,EAAQzB,GAC1B,OAAOyB,GAAUc,EAAQd,EAAQzB,EAAUyC,EAC7C,wBCbA,IAAIC,EAAW5F,EAAQ,MACnB6F,EAAQ7F,EAAQ,MAsBpBJ,EAAOC,QAZP,SAAiB8E,EAAQmB,GAMvB,IAHA,IAAIrF,EAAQ,EACR5B,GAHJiH,EAAOF,EAASE,EAAMnB,IAGJ9F,OAED,MAAV8F,GAAkBlE,EAAQ5B,GAC/B8F,EAASA,EAAOkB,EAAMC,EAAKrF,OAE7B,OAAQA,GAASA,GAAS5B,EAAU8F,OAASI,CAC/C,wBCrBA,IAAIK,EAAYpF,EAAQ,MACpBd,EAAUc,EAAQ,MAkBtBJ,EAAOC,QALP,SAAwB8E,EAAQoB,EAAUC,GACxC,IAAIzC,EAASwC,EAASpB,GACtB,OAAOzF,EAAQyF,GAAUpB,EAAS6B,EAAU7B,EAAQyC,EAAYrB,GAClE,wBCjBA,IAAI9B,EAAS7C,EAAQ,MACjBiG,EAAYjG,EAAQ,MACpBkG,EAAiBlG,EAAQ,MAOzBmG,EAAiBtD,EAASA,EAAOuD,iBAAcrB,EAkBnDnF,EAAOC,QATP,SAAoBuD,GAClB,OAAa,MAATA,OACe2B,IAAV3B,EAdQ,qBADL,gBAiBJ+C,GAAkBA,KAAkB7G,OAAO8D,GAC/C6C,EAAU7C,GACV8C,EAAe9C,EACrB,oBCxBA,IAGI5E,EAHcc,OAAOC,UAGQf,eAcjCoB,EAAOC,QAJP,SAAiB8E,EAAQlF,GACvB,OAAiB,MAAVkF,GAAkBnG,EAAekB,KAAKiF,EAAQlF,EACvD,mBCJAG,EAAOC,QAJP,SAAmB8E,EAAQlF,GACzB,OAAiB,MAAVkF,GAAkBlF,KAAOH,OAAOqF,EACzC,wBCVA,IAAI0B,EAAgBrG,EAAQ,MACxBsG,EAAYtG,EAAQ,KACpBuG,EAAgBvG,EAAQ,MAiB5BJ,EAAOC,QANP,SAAqBmD,EAAOI,EAAO8B,GACjC,OAAO9B,IAAUA,EACbmD,EAAcvD,EAAOI,EAAO8B,GAC5BmB,EAAcrD,EAAOsD,EAAWpB,EACtC,wBCjBA,IAAIsB,EAAaxG,EAAQ,MACrByG,EAAezG,EAAQ,MAgB3BJ,EAAOC,QAJP,SAAyBuD,GACvB,OAAOqD,EAAarD,IAVR,sBAUkBoD,EAAWpD,EAC3C,wBCfA,IAAIsD,EAAkB1G,EAAQ,MAC1ByG,EAAezG,EAAQ,MA0B3BJ,EAAOC,QAVP,SAAS8G,EAAYvD,EAAOwD,EAAOC,EAASC,EAAYC,GACtD,OAAI3D,IAAUwD,IAGD,MAATxD,GAA0B,MAATwD,IAAmBH,EAAarD,KAAWqD,EAAaG,GACpExD,IAAUA,GAASwD,IAAUA,EAE/BF,EAAgBtD,EAAOwD,EAAOC,EAASC,EAAYH,EAAaI,GACzE,wBCzBA,IAAIrE,EAAQ1C,EAAQ,MAChBgH,EAAchH,EAAQ,MACtBiH,EAAajH,EAAQ,MACrBkH,EAAelH,EAAQ,MACvBmH,EAASnH,EAAQ,MACjBd,EAAUc,EAAQ,MAClB4D,EAAW5D,EAAQ,MACnB8D,EAAe9D,EAAQ,MAMvBoH,EAAU,qBACVC,EAAW,iBACXC,EAAY,kBAMZ9I,EAHcc,OAAOC,UAGQf,eA6DjCoB,EAAOC,QA7CP,SAAyB8E,EAAQiC,EAAOC,EAASC,EAAYS,EAAWR,GACtE,IAAIS,EAAWtI,EAAQyF,GACnB8C,EAAWvI,EAAQ0H,GACnBc,EAASF,EAAWH,EAAWF,EAAOxC,GACtCgD,EAASF,EAAWJ,EAAWF,EAAOP,GAKtCgB,GAHJF,EAASA,GAAUN,EAAUE,EAAYI,IAGhBJ,EACrBO,GAHJF,EAASA,GAAUP,EAAUE,EAAYK,IAGhBL,EACrBQ,EAAYJ,GAAUC,EAE1B,GAAIG,GAAalE,EAASe,GAAS,CACjC,IAAKf,EAASgD,GACZ,OAAO,EAETY,GAAW,EACXI,GAAW,CACb,CACA,GAAIE,IAAcF,EAEhB,OADAb,IAAUA,EAAQ,IAAIrE,GACd8E,GAAY1D,EAAaa,GAC7BqC,EAAYrC,EAAQiC,EAAOC,EAASC,EAAYS,EAAWR,GAC3DE,EAAWtC,EAAQiC,EAAOc,EAAQb,EAASC,EAAYS,EAAWR,GAExE,KArDyB,EAqDnBF,GAAiC,CACrC,IAAIkB,EAAeH,GAAYpJ,EAAekB,KAAKiF,EAAQ,eACvDqD,EAAeH,GAAYrJ,EAAekB,KAAKkH,EAAO,eAE1D,GAAImB,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAepD,EAAOvB,QAAUuB,EAC/CuD,EAAeF,EAAepB,EAAMxD,QAAUwD,EAGlD,OADAG,IAAUA,EAAQ,IAAIrE,GACf6E,EAAUU,EAAcC,EAAcrB,EAASC,EAAYC,EACpE,CACF,CACA,QAAKe,IAGLf,IAAUA,EAAQ,IAAIrE,GACfwE,EAAavC,EAAQiC,EAAOC,EAASC,EAAYS,EAAWR,GACrE,wBChFA,IAAIrE,EAAQ1C,EAAQ,MAChB2G,EAAc3G,EAAQ,MA4D1BJ,EAAOC,QA5CP,SAAqB8E,EAAQwD,EAAQC,EAAWtB,GAC9C,IAAIrG,EAAQ2H,EAAUvJ,OAClBA,EAAS4B,EACT4H,GAAgBvB,EAEpB,GAAc,MAAVnC,EACF,OAAQ9F,EAGV,IADA8F,EAASrF,OAAOqF,GACTlE,KAAS,CACd,IAAIkC,EAAOyF,EAAU3H,GACrB,GAAK4H,GAAgB1F,EAAK,GAClBA,EAAK,KAAOgC,EAAOhC,EAAK,MACtBA,EAAK,KAAMgC,GAEnB,OAAO,CAEX,CACA,OAASlE,EAAQ5B,GAAQ,CAEvB,IAAIY,GADJkD,EAAOyF,EAAU3H,IACF,GACX6H,EAAW3D,EAAOlF,GAClB8I,EAAW5F,EAAK,GAEpB,GAAI0F,GAAgB1F,EAAK,IACvB,QAAiBoC,IAAbuD,KAA4B7I,KAAOkF,GACrC,OAAO,MAEJ,CACL,IAAIoC,EAAQ,IAAIrE,EAChB,GAAIoE,EACF,IAAIvD,EAASuD,EAAWwB,EAAUC,EAAU9I,EAAKkF,EAAQwD,EAAQpB,GAEnE,UAAiBhC,IAAXxB,EACEoD,EAAY4B,EAAUD,EAAUE,EAA+C1B,EAAYC,GAC3FxD,GAEN,OAAO,CAEX,CACF,CACA,OAAO,CACT,mBChDA3D,EAAOC,QAJP,SAAmBuD,GACjB,OAAOA,IAAUA,CACnB,wBCTA,IAAIqF,EAAazI,EAAQ,MACrB0I,EAAW1I,EAAQ,KACnB2I,EAAW3I,EAAQ,MACnB4I,EAAW5I,EAAQ,MASnB6I,EAAe,8BAGfC,EAAYC,SAASxJ,UACrByJ,EAAc1J,OAAOC,UAGrB0J,EAAeH,EAAUzJ,SAGzBb,EAAiBwK,EAAYxK,eAG7B0K,EAAaC,OAAO,IACtBF,EAAavJ,KAAKlB,GAAgB4K,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhFxJ,EAAOC,QARP,SAAsBuD,GACpB,SAAKuF,EAASvF,IAAUsF,EAAStF,MAGnBqF,EAAWrF,GAAS8F,EAAaL,GAChCQ,KAAKT,EAASxF,GAC/B,wBC5CA,IAAIoD,EAAaxG,EAAQ,MACrBsJ,EAAWtJ,EAAQ,MACnByG,EAAezG,EAAQ,MA8BvBuJ,EAAiB,CAAC,EACtBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,EAc7B3J,EAAOC,QALP,SAA0BuD,GACxB,OAAOqD,EAAarD,IAClBkG,EAASlG,EAAMvE,WAAa0K,EAAe/C,EAAWpD,GAC1D,wBCzDA,IAAIoG,EAAcxJ,EAAQ,MACtByJ,EAAsBzJ,EAAQ,MAC9B0J,EAAW1J,EAAQ,MACnBd,EAAUc,EAAQ,MAClB2J,EAAW3J,EAAQ,IA0BvBJ,EAAOC,QAjBP,SAAsBuD,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACKsG,EAEW,iBAATtG,EACFlE,EAAQkE,GACXqG,EAAoBrG,EAAM,GAAIA,EAAM,IACpCoG,EAAYpG,GAEXuG,EAASvG,EAClB,wBC5BA,IAAIwG,EAAc5J,EAAQ,MACtB6J,EAAa7J,EAAQ,MAMrBxB,EAHcc,OAAOC,UAGQf,eAsBjCoB,EAAOC,QAbP,SAAkB8E,GAChB,IAAKiF,EAAYjF,GACf,OAAOkF,EAAWlF,GAEpB,IAAIpB,EAAS,GACb,IAAK,IAAI9D,KAAOH,OAAOqF,GACjBnG,EAAekB,KAAKiF,EAAQlF,IAAe,eAAPA,GACtC8D,EAAOvE,KAAKS,GAGhB,OAAO8D,CACT,wBC3BA,IAAIuG,EAAc9J,EAAQ,MACtB+J,EAAe/J,EAAQ,MACvBgK,EAA0BhK,EAAQ,KAmBtCJ,EAAOC,QAVP,SAAqBsI,GACnB,IAAIC,EAAY2B,EAAa5B,GAC7B,OAAwB,GAApBC,EAAUvJ,QAAeuJ,EAAU,GAAG,GACjC4B,EAAwB5B,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASzD,GACd,OAAOA,IAAWwD,GAAU2B,EAAYnF,EAAQwD,EAAQC,EAC1D,CACF,wBCnBA,IAAIzB,EAAc3G,EAAQ,MACtBc,EAAMd,EAAQ,MACdiK,EAAQjK,EAAQ,MAChBkK,EAAQlK,EAAQ,MAChBmK,EAAqBnK,EAAQ,MAC7BgK,EAA0BhK,EAAQ,KAClC6F,EAAQ7F,EAAQ,MA0BpBJ,EAAOC,QAZP,SAA6BiG,EAAMyC,GACjC,OAAI2B,EAAMpE,IAASqE,EAAmB5B,GAC7ByB,EAAwBnE,EAAMC,GAAOyC,GAEvC,SAAS5D,GACd,IAAI2D,EAAWxH,EAAI6D,EAAQmB,GAC3B,YAAqBf,IAAbuD,GAA0BA,IAAaC,EAC3C0B,EAAMtF,EAAQmB,GACda,EAAY4B,EAAUD,EAAUE,EACtC,CACF,oBCjBA5I,EAAOC,QANP,SAAsBJ,GACpB,OAAO,SAASkF,GACd,OAAiB,MAAVA,OAAiBI,EAAYJ,EAAOlF,EAC7C,CACF,wBCXA,IAAI2K,EAAUpK,EAAQ,MAetBJ,EAAOC,QANP,SAA0BiG,GACxB,OAAO,SAASnB,GACd,OAAOyF,EAAQzF,EAAQmB,EACzB,CACF,oBCZA,IAAIuE,EAAaC,KAAKC,KAClBC,EAAYF,KAAKG,IAyBrB7K,EAAOC,QAZP,SAAmB6K,EAAOC,EAAKC,EAAMzF,GAKnC,IAJA,IAAI1E,GAAS,EACT5B,EAAS2L,EAAUH,GAAYM,EAAMD,IAAUE,GAAQ,IAAK,GAC5DrH,EAAStE,MAAMJ,GAEZA,KACL0E,EAAO4B,EAAYtG,IAAW4B,GAASiK,EACvCA,GAASE,EAEX,OAAOrH,CACT,oBCNA3D,EAAOC,QAVP,SAAmBgL,EAAG3H,GAIpB,IAHA,IAAIzC,GAAS,EACT8C,EAAStE,MAAM4L,KAEVpK,EAAQoK,GACftH,EAAO9C,GAASyC,EAASzC,GAE3B,OAAO8C,CACT,wBCjBA,IAAIV,EAAS7C,EAAQ,MACjB8K,EAAW9K,EAAQ,MACnBd,EAAUc,EAAQ,MAClB+K,EAAW/K,EAAQ,KAMnBgL,EAAcnI,EAASA,EAAOtD,eAAYwF,EAC1CkG,EAAiBD,EAAcA,EAAY3L,cAAW0F,EA0B1DnF,EAAOC,QAhBP,SAASqL,EAAa9H,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIlE,EAAQkE,GAEV,OAAO0H,EAAS1H,EAAO8H,GAAgB,GAEzC,GAAIH,EAAS3H,GACX,OAAO6H,EAAiBA,EAAevL,KAAK0D,GAAS,GAEvD,IAAIG,EAAUH,EAAQ,GACtB,MAAkB,KAAVG,GAAkB,EAAIH,IA3BjB,SA2BwC,KAAOG,CAC9D,uBClCA,IAAI4H,EAAkBnL,EAAQ,MAG1BoL,EAAc,OAelBxL,EAAOC,QANP,SAAkBwL,GAChB,OAAOA,EACHA,EAAOC,MAAM,EAAGH,EAAgBE,GAAU,GAAGjC,QAAQgC,EAAa,IAClEC,CACN,oBCHAzL,EAAOC,QANP,SAAmB0L,GACjB,OAAO,SAASnI,GACd,OAAOmI,EAAKnI,EACd,CACF,wBCXA,IAAInB,EAAWjC,EAAQ,KACnBwL,EAAgBxL,EAAQ,MACxByL,EAAoBzL,EAAQ,MAC5B0L,EAAW1L,EAAQ,IACnB2L,EAAY3L,EAAQ,MACpB4L,EAAa5L,EAAQ,MAkEzBJ,EAAOC,QApDP,SAAkBmD,EAAOE,EAAUO,GACjC,IAAIhD,GAAS,EACTjB,EAAWgM,EACX3M,EAASmE,EAAMnE,OACfgN,GAAW,EACXtI,EAAS,GACTuI,EAAOvI,EAEX,GAAIE,EACFoI,GAAW,EACXrM,EAAWiM,OAER,GAAI5M,GAvBY,IAuBgB,CACnC,IAAIgC,EAAMqC,EAAW,KAAOyI,EAAU3I,GACtC,GAAInC,EACF,OAAO+K,EAAW/K,GAEpBgL,GAAW,EACXrM,EAAWkM,EACXI,EAAO,IAAI7J,CACb,MAEE6J,EAAO5I,EAAW,GAAKK,EAEzBwI,EACA,OAAStL,EAAQ5B,GAAQ,CACvB,IAAIuE,EAAQJ,EAAMvC,GACduL,EAAW9I,EAAWA,EAASE,GAASA,EAG5C,GADAA,EAASK,GAAwB,IAAVL,EAAeA,EAAQ,EAC1CyI,GAAYG,IAAaA,EAAU,CAErC,IADA,IAAIC,EAAYH,EAAKjN,OACdoN,KACL,GAAIH,EAAKG,KAAeD,EACtB,SAASD,EAGT7I,GACF4I,EAAK9M,KAAKgN,GAEZzI,EAAOvE,KAAKoE,EACd,MACU5D,EAASsM,EAAME,EAAUvI,KAC7BqI,IAASvI,GACXuI,EAAK9M,KAAKgN,GAEZzI,EAAOvE,KAAKoE,GAEhB,CACA,OAAOG,CACT,kBCzDA3D,EAAOC,QAJP,SAAkBqM,EAAOzM,GACvB,OAAOyM,EAAMnL,IAAItB,EACnB,wBCVA,IAAIP,EAAUc,EAAQ,MAClBkK,EAAQlK,EAAQ,MAChBmM,EAAenM,EAAQ,KACvBX,EAAWW,EAAQ,MAiBvBJ,EAAOC,QAPP,SAAkBuD,EAAOuB,GACvB,OAAIzF,EAAQkE,GACHA,EAEF8G,EAAM9G,EAAOuB,GAAU,CAACvB,GAAS+I,EAAa9M,EAAS+D,GAChE,wBClBA,IAGIgJ,EAHOpM,EAAQ,MAGG,sBAEtBJ,EAAOC,QAAUuM,wBCLjB,IAAIC,EAAkBrM,EAAQ,MAC1BsM,EAAiBtM,EAAQ,MACzBuM,EAAevM,EAAQ,MACvBd,EAAUc,EAAQ,MAmBtBJ,EAAOC,QATP,SAA0BoD,EAAQuJ,GAChC,OAAO,SAAS/H,EAAYvB,GAC1B,IAAIqI,EAAOrM,EAAQuF,GAAc4H,EAAkBC,EAC/CnJ,EAAcqJ,EAAcA,IAAgB,CAAC,EAEjD,OAAOjB,EAAK9G,EAAYxB,EAAQsJ,EAAarJ,EAAU,GAAIC,EAC7D,CACF,wBCpBA,IAAIsJ,EAAczM,EAAQ,MA+B1BJ,EAAOC,QArBP,SAAwB6M,EAAUvH,GAChC,OAAO,SAASV,EAAYvB,GAC1B,GAAkB,MAAduB,EACF,OAAOA,EAET,IAAKgI,EAAYhI,GACf,OAAOiI,EAASjI,EAAYvB,GAM9B,IAJA,IAAIrE,EAAS4F,EAAW5F,OACpB4B,EAAQ0E,EAAYtG,GAAU,EAC9B8N,EAAWrN,OAAOmF,IAEdU,EAAY1E,MAAYA,EAAQ5B,KACa,IAA/CqE,EAASyJ,EAASlM,GAAQA,EAAOkM,KAIvC,OAAOlI,CACT,CACF,mBCLA7E,EAAOC,QAjBP,SAAuBsF,GACrB,OAAO,SAASR,EAAQzB,EAAU6C,GAMhC,IALA,IAAItF,GAAS,EACTkM,EAAWrN,OAAOqF,GAClBiI,EAAQ7G,EAASpB,GACjB9F,EAAS+N,EAAM/N,OAEZA,KAAU,CACf,IAAIY,EAAMmN,EAAMzH,EAAYtG,IAAW4B,GACvC,IAA+C,IAA3CyC,EAASyJ,EAASlN,GAAMA,EAAKkN,GAC/B,KAEJ,CACA,OAAOhI,CACT,CACF,wBCtBA,IAAIkI,EAAY7M,EAAQ,MACpB8M,EAAiB9M,EAAQ,MACzB+M,EAAW/M,EAAQ,MA2BvBJ,EAAOC,QAlBP,SAAqBsF,GACnB,OAAO,SAASuF,EAAOC,EAAKC,GAa1B,OAZIA,GAAuB,iBAARA,GAAoBkC,EAAepC,EAAOC,EAAKC,KAChED,EAAMC,OAAO7F,GAGf2F,EAAQqC,EAASrC,QACL3F,IAAR4F,GACFA,EAAMD,EACNA,EAAQ,GAERC,EAAMoC,EAASpC,GAEjBC,OAAgB7F,IAAT6F,EAAsBF,EAAQC,EAAM,GAAK,EAAKoC,EAASnC,GACvDiC,EAAUnC,EAAOC,EAAKC,EAAMzF,EACrC,CACF,wBC3BA,IAAIrD,EAAM9B,EAAQ,MACdgN,EAAOhN,EAAQ,MACf4L,EAAa5L,EAAQ,MAYrB2L,EAAc7J,GAAQ,EAAI8J,EAAW,IAAI9J,EAAI,CAAC,EAAE,KAAK,IAT1C,IASoE,SAASI,GAC1F,OAAO,IAAIJ,EAAII,EACjB,EAF4E8K,EAI5EpN,EAAOC,QAAU8L,wBClBjB,IAAI1L,EAAYD,EAAQ,MAEpB0E,EAAkB,WACpB,IACE,IAAI6G,EAAOtL,EAAUX,OAAQ,kBAE7B,OADAiM,EAAK,CAAC,EAAG,GAAI,CAAC,GACPA,CACT,CAAE,MAAO0B,GAAI,CACf,CANsB,GAQtBrN,EAAOC,QAAU6E,wBCVjB,IAAIzC,EAAWjC,EAAQ,KACnBkN,EAAYlN,EAAQ,MACpB0L,EAAW1L,EAAQ,IAiFvBJ,EAAOC,QA9DP,SAAqBmD,EAAO4D,EAAOC,EAASC,EAAYS,EAAWR,GACjE,IAAIoG,EAjBqB,EAiBTtG,EACZuG,EAAYpK,EAAMnE,OAClBwO,EAAYzG,EAAM/H,OAEtB,GAAIuO,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAavG,EAAMjG,IAAIkC,GACvBuK,EAAaxG,EAAMjG,IAAI8F,GAC3B,GAAI0G,GAAcC,EAChB,OAAOD,GAAc1G,GAAS2G,GAAcvK,EAE9C,IAAIvC,GAAS,EACT8C,GAAS,EACTuI,EA/BuB,EA+BfjF,EAAoC,IAAI5E,OAAW8C,EAM/D,IAJAgC,EAAMlG,IAAImC,EAAO4D,GACjBG,EAAMlG,IAAI+F,EAAO5D,KAGRvC,EAAQ2M,GAAW,CAC1B,IAAII,EAAWxK,EAAMvC,GACjBgN,EAAW7G,EAAMnG,GAErB,GAAIqG,EACF,IAAI4G,EAAWP,EACXrG,EAAW2G,EAAUD,EAAU/M,EAAOmG,EAAO5D,EAAO+D,GACpDD,EAAW0G,EAAUC,EAAUhN,EAAOuC,EAAO4D,EAAOG,GAE1D,QAAiBhC,IAAb2I,EAAwB,CAC1B,GAAIA,EACF,SAEFnK,GAAS,EACT,KACF,CAEA,GAAIuI,GACF,IAAKoB,EAAUtG,GAAO,SAAS6G,EAAUE,GACnC,IAAKjC,EAASI,EAAM6B,KACfH,IAAaC,GAAYlG,EAAUiG,EAAUC,EAAU5G,EAASC,EAAYC,IAC/E,OAAO+E,EAAK9M,KAAK2O,EAErB,IAAI,CACNpK,GAAS,EACT,KACF,OACK,GACDiK,IAAaC,IACXlG,EAAUiG,EAAUC,EAAU5G,EAASC,EAAYC,GACpD,CACLxD,GAAS,EACT,KACF,CACF,CAGA,OAFAwD,EAAc,OAAE/D,GAChB+D,EAAc,OAAEH,GACTrD,CACT,wBCjFA,IAAIV,EAAS7C,EAAQ,MACjB8C,EAAa9C,EAAQ,MACrBuE,EAAKvE,EAAQ,MACbgH,EAAchH,EAAQ,MACtB4N,EAAa5N,EAAQ,KACrB4L,EAAa5L,EAAQ,MAqBrBgL,EAAcnI,EAASA,EAAOtD,eAAYwF,EAC1C8I,EAAgB7C,EAAcA,EAAY8C,aAAU/I,EAoFxDnF,EAAOC,QAjEP,SAAoB8E,EAAQiC,EAAOmH,EAAKlH,EAASC,EAAYS,EAAWR,GACtE,OAAQgH,GACN,IAzBc,oBA0BZ,GAAKpJ,EAAOqJ,YAAcpH,EAAMoH,YAC3BrJ,EAAOsJ,YAAcrH,EAAMqH,WAC9B,OAAO,EAETtJ,EAASA,EAAOuJ,OAChBtH,EAAQA,EAAMsH,OAEhB,IAlCiB,uBAmCf,QAAKvJ,EAAOqJ,YAAcpH,EAAMoH,aAC3BzG,EAAU,IAAIzE,EAAW6B,GAAS,IAAI7B,EAAW8D,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAOrC,GAAII,GAASiC,GAEtB,IAxDW,iBAyDT,OAAOjC,EAAOwJ,MAAQvH,EAAMuH,MAAQxJ,EAAOyJ,SAAWxH,EAAMwH,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOzJ,GAAWiC,EAAQ,GAE5B,IAjES,eAkEP,IAAIyH,EAAUT,EAEhB,IAjES,eAkEP,IAAIT,EA5EiB,EA4ELtG,EAGhB,GAFAwH,IAAYA,EAAUzC,GAElBjH,EAAO/B,MAAQgE,EAAMhE,OAASuK,EAChC,OAAO,EAGT,IAAImB,EAAUvH,EAAMjG,IAAI6D,GACxB,GAAI2J,EACF,OAAOA,GAAW1H,EAEpBC,GAtFuB,EAyFvBE,EAAMlG,IAAI8D,EAAQiC,GAClB,IAAIrD,EAASyD,EAAYqH,EAAQ1J,GAAS0J,EAAQzH,GAAQC,EAASC,EAAYS,EAAWR,GAE1F,OADAA,EAAc,OAAEpC,GACTpB,EAET,IAnFY,kBAoFV,GAAIsK,EACF,OAAOA,EAAcnO,KAAKiF,IAAWkJ,EAAcnO,KAAKkH,GAG9D,OAAO,CACT,wBC7GA,IAAI2H,EAAavO,EAAQ,MASrBxB,EAHcc,OAAOC,UAGQf,eAgFjCoB,EAAOC,QAjEP,SAAsB8E,EAAQiC,EAAOC,EAASC,EAAYS,EAAWR,GACnE,IAAIoG,EAtBqB,EAsBTtG,EACZ2H,EAAWD,EAAW5J,GACtB8J,EAAYD,EAAS3P,OAIzB,GAAI4P,GAHWF,EAAW3H,GACD/H,SAEMsO,EAC7B,OAAO,EAGT,IADA,IAAI1M,EAAQgO,EACLhO,KAAS,CACd,IAAIhB,EAAM+O,EAAS/N,GACnB,KAAM0M,EAAY1N,KAAOmH,EAAQpI,EAAekB,KAAKkH,EAAOnH,IAC1D,OAAO,CAEX,CAEA,IAAIiP,EAAa3H,EAAMjG,IAAI6D,GACvB4I,EAAaxG,EAAMjG,IAAI8F,GAC3B,GAAI8H,GAAcnB,EAChB,OAAOmB,GAAc9H,GAAS2G,GAAc5I,EAE9C,IAAIpB,GAAS,EACbwD,EAAMlG,IAAI8D,EAAQiC,GAClBG,EAAMlG,IAAI+F,EAAOjC,GAGjB,IADA,IAAIgK,EAAWxB,IACN1M,EAAQgO,GAAW,CAE1B,IAAInG,EAAW3D,EADflF,EAAM+O,EAAS/N,IAEXgN,EAAW7G,EAAMnH,GAErB,GAAIqH,EACF,IAAI4G,EAAWP,EACXrG,EAAW2G,EAAUnF,EAAU7I,EAAKmH,EAAOjC,EAAQoC,GACnDD,EAAWwB,EAAUmF,EAAUhO,EAAKkF,EAAQiC,EAAOG,GAGzD,UAAmBhC,IAAb2I,EACGpF,IAAamF,GAAYlG,EAAUe,EAAUmF,EAAU5G,EAASC,EAAYC,GAC7E2G,GACD,CACLnK,GAAS,EACT,KACF,CACAoL,IAAaA,EAAkB,eAAPlP,EAC1B,CACA,GAAI8D,IAAWoL,EAAU,CACvB,IAAIC,EAAUjK,EAAOkK,YACjBC,EAAUlI,EAAMiI,YAGhBD,GAAWE,KACV,gBAAiBnK,MAAU,gBAAiBiC,IACzB,mBAAXgI,GAAyBA,aAAmBA,GACjC,mBAAXE,GAAyBA,aAAmBA,IACvDvL,GAAS,EAEb,CAGA,OAFAwD,EAAc,OAAEpC,GAChBoC,EAAc,OAAEH,GACTrD,CACT,wBCtFA,IAAIwL,EAA8B,iBAAVC,EAAAA,GAAsBA,EAAAA,GAAUA,EAAAA,EAAO1P,SAAWA,QAAU0P,EAAAA,EAEpFpP,EAAOC,QAAUkP,wBCHjB,IAAIE,EAAiBjP,EAAQ,MACzBkP,EAAalP,EAAQ,MACrB2F,EAAO3F,EAAQ,MAanBJ,EAAOC,QAJP,SAAoB8E,GAClB,OAAOsK,EAAetK,EAAQgB,EAAMuJ,EACtC,wBCbA,IAAIC,EAAYnP,EAAQ,MAiBxBJ,EAAOC,QAPP,SAAoBuP,EAAK3P,GACvB,IAAIkD,EAAOyM,EAAIjN,SACf,OAAOgN,EAAU1P,GACbkD,EAAmB,iBAAPlD,EAAkB,SAAW,QACzCkD,EAAKyM,GACX,wBCfA,IAAIjF,EAAqBnK,EAAQ,MAC7B2F,EAAO3F,EAAQ,MAsBnBJ,EAAOC,QAbP,SAAsB8E,GAIpB,IAHA,IAAIpB,EAASoC,EAAKhB,GACd9F,EAAS0E,EAAO1E,OAEbA,KAAU,CACf,IAAIY,EAAM8D,EAAO1E,GACbuE,EAAQuB,EAAOlF,GAEnB8D,EAAO1E,GAAU,CAACY,EAAK2D,EAAO+G,EAAmB/G,GACnD,CACA,OAAOG,CACT,wBCrBA,IAAI8L,EAAerP,EAAQ,MACvBsP,EAAWtP,EAAQ,IAevBJ,EAAOC,QALP,SAAmB8E,EAAQlF,GACzB,IAAI2D,EAAQkM,EAAS3K,EAAQlF,GAC7B,OAAO4P,EAAajM,GAASA,OAAQ2B,CACvC,wBCdA,IAAIlC,EAAS7C,EAAQ,MAGjBgJ,EAAc1J,OAAOC,UAGrBf,EAAiBwK,EAAYxK,eAO7B+Q,EAAuBvG,EAAY3J,SAGnC8G,EAAiBtD,EAASA,EAAOuD,iBAAcrB,EA6BnDnF,EAAOC,QApBP,SAAmBuD,GACjB,IAAIoM,EAAQhR,EAAekB,KAAK0D,EAAO+C,GACnC4H,EAAM3K,EAAM+C,GAEhB,IACE/C,EAAM+C,QAAkBpB,EACxB,IAAI0K,GAAW,CACjB,CAAE,MAAOxC,GAAI,CAEb,IAAI1J,EAASgM,EAAqB7P,KAAK0D,GAQvC,OAPIqM,IACED,EACFpM,EAAM+C,GAAkB4H,SAEjB3K,EAAM+C,IAGV5C,CACT,wBC3CA,IAAImM,EAAc1P,EAAQ,MACtB2P,EAAY3P,EAAQ,MAMpB4P,EAHctQ,OAAOC,UAGcqQ,qBAGnCC,EAAmBvQ,OAAOwQ,sBAS1BZ,EAAcW,EAA+B,SAASlL,GACxD,OAAc,MAAVA,EACK,IAETA,EAASrF,OAAOqF,GACT+K,EAAYG,EAAiBlL,IAAS,SAASoL,GACpD,OAAOH,EAAqBlQ,KAAKiF,EAAQoL,EAC3C,IACF,EARqCJ,EAUrC/P,EAAOC,QAAUqP,wBC7BjB,IAAInP,EAAWC,EAAQ,KACnBsB,EAAMtB,EAAQ,MACd6B,EAAU7B,EAAQ,MAClB8B,EAAM9B,EAAQ,MACd+C,EAAU/C,EAAQ,MAClBwG,EAAaxG,EAAQ,MACrB4I,EAAW5I,EAAQ,MAGnBgQ,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqBzH,EAAS7I,GAC9BuQ,EAAgB1H,EAAStH,GACzBiP,EAAoB3H,EAAS/G,GAC7B2O,EAAgB5H,EAAS9G,GACzB2O,EAAoB7H,EAAS7F,GAS7BoE,EAASX,GAGRzG,GAAYoH,EAAO,IAAIpH,EAAS,IAAI2Q,YAAY,MAAQN,GACxD9O,GAAO6F,EAAO,IAAI7F,IAAQ0O,GAC1BnO,GAAWsF,EAAOtF,EAAQ8O,YAAcV,GACxCnO,GAAOqF,EAAO,IAAIrF,IAAQoO,GAC1BnN,GAAWoE,EAAO,IAAIpE,IAAYoN,KACrChJ,EAAS,SAAS/D,GAChB,IAAIG,EAASiD,EAAWpD,GACpBwN,EA/BQ,mBA+BDrN,EAAsBH,EAAMyL,iBAAc9J,EACjD8L,EAAaD,EAAOhI,EAASgI,GAAQ,GAEzC,GAAIC,EACF,OAAQA,GACN,KAAKR,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAO5M,CACT,GAGF3D,EAAOC,QAAUsH,kBC7CjBvH,EAAOC,QAJP,SAAkB8E,EAAQlF,GACxB,OAAiB,MAAVkF,OAAiBI,EAAYJ,EAAOlF,EAC7C,wBCVA,IAAImG,EAAW5F,EAAQ,MACnB2D,EAAc3D,EAAQ,MACtBd,EAAUc,EAAQ,MAClB6D,EAAU7D,EAAQ,MAClBsJ,EAAWtJ,EAAQ,MACnB6F,EAAQ7F,EAAQ,MAiCpBJ,EAAOC,QAtBP,SAAiB8E,EAAQmB,EAAMgL,GAO7B,IAJA,IAAIrQ,GAAS,EACT5B,GAHJiH,EAAOF,EAASE,EAAMnB,IAGJ9F,OACd0E,GAAS,IAEJ9C,EAAQ5B,GAAQ,CACvB,IAAIY,EAAMoG,EAAMC,EAAKrF,IACrB,KAAM8C,EAAmB,MAAVoB,GAAkBmM,EAAQnM,EAAQlF,IAC/C,MAEFkF,EAASA,EAAOlF,EAClB,CACA,OAAI8D,KAAY9C,GAAS5B,EAChB0E,KAET1E,EAAmB,MAAV8F,EAAiB,EAAIA,EAAO9F,SAClByK,EAASzK,IAAWgF,EAAQpE,EAAKZ,KACjDK,EAAQyF,IAAWhB,EAAYgB,GACpC,wBCpCA,IAAIoM,EAAe/Q,EAAQ,MAc3BJ,EAAOC,QALP,WACEa,KAAKyB,SAAW4O,EAAeA,EAAa,MAAQ,CAAC,EACrDrQ,KAAKkC,KAAO,CACd,oBCIAhD,EAAOC,QANP,SAAoBJ,GAClB,IAAI8D,EAAS7C,KAAKK,IAAItB,WAAeiB,KAAKyB,SAAS1C,GAEnD,OADAiB,KAAKkC,MAAQW,EAAS,EAAI,EACnBA,CACT,wBCdA,IAAIwN,EAAe/Q,EAAQ,MASvBxB,EAHcc,OAAOC,UAGQf,eAoBjCoB,EAAOC,QATP,SAAiBJ,GACf,IAAIkD,EAAOjC,KAAKyB,SAChB,GAAI4O,EAAc,CAChB,IAAIxN,EAASZ,EAAKlD,GAClB,MArBiB,8BAqBV8D,OAA4BwB,EAAYxB,CACjD,CACA,OAAO/E,EAAekB,KAAKiD,EAAMlD,GAAOkD,EAAKlD,QAAOsF,CACtD,wBC3BA,IAAIgM,EAAe/Q,EAAQ,MAMvBxB,EAHcc,OAAOC,UAGQf,eAgBjCoB,EAAOC,QALP,SAAiBJ,GACf,IAAIkD,EAAOjC,KAAKyB,SAChB,OAAO4O,OAA8BhM,IAAdpC,EAAKlD,GAAsBjB,EAAekB,KAAKiD,EAAMlD,EAC9E,wBCpBA,IAAIsR,EAAe/Q,EAAQ,MAsB3BJ,EAAOC,QAPP,SAAiBJ,EAAK2D,GACpB,IAAIT,EAAOjC,KAAKyB,SAGhB,OAFAzB,KAAKkC,MAAQlC,KAAKK,IAAItB,GAAO,EAAI,EACjCkD,EAAKlD,GAAQsR,QAA0BhM,IAAV3B,EAfV,4BAekDA,EAC9D1C,IACT,wBCpBA,IAAImC,EAAS7C,EAAQ,MACjB2D,EAAc3D,EAAQ,MACtBd,EAAUc,EAAQ,MAGlBgR,EAAmBnO,EAASA,EAAOoO,wBAAqBlM,EAc5DnF,EAAOC,QALP,SAAuBuD,GACrB,OAAOlE,EAAQkE,IAAUO,EAAYP,OAChC4N,GAAoB5N,GAASA,EAAM4N,GAC1C,oBChBA,IAGIE,EAAW,mBAoBftR,EAAOC,QAVP,SAAiBuD,EAAOvE,GACtB,IAAIsS,SAAc/N,EAGlB,SAFAvE,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARsS,GACU,UAARA,GAAoBD,EAAS7H,KAAKjG,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQvE,CACjD,wBCtBA,IAAI0F,EAAKvE,EAAQ,MACbyM,EAAczM,EAAQ,MACtB6D,EAAU7D,EAAQ,MAClB2I,EAAW3I,EAAQ,MA0BvBJ,EAAOC,QAdP,SAAwBuD,EAAO3C,EAAOkE,GACpC,IAAKgE,EAAShE,GACZ,OAAO,EAET,IAAIwM,SAAc1Q,EAClB,SAAY,UAAR0Q,EACK1E,EAAY9H,IAAWd,EAAQpD,EAAOkE,EAAO9F,QACrC,UAARsS,GAAoB1Q,KAASkE,IAE7BJ,EAAGI,EAAOlE,GAAQ2C,EAG7B,wBC3BA,IAAIlE,EAAUc,EAAQ,MAClB+K,EAAW/K,EAAQ,KAGnBoR,EAAe,mDACfC,EAAgB,QAuBpBzR,EAAOC,QAbP,SAAeuD,EAAOuB,GACpB,GAAIzF,EAAQkE,GACV,OAAO,EAET,IAAI+N,SAAc/N,EAClB,QAAY,UAAR+N,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAAT/N,IAAiB2H,EAAS3H,MAGvBiO,EAAchI,KAAKjG,KAAWgO,EAAa/H,KAAKjG,IAC1C,MAAVuB,GAAkBvB,KAAS9D,OAAOqF,GACvC,oBCZA/E,EAAOC,QAPP,SAAmBuD,GACjB,IAAI+N,SAAc/N,EAClB,MAAgB,UAAR+N,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV/N,EACU,OAAVA,CACP,uBCZA,IAAIgJ,EAAapM,EAAQ,MAGrBsR,EAAc,WAChB,IAAIC,EAAM,SAASC,KAAKpF,GAAcA,EAAWzG,MAAQyG,EAAWzG,KAAK8L,UAAY,IACrF,OAAOF,EAAO,iBAAmBA,EAAO,EAC1C,CAHkB,GAgBlB3R,EAAOC,QAJP,SAAkB0L,GAChB,QAAS+F,GAAeA,KAAc/F,CACxC,oBChBA,IAAIvC,EAAc1J,OAAOC,UAgBzBK,EAAOC,QAPP,SAAqBuD,GACnB,IAAIwN,EAAOxN,GAASA,EAAMyL,YAG1B,OAAOzL,KAFqB,mBAARwN,GAAsBA,EAAKrR,WAAcyJ,EAG/D,wBCfA,IAAIL,EAAW3I,EAAQ,MAcvBJ,EAAOC,QAJP,SAA4BuD,GAC1B,OAAOA,IAAUA,IAAUuF,EAASvF,EACtC,oBCAAxD,EAAOC,QALP,WACEa,KAAKyB,SAAW,GAChBzB,KAAKkC,KAAO,CACd,wBCVA,IAAI8O,EAAe1R,EAAQ,MAMvB2R,EAHa1S,MAAMM,UAGCoS,OA4BxB/R,EAAOC,QAjBP,SAAyBJ,GACvB,IAAIkD,EAAOjC,KAAKyB,SACZ1B,EAAQiR,EAAa/O,EAAMlD,GAE/B,QAAIgB,EAAQ,KAIRA,GADYkC,EAAK9D,OAAS,EAE5B8D,EAAKiP,MAELD,EAAOjS,KAAKiD,EAAMlC,EAAO,KAEzBC,KAAKkC,MACA,EACT,wBChCA,IAAI8O,EAAe1R,EAAQ,MAkB3BJ,EAAOC,QAPP,SAAsBJ,GACpB,IAAIkD,EAAOjC,KAAKyB,SACZ1B,EAAQiR,EAAa/O,EAAMlD,GAE/B,OAAOgB,EAAQ,OAAIsE,EAAYpC,EAAKlC,GAAO,EAC7C,wBChBA,IAAIiR,EAAe1R,EAAQ,MAe3BJ,EAAOC,QAJP,SAAsBJ,GACpB,OAAOiS,EAAahR,KAAKyB,SAAU1C,IAAQ,CAC7C,wBCbA,IAAIiS,EAAe1R,EAAQ,MAyB3BJ,EAAOC,QAbP,SAAsBJ,EAAK2D,GACzB,IAAIT,EAAOjC,KAAKyB,SACZ1B,EAAQiR,EAAa/O,EAAMlD,GAQ/B,OANIgB,EAAQ,KACRC,KAAKkC,KACPD,EAAK3D,KAAK,CAACS,EAAK2D,KAEhBT,EAAKlC,GAAO,GAAK2C,EAEZ1C,IACT,wBCvBA,IAAIH,EAAOP,EAAQ,MACfqB,EAAYrB,EAAQ,MACpBsB,EAAMtB,EAAQ,MAkBlBJ,EAAOC,QATP,WACEa,KAAKkC,KAAO,EACZlC,KAAKyB,SAAW,CACd,KAAQ,IAAI5B,EACZ,IAAO,IAAKe,GAAOD,GACnB,OAAU,IAAId,EAElB,wBClBA,IAAIsR,EAAa7R,EAAQ,MAiBzBJ,EAAOC,QANP,SAAwBJ,GACtB,IAAI8D,EAASsO,EAAWnR,KAAMjB,GAAa,OAAEA,GAE7C,OADAiB,KAAKkC,MAAQW,EAAS,EAAI,EACnBA,CACT,wBCfA,IAAIsO,EAAa7R,EAAQ,MAezBJ,EAAOC,QAJP,SAAqBJ,GACnB,OAAOoS,EAAWnR,KAAMjB,GAAKqB,IAAIrB,EACnC,wBCbA,IAAIoS,EAAa7R,EAAQ,MAezBJ,EAAOC,QAJP,SAAqBJ,GACnB,OAAOoS,EAAWnR,KAAMjB,GAAKsB,IAAItB,EACnC,wBCbA,IAAIoS,EAAa7R,EAAQ,MAqBzBJ,EAAOC,QATP,SAAqBJ,EAAK2D,GACxB,IAAIT,EAAOkP,EAAWnR,KAAMjB,GACxBmD,EAAOD,EAAKC,KAIhB,OAFAD,EAAK9B,IAAIpB,EAAK2D,GACd1C,KAAKkC,MAAQD,EAAKC,MAAQA,EAAO,EAAI,EAC9BlC,IACT,mBCFAd,EAAOC,QAVP,SAAoBuP,GAClB,IAAI3O,GAAS,EACT8C,EAAStE,MAAMmQ,EAAIxM,MAKvB,OAHAwM,EAAI0C,SAAQ,SAAS1O,EAAO3D,GAC1B8D,IAAS9C,GAAS,CAAChB,EAAK2D,EAC1B,IACOG,CACT,mBCIA3D,EAAOC,QAVP,SAAiCJ,EAAK8I,GACpC,OAAO,SAAS5D,GACd,OAAc,MAAVA,IAGGA,EAAOlF,KAAS8I,SACPxD,IAAbwD,GAA2B9I,KAAOH,OAAOqF,IAC9C,CACF,wBCjBA,IAAIoN,EAAU/R,EAAQ,MAyBtBJ,EAAOC,QAZP,SAAuB0L,GACrB,IAAIhI,EAASwO,EAAQxG,GAAM,SAAS9L,GAIlC,OAfmB,MAYfyM,EAAMtJ,MACRsJ,EAAMvL,QAEDlB,CACT,IAEIyM,EAAQ3I,EAAO2I,MACnB,OAAO3I,CACT,wBCvBA,IAGIwN,EAHY/Q,EAAQ,KAGLC,CAAUX,OAAQ,UAErCM,EAAOC,QAAUkR,wBCLjB,IAGIlH,EAHU7J,EAAQ,KAGLgS,CAAQ1S,OAAOqG,KAAMrG,QAEtCM,EAAOC,QAAUgK,mCCLjB,IAAIkF,EAAa/O,EAAQ,MAGrBiS,EAA4CpS,IAAYA,EAAQqS,UAAYrS,EAG5EsS,EAAaF,GAA4CrS,IAAWA,EAAOsS,UAAYtS,EAMvFwS,EAHgBD,GAAcA,EAAWtS,UAAYoS,GAGtBlD,EAAWsD,QAG1CC,EAAY,WACd,IAEE,IAAIC,EAAQJ,GAAcA,EAAWnS,SAAWmS,EAAWnS,QAAQ,QAAQuS,MAE3E,OAAIA,GAKGH,GAAeA,EAAYI,SAAWJ,EAAYI,QAAQ,OACnE,CAAE,MAAOvF,GAAI,CACf,CAZgB,GAchBrN,EAAOC,QAAUyS,oBC5BjB,IAOI/C,EAPcjQ,OAAOC,UAOcF,SAavCO,EAAOC,QAJP,SAAwBuD,GACtB,OAAOmM,EAAqB7P,KAAK0D,EACnC,oBCLAxD,EAAOC,QANP,SAAiB0L,EAAMkH,GACrB,OAAO,SAAS3T,GACd,OAAOyM,EAAKkH,EAAU3T,GACxB,CACF,wBCZA,IAAIiQ,EAAa/O,EAAQ,MAGrB0S,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKrT,SAAWA,QAAUqT,KAGxEC,EAAO7D,GAAc2D,GAAY3J,SAAS,cAATA,GAErCnJ,EAAOC,QAAU+S,oBCUjBhT,EAAOC,QALP,SAAqBuD,GAEnB,OADA1C,KAAKyB,SAAStB,IAAIuC,EAbC,6BAcZ1C,IACT,oBCHAd,EAAOC,QAJP,SAAqBuD,GACnB,OAAO1C,KAAKyB,SAASpB,IAAIqC,EAC3B,oBCMAxD,EAAOC,QAVP,SAAoBgB,GAClB,IAAIJ,GAAS,EACT8C,EAAStE,MAAM4B,EAAI+B,MAKvB,OAHA/B,EAAIiR,SAAQ,SAAS1O,GACnBG,IAAS9C,GAAS2C,CACpB,IACOG,CACT,uBCfA,IAAIlC,EAAYrB,EAAQ,MAcxBJ,EAAOC,QALP,WACEa,KAAKyB,SAAW,IAAId,EACpBX,KAAKkC,KAAO,CACd,mBCKAhD,EAAOC,QARP,SAAqBJ,GACnB,IAAIkD,EAAOjC,KAAKyB,SACZoB,EAASZ,EAAa,OAAElD,GAG5B,OADAiB,KAAKkC,KAAOD,EAAKC,KACVW,CACT,mBCFA3D,EAAOC,QAJP,SAAkBJ,GAChB,OAAOiB,KAAKyB,SAASrB,IAAIrB,EAC3B,oBCEAG,EAAOC,QAJP,SAAkBJ,GAChB,OAAOiB,KAAKyB,SAASpB,IAAItB,EAC3B,wBCXA,IAAI4B,EAAYrB,EAAQ,MACpBsB,EAAMtB,EAAQ,MACd4B,EAAW5B,EAAQ,MA+BvBJ,EAAOC,QAhBP,SAAkBJ,EAAK2D,GACrB,IAAIT,EAAOjC,KAAKyB,SAChB,GAAIQ,aAAgBtB,EAAW,CAC7B,IAAIwR,EAAQlQ,EAAKR,SACjB,IAAKb,GAAQuR,EAAMhU,OAASiU,IAG1B,OAFAD,EAAM7T,KAAK,CAACS,EAAK2D,IACjB1C,KAAKkC,OAASD,EAAKC,KACZlC,KAETiC,EAAOjC,KAAKyB,SAAW,IAAIP,EAASiR,EACtC,CAGA,OAFAlQ,EAAK9B,IAAIpB,EAAK2D,GACd1C,KAAKkC,KAAOD,EAAKC,KACVlC,IACT,oBCTAd,EAAOC,QAZP,SAAuBmD,EAAOI,EAAO8B,GAInC,IAHA,IAAIzE,EAAQyE,EAAY,EACpBrG,EAASmE,EAAMnE,SAEV4B,EAAQ5B,GACf,GAAImE,EAAMvC,KAAW2C,EACnB,OAAO3C,EAGX,OAAQ,CACV,uBCpBA,IAAIsS,EAAgB/S,EAAQ,MAGxBgT,EAAa,mGAGbC,EAAe,WASf9G,EAAe4G,GAAc,SAAS1H,GACxC,IAAI9H,EAAS,GAOb,OAN6B,KAAzB8H,EAAO6H,WAAW,IACpB3P,EAAOvE,KAAK,IAEdqM,EAAOjC,QAAQ4J,GAAY,SAASG,EAAOvO,EAAQwO,EAAOC,GACxD9P,EAAOvE,KAAKoU,EAAQC,EAAUjK,QAAQ6J,EAAc,MAASrO,GAAUuO,EACzE,IACO5P,CACT,IAEA3D,EAAOC,QAAUsM,wBC1BjB,IAAIpB,EAAW/K,EAAQ,KAoBvBJ,EAAOC,QARP,SAAeuD,GACb,GAAoB,iBAATA,GAAqB2H,EAAS3H,GACvC,OAAOA,EAET,IAAIG,EAAUH,EAAQ,GACtB,MAAkB,KAAVG,GAAkB,EAAIH,IAdjB,SAcwC,KAAOG,CAC9D,oBCjBA,IAGI0F,EAHYF,SAASxJ,UAGIF,SAqB7BO,EAAOC,QAZP,SAAkB0L,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOtC,EAAavJ,KAAK6L,EAC3B,CAAE,MAAO0B,GAAI,CACb,IACE,OAAQ1B,EAAO,EACjB,CAAE,MAAO0B,GAAI,CACf,CACA,MAAO,EACT,oBCtBA,IAAIqG,EAAe,KAiBnB1T,EAAOC,QAPP,SAAyBwL,GAGvB,IAFA,IAAI5K,EAAQ4K,EAAOxM,OAEZ4B,KAAW6S,EAAajK,KAAKgC,EAAOkI,OAAO9S,MAClD,OAAOA,CACT,wBChBA,IAAI+S,EAAYxT,EAAQ,MACpByT,EAAWzT,EAAQ,MAqCvBJ,EAAOC,QAhBP,SAAe+E,EAAQC,EAAOC,GAa5B,YAZcC,IAAVD,IACFA,EAAQD,EACRA,OAAQE,QAEIA,IAAVD,IAEFA,GADAA,EAAQ2O,EAAS3O,MACCA,EAAQA,EAAQ,QAEtBC,IAAVF,IAEFA,GADAA,EAAQ4O,EAAS5O,MACCA,EAAQA,EAAQ,GAE7B2O,EAAUC,EAAS7O,GAASC,EAAOC,EAC5C,wBCpCA,IAAI6D,EAAW3I,EAAQ,MACnB0T,EAAM1T,EAAQ,IACdyT,EAAWzT,EAAQ,MAMnBwK,EAAYF,KAAKG,IACjBkJ,EAAYrJ,KAAKsJ,IAqLrBhU,EAAOC,QA7HP,SAAkB0L,EAAMsI,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACA1Q,EACA2Q,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARhJ,EACT,MAAM,IAAIiJ,UAzEQ,uBAmFpB,SAASC,EAAWC,GAClB,IAAIC,EAAOZ,EACPa,EAAUZ,EAKd,OAHAD,EAAWC,OAAWjP,EACtBqP,EAAiBM,EACjBnR,EAASgI,EAAKnM,MAAMwV,EAASD,EAE/B,CAqBA,SAASE,EAAaH,GACpB,IAAII,EAAoBJ,EAAOP,EAM/B,YAAyBpP,IAAjBoP,GAA+BW,GAAqBjB,GACzDiB,EAAoB,GAAOR,GANJI,EAAON,GAM8BH,CACjE,CAEA,SAASc,IACP,IAAIL,EAAOhB,IACX,GAAImB,EAAaH,GACf,OAAOM,EAAaN,GAGtBR,EAAUe,WAAWF,EA3BvB,SAAuBL,GACrB,IAEIQ,EAAcrB,GAFMa,EAAOP,GAI/B,OAAOG,EACHX,EAAUuB,EAAajB,GAJDS,EAAON,IAK7Bc,CACN,CAmBqCC,CAAcT,GACnD,CAEA,SAASM,EAAaN,GAKpB,OAJAR,OAAUnP,EAINwP,GAAYR,EACPU,EAAWC,IAEpBX,EAAWC,OAAWjP,EACfxB,EACT,CAcA,SAAS6R,IACP,IAAIV,EAAOhB,IACP2B,EAAaR,EAAaH,GAM9B,GAJAX,EAAWnV,UACXoV,EAAWtT,KACXyT,EAAeO,EAEXW,EAAY,CACd,QAAgBtQ,IAAZmP,EACF,OAzEN,SAAqBQ,GAMnB,OAJAN,EAAiBM,EAEjBR,EAAUe,WAAWF,EAAclB,GAE5BQ,EAAUI,EAAWC,GAAQnR,CACtC,CAkEa+R,CAAYnB,GAErB,GAAIG,EAIF,OAFAiB,aAAarB,GACbA,EAAUe,WAAWF,EAAclB,GAC5BY,EAAWN,EAEtB,CAIA,YAHgBpP,IAAZmP,IACFA,EAAUe,WAAWF,EAAclB,IAE9BtQ,CACT,CAGA,OA3GAsQ,EAAOJ,EAASI,IAAS,EACrBlL,EAASmL,KACXO,IAAYP,EAAQO,QAEpBJ,GADAK,EAAS,YAAaR,GACHtJ,EAAUiJ,EAASK,EAAQG,UAAY,EAAGJ,GAAQI,EACrEM,EAAW,aAAcT,IAAYA,EAAQS,SAAWA,GAoG1Da,EAAUI,OApCV,gBACkBzQ,IAAZmP,GACFqB,aAAarB,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUnP,CACjD,EA+BAqQ,EAAUK,MA7BV,WACE,YAAmB1Q,IAAZmP,EAAwB3Q,EAASyR,EAAatB,IACvD,EA4BO0B,CACT,oBCxJAxV,EAAOC,QAJP,SAAYuD,EAAOwD,GACjB,OAAOxD,IAAUwD,GAAUxD,IAAUA,GAASwD,IAAUA,CAC1D,wBClCA,IAAItB,EAActF,EAAQ,MAqB1BJ,EAAOC,QALP,SAAiBmD,GAEf,OADsB,MAATA,EAAgB,EAAIA,EAAMnE,QACvByG,EAAYtC,EAAO,GAAK,EAC1C,wBCnBA,IAAIoH,EAAUpK,EAAQ,MAgCtBJ,EAAOC,QALP,SAAa8E,EAAQmB,EAAM4P,GACzB,IAAInS,EAAmB,MAAVoB,OAAiBI,EAAYqF,EAAQzF,EAAQmB,GAC1D,YAAkBf,IAAXxB,EAAuBmS,EAAenS,CAC/C,wBC9BA,IAAIoS,EAAkB3V,EAAQ,MAC1B4V,EAAmB5V,EAAQ,MAM3BxB,EAHcc,OAAOC,UAGQf,eAyB7BqX,EAAUD,GAAiB,SAASrS,EAAQH,EAAO3D,GACjDjB,EAAekB,KAAK6D,EAAQ9D,GAC9B8D,EAAO9D,GAAKT,KAAKoE,GAEjBuS,EAAgBpS,EAAQ9D,EAAK,CAAC2D,GAElC,IAEAxD,EAAOC,QAAUgW,wBCxCjB,IAAIC,EAAU9V,EAAQ,MAClB+V,EAAU/V,EAAQ,MAiCtBJ,EAAOC,QAJP,SAAa8E,EAAQmB,GACnB,OAAiB,MAAVnB,GAAkBoR,EAAQpR,EAAQmB,EAAMgQ,EACjD,wBChCA,IAAIE,EAAYhW,EAAQ,KACpB+V,EAAU/V,EAAQ,MAgCtBJ,EAAOC,QAJP,SAAe8E,EAAQmB,GACrB,OAAiB,MAAVnB,GAAkBoR,EAAQpR,EAAQmB,EAAMkQ,EACjD,oBCXApW,EAAOC,QAJP,SAAkBuD,GAChB,OAAOA,CACT,wBClBA,IAAI6S,EAAkBjW,EAAQ,MAC1ByG,EAAezG,EAAQ,MAGvBgJ,EAAc1J,OAAOC,UAGrBf,EAAiBwK,EAAYxK,eAG7BoR,EAAuB5G,EAAY4G,qBAoBnCjM,EAAcsS,EAAgB,WAAa,OAAOrX,SAAW,CAA/B,IAAsCqX,EAAkB,SAAS7S,GACjG,OAAOqD,EAAarD,IAAU5E,EAAekB,KAAK0D,EAAO,YACtDwM,EAAqBlQ,KAAK0D,EAAO,SACtC,EAEAxD,EAAOC,QAAU8D,oBCZjB,IAAIzE,EAAUD,MAAMC,QAEpBU,EAAOC,QAAUX,wBCzBjB,IAAIuJ,EAAazI,EAAQ,MACrBsJ,EAAWtJ,EAAQ,MA+BvBJ,EAAOC,QAJP,SAAqBuD,GACnB,OAAgB,MAATA,GAAiBkG,EAASlG,EAAMvE,UAAY4J,EAAWrF,EAChE,mCC9BA,IAAIwP,EAAO5S,EAAQ,MACfkW,EAAYlW,EAAQ,MAGpBiS,EAA4CpS,IAAYA,EAAQqS,UAAYrS,EAG5EsS,EAAaF,GAA4CrS,IAAWA,EAAOsS,UAAYtS,EAMvFuW,EAHgBhE,GAAcA,EAAWtS,UAAYoS,EAG5BW,EAAKuD,YAASpR,EAsBvCnB,GAnBiBuS,EAASA,EAAOvS,cAAWmB,IAmBfmR,EAEjCtW,EAAOC,QAAU+D,wBCrCjB,IAAI4C,EAAaxG,EAAQ,MACrB2I,EAAW3I,EAAQ,MAmCvBJ,EAAOC,QAVP,SAAoBuD,GAClB,IAAKuF,EAASvF,GACZ,OAAO,EAIT,IAAI2K,EAAMvH,EAAWpD,GACrB,MA5BY,qBA4BL2K,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,CAC/D,oBCAAnO,EAAOC,QALP,SAAkBuD,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,oBCFAxD,EAAOC,QALP,SAAkBuD,GAChB,IAAI+N,SAAc/N,EAClB,OAAgB,MAATA,IAA0B,UAAR+N,GAA4B,YAARA,EAC/C,oBCAAvR,EAAOC,QAJP,SAAsBuD,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,uBC1BA,IAAIoD,EAAaxG,EAAQ,MACrByG,EAAezG,EAAQ,MA2B3BJ,EAAOC,QALP,SAAkBuD,GAChB,MAAuB,iBAATA,GACXqD,EAAarD,IArBF,mBAqBYoD,EAAWpD,EACvC,wBC1BA,IAAIgT,EAAmBpW,EAAQ,MAC3BqW,EAAYrW,EAAQ,MACpBsS,EAAWtS,EAAQ,MAGnBsW,EAAmBhE,GAAYA,EAASxO,aAmBxCA,EAAewS,EAAmBD,EAAUC,GAAoBF,EAEpExW,EAAOC,QAAUiE,wBC1BjB,IAAIyS,EAAgBvW,EAAQ,MACxBwW,EAAWxW,EAAQ,MACnByM,EAAczM,EAAQ,MAkC1BJ,EAAOC,QAJP,SAAc8E,GACZ,OAAO8H,EAAY9H,GAAU4R,EAAc5R,GAAU6R,EAAS7R,EAChE,wBClCA,IAAI/C,EAAW5B,EAAQ,MAiDvB,SAAS+R,EAAQxG,EAAMkL,GACrB,GAAmB,mBAARlL,GAAmC,MAAZkL,GAAuC,mBAAZA,EAC3D,MAAM,IAAIjC,UAhDQ,uBAkDpB,IAAIkC,EAAW,SAAXA,IACF,IAAI/B,EAAO/V,UACPa,EAAMgX,EAAWA,EAASrX,MAAMsB,KAAMiU,GAAQA,EAAK,GACnDzI,EAAQwK,EAASxK,MAErB,GAAIA,EAAMnL,IAAItB,GACZ,OAAOyM,EAAMpL,IAAIrB,GAEnB,IAAI8D,EAASgI,EAAKnM,MAAMsB,KAAMiU,GAE9B,OADA+B,EAASxK,MAAQA,EAAMrL,IAAIpB,EAAK8D,IAAW2I,EACpC3I,CACT,EAEA,OADAmT,EAASxK,MAAQ,IAAK6F,EAAQ4E,OAAS/U,GAChC8U,CACT,CAGA3E,EAAQ4E,MAAQ/U,EAEhBhC,EAAOC,QAAUkS,oBCxDjBnS,EAAOC,QAJP,WACE,sBCbF,IAAI+S,EAAO5S,EAAQ,MAsBnBJ,EAAOC,QAJG,WACR,OAAO+S,EAAKgE,KAAKlD,KACnB,sBCpBA,IAAImD,EAAe7W,EAAQ,MACvB8W,EAAmB9W,EAAQ,MAC3BkK,EAAQlK,EAAQ,MAChB6F,EAAQ7F,EAAQ,MA4BpBJ,EAAOC,QAJP,SAAkBiG,GAChB,OAAOoE,EAAMpE,GAAQ+Q,EAAahR,EAAMC,IAASgR,EAAiBhR,EACpE,wBC7BA,IA2CIiR,EA3Cc/W,EAAQ,KA2CdgX,GAEZpX,EAAOC,QAAUkX,oBCvBjBnX,EAAOC,QAJP,WACE,MAAO,EACT,oBCHAD,EAAOC,QAJP,WACE,OAAO,CACT,wBCfA,IAAIoX,EAAWjX,EAAQ,MACnB2I,EAAW3I,EAAQ,MAmEvBJ,EAAOC,QAlBP,SAAkB0L,EAAMsI,EAAMC,GAC5B,IAAIO,GAAU,EACVE,GAAW,EAEf,GAAmB,mBAARhJ,EACT,MAAM,IAAIiJ,UAnDQ,uBAyDpB,OAJI7L,EAASmL,KACXO,EAAU,YAAaP,IAAYA,EAAQO,QAAUA,EACrDE,EAAW,aAAcT,IAAYA,EAAQS,SAAWA,GAEnD0C,EAAS1L,EAAMsI,EAAM,CAC1B,QAAWQ,EACX,QAAWR,EACX,SAAYU,GAEhB,wBClEA,IAAId,EAAWzT,EAAQ,MAGnBkX,EAAW,IAsCftX,EAAOC,QAZP,SAAkBuD,GAChB,OAAKA,GAGLA,EAAQqQ,EAASrQ,MACH8T,GAAY9T,KAAU,IA9BpB,uBA+BFA,EAAQ,GAAK,EAAI,GAGxBA,IAAUA,EAAQA,EAAQ,EAPd,IAAVA,EAAcA,EAAQ,CAQjC,wBCvCA,IAAI+T,EAAWnX,EAAQ,KACnB2I,EAAW3I,EAAQ,MACnB+K,EAAW/K,EAAQ,KAMnBoX,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SA8CnB5X,EAAOC,QArBP,SAAkBuD,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI2H,EAAS3H,GACX,OA1CM,IA4CR,GAAIuF,EAASvF,GAAQ,CACnB,IAAIwD,EAAgC,mBAAjBxD,EAAM0K,QAAwB1K,EAAM0K,UAAY1K,EACnEA,EAAQuF,EAAS/B,GAAUA,EAAQ,GAAMA,CAC3C,CACA,GAAoB,iBAATxD,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQ+T,EAAS/T,GACjB,IAAIqU,EAAWJ,EAAWhO,KAAKjG,GAC/B,OAAQqU,GAAYH,EAAUjO,KAAKjG,GAC/BmU,EAAanU,EAAMkI,MAAM,GAAImM,EAAW,EAAI,GAC3CL,EAAW/N,KAAKjG,GAvDb,KAuD6BA,CACvC,wBC7DA,IAAI8H,EAAelL,EAAQ,MA2B3BJ,EAAOC,QAJP,SAAkBuD,GAChB,OAAgB,MAATA,EAAgB,GAAK8H,EAAa9H,EAC3C,wBCzBA,IAAIsU,EAAW1X,EAAQ,MAwBvBJ,EAAOC,QAJP,SAAcmD,GACZ,OAAQA,GAASA,EAAMnE,OAAU6Y,EAAS1U,GAAS,EACrD,oCCbA,IAAI2U,EAAuB3X,EAAQ,MAEnC,SAAS4X,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3ChY,EAAOC,QAAU,WACf,SAASkY,EAAKnL,EAAOoL,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWT,EAAf,CAIA,IAAIU,EAAM,IAAIC,MACZ,mLAKF,MADAD,EAAIlK,KAAO,sBACLkK,CAPN,CAQF,CAEA,SAASE,IACP,OAAOR,CACT,CAHAA,EAAKS,WAAaT,EAMlB,IAAIU,EAAiB,CACnBzV,MAAO+U,EACPW,OAAQX,EACRY,KAAMZ,EACNxM,KAAMwM,EACNnT,OAAQmT,EACRpT,OAAQoT,EACR1M,OAAQ0M,EACRhI,OAAQgI,EAERa,IAAKb,EACLc,QAASN,EACTO,QAASf,EACTgB,YAAahB,EACbiB,WAAYT,EACZU,KAAMlB,EACNmB,SAAUX,EACVY,MAAOZ,EACPa,UAAWb,EACXc,MAAOd,EACPe,MAAOf,EAEPgB,eAAgB1B,EAChBC,kBAAmBF,GAKrB,OAFAa,EAAee,UAAYf,EAEpBA,CACT,wBC/CE7Y,EAAOC,QAAUG,EAAQ,IAARA,kCCNnBJ,EAAOC,QAFoB,kFCGd,IAAI4Z,EAAGzZ,EAAQ,MAAS0Z,EAAG1Z,EAAQ,MAAa,SAAS2Z,EAAEC,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEE,EAAE,EAAEA,EAAElb,UAAUC,OAAOib,IAAID,GAAG,WAAWE,mBAAmBnb,UAAUkb,IAAI,MAAM,yBAAyBF,EAAE,WAAWC,EAAE,gHAAgH,CAAC,IAAIG,EAAG,IAAIlY,IAAImY,EAAG,CAAC,EAAE,SAASC,EAAGN,EAAEC,GAAGM,EAAGP,EAAEC,GAAGM,EAAGP,EAAE,UAAUC,EAAE,CACxb,SAASM,EAAGP,EAAEC,GAAW,IAARI,EAAGL,GAAGC,EAAMD,EAAE,EAAEA,EAAEC,EAAEhb,OAAO+a,IAAII,EAAG5X,IAAIyX,EAAED,GAAG,CAC5D,IAAIQ,IAAK,qBAAqBC,QAAQ,qBAAqBA,OAAOC,UAAU,qBAAqBD,OAAOC,SAASC,eAAeC,EAAGlb,OAAOC,UAAUf,eAAeic,EAAG,8VAA8VC,EACpgB,CAAC,EAAEC,EAAG,CAAC,EACiN,SAASC,EAAEhB,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,EAAEC,GAAGra,KAAKsa,gBAAgB,IAAInB,GAAG,IAAIA,GAAG,IAAIA,EAAEnZ,KAAKua,cAAcJ,EAAEna,KAAKwa,mBAAmBjO,EAAEvM,KAAKya,gBAAgBrB,EAAEpZ,KAAK0a,aAAaxB,EAAElZ,KAAKyQ,KAAK0I,EAAEnZ,KAAK2a,YAAYP,EAAEpa,KAAK4a,kBAAkBP,CAAC,CAAC,IAAIQ,EAAE,CAAC,EACpb,uIAAuIC,MAAM,KAAK1J,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe9H,SAAQ,SAAS8H,GAAG,IAAIC,EAAED,EAAE,GAAG2B,EAAE1B,GAAG,IAAIe,EAAEf,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAAS9H,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE6B,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiB3J,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8O4B,MAAM,KAAK1J,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE6B,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAY3J,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAY9H,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQ9H,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAAS9H,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE6B,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIC,EAAG,gBAAgB,SAASC,EAAG/B,GAAG,OAAOA,EAAE,GAAGgC,aAAa,CAIxZ,SAASC,EAAGjC,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAEsO,EAAE/c,eAAeqb,GAAG0B,EAAE1B,GAAG,MAAQ,OAAO5M,EAAE,IAAIA,EAAEkE,KAAK0J,KAAK,EAAEhB,EAAEhb,SAAS,MAAMgb,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,MAP9I,SAAYD,EAAEC,EAAEC,EAAEe,GAAG,GAAG,OAAOhB,GAAG,qBAAqBA,GADqE,SAAYD,EAAEC,EAAEC,EAAEe,GAAG,GAAG,OAAOf,GAAG,IAAIA,EAAE3I,KAAK,OAAM,EAAG,cAAc0I,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGgB,IAAc,OAAOf,GAASA,EAAEkB,gBAAmD,WAAnCpB,EAAEA,EAAE6B,cAAcnQ,MAAM,EAAE,KAAsB,UAAUsO,GAAE,QAAQ,OAAM,EAAG,CAC/TkC,CAAGlC,EAAEC,EAAEC,EAAEe,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOf,EAAE,OAAOA,EAAE3I,MAAM,KAAK,EAAE,OAAO0I,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOkC,MAAMlC,GAAG,KAAK,EAAE,OAAOkC,MAAMlC,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOtEmC,CAAGnC,EAAEC,EAAE7M,EAAE4N,KAAKf,EAAE,MAAMe,GAAG,OAAO5N,EARxK,SAAY2M,GAAG,QAAGY,EAAG9a,KAAKib,EAAGf,KAAeY,EAAG9a,KAAKgb,EAAGd,KAAea,EAAGpR,KAAKuQ,GAAUe,EAAGf,IAAG,GAAGc,EAAGd,IAAG,GAAS,GAAE,CAQwDqC,CAAGpC,KAAK,OAAOC,EAAEF,EAAEsC,gBAAgBrC,GAAGD,EAAEuC,aAAatC,EAAE,GAAGC,IAAI7M,EAAEkO,gBAAgBvB,EAAE3M,EAAEmO,cAAc,OAAOtB,EAAE,IAAI7M,EAAEkE,MAAQ,GAAG2I,GAAGD,EAAE5M,EAAEgO,cAAcJ,EAAE5N,EAAEiO,mBAAmB,OAAOpB,EAAEF,EAAEsC,gBAAgBrC,IAAaC,EAAE,KAAX7M,EAAEA,EAAEkE,OAAc,IAAIlE,IAAG,IAAK6M,EAAE,GAAG,GAAGA,EAAEe,EAAEjB,EAAEwC,eAAevB,EAAEhB,EAAEC,GAAGF,EAAEuC,aAAatC,EAAEC,KAAI,CAHjd,0jCAA0jC0B,MAAM,KAAK1J,SAAQ,SAAS8H,GAAG,IAAIC,EAAED,EAAExQ,QAAQsS,EACzmCC,GAAIJ,EAAE1B,GAAG,IAAIe,EAAEf,EAAE,GAAE,EAAGD,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2E4B,MAAM,KAAK1J,SAAQ,SAAS8H,GAAG,IAAIC,EAAED,EAAExQ,QAAQsS,EAAGC,GAAIJ,EAAE1B,GAAG,IAAIe,EAAEf,EAAE,GAAE,EAAGD,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAa9H,SAAQ,SAAS8H,GAAG,IAAIC,EAAED,EAAExQ,QAAQsS,EAAGC,GAAIJ,EAAE1B,GAAG,IAAIe,EAAEf,EAAE,GAAE,EAAGD,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAe9H,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE6B,cAAc,MAAK,GAAG,EAAG,IACldF,EAAEc,UAAU,IAAIzB,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAc9I,SAAQ,SAAS8H,GAAG2B,EAAE3B,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGA,EAAE6B,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAIa,EAAG7C,EAAG8C,mDAAmDC,EAAG3Z,OAAO4Z,IAAI,iBAAiBC,EAAG7Z,OAAO4Z,IAAI,gBAAgBE,EAAG9Z,OAAO4Z,IAAI,kBAAkBG,EAAG/Z,OAAO4Z,IAAI,qBAAqBI,EAAGha,OAAO4Z,IAAI,kBAAkBK,EAAGja,OAAO4Z,IAAI,kBAAkBM,EAAGla,OAAO4Z,IAAI,iBAAiBO,EAAGna,OAAO4Z,IAAI,qBAAqBQ,EAAGpa,OAAO4Z,IAAI,kBAAkBS,EAAGra,OAAO4Z,IAAI,uBAAuBU,EAAGta,OAAO4Z,IAAI,cAAcW,EAAGva,OAAO4Z,IAAI,cAAc5Z,OAAO4Z,IAAI,eAAe5Z,OAAO4Z,IAAI,0BACje,IAAIY,EAAGxa,OAAO4Z,IAAI,mBAAmB5Z,OAAO4Z,IAAI,uBAAuB5Z,OAAO4Z,IAAI,eAAe5Z,OAAO4Z,IAAI,wBAAwB,IAAIa,EAAGza,OAAO0a,SAAS,SAASC,EAAG5D,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAE0D,GAAI1D,EAAE0D,IAAK1D,EAAE,eAA0CA,EAAE,IAAI,CAAC,IAAoB6D,EAAhBC,EAAEpe,OAAOqe,OAAU,SAASC,EAAGhE,GAAG,QAAG,IAAS6D,EAAG,IAAI,MAAMnF,OAAQ,CAAC,MAAMwB,GAAG,IAAID,EAAEC,EAAE/S,MAAM8W,OAAO1K,MAAM,gBAAgBsK,EAAG5D,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK4D,EAAG7D,CAAC,CAAC,IAAIkE,GAAG,EACzb,SAASC,EAAGnE,EAAEC,GAAG,IAAID,GAAGkE,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAIhE,EAAExB,MAAM0F,kBAAkB1F,MAAM0F,uBAAkB,EAAO,IAAI,GAAGnE,EAAE,GAAGA,EAAE,WAAW,MAAMvB,OAAQ,EAAEhZ,OAAOoF,eAAemV,EAAEta,UAAU,QAAQ,CAACsB,IAAI,WAAW,MAAMyX,OAAQ,IAAI,kBAAkB2F,SAASA,QAAQC,UAAU,CAAC,IAAID,QAAQC,UAAUrE,EAAE,GAAG,CAAC,MAAMsE,GAAG,IAAItD,EAAEsD,CAAC,CAACF,QAAQC,UAAUtE,EAAE,GAAGC,EAAE,KAAK,CAAC,IAAIA,EAAEna,MAAM,CAAC,MAAMye,GAAGtD,EAAEsD,CAAC,CAACvE,EAAEla,KAAKma,EAAEta,UAAU,KAAK,CAAC,IAAI,MAAM+Y,OAAQ,CAAC,MAAM6F,GAAGtD,EAAEsD,CAAC,CAACvE,GAAG,CAAC,CAAC,MAAMuE,GAAG,GAAGA,GAAGtD,GAAG,kBAAkBsD,EAAEpX,MAAM,CAAC,IAAI,IAAIkG,EAAEkR,EAAEpX,MAAMyU,MAAM,MACnfV,EAAED,EAAE9T,MAAMyU,MAAM,MAAMT,EAAE9N,EAAEpO,OAAO,EAAEuf,EAAEtD,EAAEjc,OAAO,EAAE,GAAGkc,GAAG,GAAGqD,GAAGnR,EAAE8N,KAAKD,EAAEsD,IAAIA,IAAI,KAAK,GAAGrD,GAAG,GAAGqD,EAAErD,IAAIqD,IAAI,GAAGnR,EAAE8N,KAAKD,EAAEsD,GAAG,CAAC,GAAG,IAAIrD,GAAG,IAAIqD,EAAG,MAAMrD,IAAQ,IAAJqD,GAASnR,EAAE8N,KAAKD,EAAEsD,GAAG,CAAC,IAAIC,EAAE,KAAKpR,EAAE8N,GAAG3R,QAAQ,WAAW,QAA6F,OAArFwQ,EAAE0E,aAAaD,EAAE7e,SAAS,iBAAiB6e,EAAEA,EAAEjV,QAAQ,cAAcwQ,EAAE0E,cAAqBD,CAAC,QAAO,GAAGtD,GAAG,GAAGqD,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQN,GAAG,EAAGxF,MAAM0F,kBAAkBlE,CAAC,CAAC,OAAOF,EAAEA,EAAEA,EAAE0E,aAAa1E,EAAEzL,KAAK,IAAIyP,EAAGhE,GAAG,EAAE,CAC9Z,SAAS2E,EAAG3E,GAAG,OAAOA,EAAE7L,KAAK,KAAK,EAAE,OAAO6P,EAAGhE,EAAEzI,MAAM,KAAK,GAAG,OAAOyM,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAOhE,EAAEmE,EAAGnE,EAAEzI,MAAK,GAAM,KAAK,GAAG,OAAOyI,EAAEmE,EAAGnE,EAAEzI,KAAKqN,QAAO,GAAM,KAAK,EAAE,OAAO5E,EAAEmE,EAAGnE,EAAEzI,MAAK,GAAM,QAAQ,MAAM,GAAG,CACxR,SAASsN,EAAG7E,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE0E,aAAa1E,EAAEzL,MAAM,KAAK,GAAG,kBAAkByL,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK+C,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkBtD,EAAE,OAAOA,EAAE8E,UAAU,KAAK3B,EAAG,OAAOnD,EAAE0E,aAAa,WAAW,YAAY,KAAKxB,EAAG,OAAOlD,EAAE+E,SAASL,aAAa,WAAW,YAAY,KAAKtB,EAAG,IAAInD,EAAED,EAAE4E,OAC7Z,OADoa5E,EAAEA,EAAE0E,eACnd1E,EAAE,MADieA,EAAEC,EAAEyE,aAClfzE,EAAE1L,MAAM,IAAY,cAAcyL,EAAE,IAAI,cAAqBA,EAAE,KAAKuD,EAAG,OAA6B,QAAtBtD,EAAED,EAAE0E,aAAa,MAAczE,EAAE4E,EAAG7E,EAAEzI,OAAO,OAAO,KAAKiM,EAAGvD,EAAED,EAAEgF,SAAShF,EAAEA,EAAEiF,MAAM,IAAI,OAAOJ,EAAG7E,EAAEC,GAAG,CAAC,MAAMC,GAAG,EAAE,OAAO,IAAI,CAC3M,SAASgF,EAAGlF,GAAG,IAAIC,EAAED,EAAEzI,KAAK,OAAOyI,EAAE7L,KAAK,KAAK,GAAG,MAAM,QAAQ,KAAK,EAAE,OAAO8L,EAAEyE,aAAa,WAAW,YAAY,KAAK,GAAG,OAAOzE,EAAE8E,SAASL,aAAa,WAAW,YAAY,KAAK,GAAG,MAAM,qBAAqB,KAAK,GAAG,OAAkB1E,GAAXA,EAAEC,EAAE2E,QAAWF,aAAa1E,EAAEzL,MAAM,GAAG0L,EAAEyE,cAAc,KAAK1E,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK,EAAE,MAAM,WAAW,KAAK,EAAE,OAAOC,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG,OAAO4E,EAAG5E,GAAG,KAAK,EAAE,OAAOA,IAAI+C,EAAG,aAAa,OAAO,KAAK,GAAG,MAAM,YACtf,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,KAAK,GAAG,MAAM,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,oBAAoB/C,EAAE,OAAOA,EAAEyE,aAAazE,EAAE1L,MAAM,KAAK,GAAG,kBAAkB0L,EAAE,OAAOA,EAAE,OAAO,IAAI,CAAC,SAASkF,EAAGnF,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAqB,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,GAAG,CACra,SAASoF,EAAGpF,GAAG,IAAIC,EAAED,EAAEzI,KAAK,OAAOyI,EAAEA,EAAEqF,WAAW,UAAUrF,EAAE6B,gBAAgB,aAAa5B,GAAG,UAAUA,EAAE,CAEtF,SAASqF,EAAGtF,GAAGA,EAAEuF,gBAAgBvF,EAAEuF,cADvD,SAAYvF,GAAG,IAAIC,EAAEmF,EAAGpF,GAAG,UAAU,QAAQE,EAAExa,OAAO8f,yBAAyBxF,EAAE/K,YAAYtP,UAAUsa,GAAGgB,EAAE,GAAGjB,EAAEC,GAAG,IAAID,EAAEpb,eAAeqb,IAAI,qBAAqBC,GAAG,oBAAoBA,EAAEhZ,KAAK,oBAAoBgZ,EAAEjZ,IAAI,CAAC,IAAIoM,EAAE6M,EAAEhZ,IAAIga,EAAEhB,EAAEjZ,IAAiL,OAA7KvB,OAAOoF,eAAekV,EAAEC,EAAE,CAACwF,cAAa,EAAGve,IAAI,WAAW,OAAOmM,EAAEvN,KAAKgB,KAAK,EAAEG,IAAI,SAAS+Y,GAAGiB,EAAE,GAAGjB,EAAEkB,EAAEpb,KAAKgB,KAAKkZ,EAAE,IAAIta,OAAOoF,eAAekV,EAAEC,EAAE,CAACyF,WAAWxF,EAAEwF,aAAmB,CAAChQ,SAAS,WAAW,OAAOuL,CAAC,EAAE0E,SAAS,SAAS3F,GAAGiB,EAAE,GAAGjB,CAAC,EAAE4F,aAAa,WAAW5F,EAAEuF,cACxf,YAAYvF,EAAEC,EAAE,EAAE,CAAC,CAAkD4F,CAAG7F,GAAG,CAAC,SAAS8F,EAAG9F,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEuF,cAAc,IAAItF,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEvK,WAAeuL,EAAE,GAAqD,OAAlDjB,IAAIiB,EAAEmE,EAAGpF,GAAGA,EAAE+F,QAAQ,OAAO,QAAQ/F,EAAExW,QAAOwW,EAAEiB,KAAaf,IAAGD,EAAE0F,SAAS3F,IAAG,EAAM,CAAC,SAASgG,EAAGhG,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBU,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOV,EAAEiG,eAAejG,EAAEkG,IAAI,CAAC,MAAMjG,GAAG,OAAOD,EAAEkG,IAAI,CAAC,CACpa,SAASC,EAAGnG,EAAEC,GAAG,IAAIC,EAAED,EAAE8F,QAAQ,OAAOjC,EAAE,CAAC,EAAE7D,EAAE,CAACmG,oBAAe,EAAOtK,kBAAa,EAAOtS,WAAM,EAAOuc,QAAQ,MAAM7F,EAAEA,EAAEF,EAAEqG,cAAcC,gBAAgB,CAAC,SAASC,EAAGvG,EAAEC,GAAG,IAAIC,EAAE,MAAMD,EAAEnE,aAAa,GAAGmE,EAAEnE,aAAamF,EAAE,MAAMhB,EAAE8F,QAAQ9F,EAAE8F,QAAQ9F,EAAEmG,eAAelG,EAAEiF,EAAG,MAAMlF,EAAEzW,MAAMyW,EAAEzW,MAAM0W,GAAGF,EAAEqG,cAAc,CAACC,eAAerF,EAAEuF,aAAatG,EAAEuG,WAAW,aAAaxG,EAAE1I,MAAM,UAAU0I,EAAE1I,KAAK,MAAM0I,EAAE8F,QAAQ,MAAM9F,EAAEzW,MAAM,CAAC,SAASkd,EAAG1G,EAAEC,GAAe,OAAZA,EAAEA,EAAE8F,UAAiB9D,EAAGjC,EAAE,UAAUC,GAAE,EAAG,CAC9d,SAAS0G,EAAG3G,EAAEC,GAAGyG,EAAG1G,EAAEC,GAAG,IAAIC,EAAEiF,EAAGlF,EAAEzW,OAAOyX,EAAEhB,EAAE1I,KAAK,GAAG,MAAM2I,EAAK,WAAWe,GAAM,IAAIf,GAAG,KAAKF,EAAExW,OAAOwW,EAAExW,OAAO0W,KAAEF,EAAExW,MAAM,GAAG0W,GAAOF,EAAExW,QAAQ,GAAG0W,IAAIF,EAAExW,MAAM,GAAG0W,QAAQ,GAAG,WAAWe,GAAG,UAAUA,EAA8B,YAA3BjB,EAAEsC,gBAAgB,SAAgBrC,EAAErb,eAAe,SAASgiB,GAAG5G,EAAEC,EAAE1I,KAAK2I,GAAGD,EAAErb,eAAe,iBAAiBgiB,GAAG5G,EAAEC,EAAE1I,KAAK4N,EAAGlF,EAAEnE,eAAe,MAAMmE,EAAE8F,SAAS,MAAM9F,EAAEmG,iBAAiBpG,EAAEoG,iBAAiBnG,EAAEmG,eAAe,CACla,SAASS,EAAG7G,EAAEC,EAAEC,GAAG,GAAGD,EAAErb,eAAe,UAAUqb,EAAErb,eAAe,gBAAgB,CAAC,IAAIqc,EAAEhB,EAAE1I,KAAK,KAAK,WAAW0J,GAAG,UAAUA,QAAG,IAAShB,EAAEzW,OAAO,OAAOyW,EAAEzW,OAAO,OAAOyW,EAAE,GAAGD,EAAEqG,cAAcG,aAAatG,GAAGD,IAAID,EAAExW,QAAQwW,EAAExW,MAAMyW,GAAGD,EAAElE,aAAamE,CAAC,CAAU,MAATC,EAAEF,EAAEzL,QAAcyL,EAAEzL,KAAK,IAAIyL,EAAEoG,iBAAiBpG,EAAEqG,cAAcC,eAAe,KAAKpG,IAAIF,EAAEzL,KAAK2L,EAAE,CACzV,SAAS0G,GAAG5G,EAAEC,EAAEC,GAAM,WAAWD,GAAG+F,EAAGhG,EAAE8G,iBAAiB9G,IAAE,MAAME,EAAEF,EAAElE,aAAa,GAAGkE,EAAEqG,cAAcG,aAAaxG,EAAElE,eAAe,GAAGoE,IAAIF,EAAElE,aAAa,GAAGoE,GAAE,CAAC,IAAI6G,GAAG1hB,MAAMC,QAC7K,SAAS0hB,GAAGhH,EAAEC,EAAEC,EAAEe,GAAe,GAAZjB,EAAEA,EAAE9F,QAAW+F,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAI5M,EAAE,EAAEA,EAAE6M,EAAEjb,OAAOoO,IAAI4M,EAAE,IAAIC,EAAE7M,KAAI,EAAG,IAAI6M,EAAE,EAAEA,EAAEF,EAAE/a,OAAOib,IAAI7M,EAAE4M,EAAErb,eAAe,IAAIob,EAAEE,GAAG1W,OAAOwW,EAAEE,GAAG+G,WAAW5T,IAAI2M,EAAEE,GAAG+G,SAAS5T,GAAGA,GAAG4N,IAAIjB,EAAEE,GAAGgH,iBAAgB,EAAG,KAAK,CAAmB,IAAlBhH,EAAE,GAAGiF,EAAGjF,GAAGD,EAAE,KAAS5M,EAAE,EAAEA,EAAE2M,EAAE/a,OAAOoO,IAAI,CAAC,GAAG2M,EAAE3M,GAAG7J,QAAQ0W,EAAiD,OAA9CF,EAAE3M,GAAG4T,UAAS,OAAGhG,IAAIjB,EAAE3M,GAAG6T,iBAAgB,IAAW,OAAOjH,GAAGD,EAAE3M,GAAG8T,WAAWlH,EAAED,EAAE3M,GAAG,CAAC,OAAO4M,IAAIA,EAAEgH,UAAS,EAAG,CAAC,CACxY,SAASG,GAAGpH,EAAEC,GAAG,GAAG,MAAMA,EAAEoH,wBAAwB,MAAM3I,MAAMqB,EAAE,KAAK,OAAO+D,EAAE,CAAC,EAAE7D,EAAE,CAACzW,WAAM,EAAOsS,kBAAa,EAAOwL,SAAS,GAAGtH,EAAEqG,cAAcG,cAAc,CAAC,SAASe,GAAGvH,EAAEC,GAAG,IAAIC,EAAED,EAAEzW,MAAM,GAAG,MAAM0W,EAAE,CAA+B,GAA9BA,EAAED,EAAEqH,SAASrH,EAAEA,EAAEnE,aAAgB,MAAMoE,EAAE,CAAC,GAAG,MAAMD,EAAE,MAAMvB,MAAMqB,EAAE,KAAK,GAAGgH,GAAG7G,GAAG,CAAC,GAAG,EAAEA,EAAEjb,OAAO,MAAMyZ,MAAMqB,EAAE,KAAKG,EAAEA,EAAE,EAAE,CAACD,EAAEC,CAAC,CAAC,MAAMD,IAAIA,EAAE,IAAIC,EAAED,CAAC,CAACD,EAAEqG,cAAc,CAACG,aAAarB,EAAGjF,GAAG,CACnY,SAASsH,GAAGxH,EAAEC,GAAG,IAAIC,EAAEiF,EAAGlF,EAAEzW,OAAOyX,EAAEkE,EAAGlF,EAAEnE,cAAc,MAAMoE,KAAIA,EAAE,GAAGA,KAAMF,EAAExW,QAAQwW,EAAExW,MAAM0W,GAAG,MAAMD,EAAEnE,cAAckE,EAAElE,eAAeoE,IAAIF,EAAElE,aAAaoE,IAAI,MAAMe,IAAIjB,EAAElE,aAAa,GAAGmF,EAAE,CAAC,SAASwG,GAAGzH,GAAG,IAAIC,EAAED,EAAE0H,YAAYzH,IAAID,EAAEqG,cAAcG,cAAc,KAAKvG,GAAG,OAAOA,IAAID,EAAExW,MAAMyW,EAAE,CAAC,SAAS0H,GAAG3H,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAC7c,SAAS4H,GAAG5H,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAE2H,GAAG1H,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,CAAC,CAChK,IAAI6H,GAAe7H,GAAZ8H,IAAY9H,GAAsJ,SAASA,EAAEC,GAAG,GAAG,+BAA+BD,EAAE+H,cAAc,cAAc/H,EAAEA,EAAEgI,UAAU/H,MAAM,CAA2F,KAA1F4H,GAAGA,IAAInH,SAASC,cAAc,QAAUqH,UAAU,QAAQ/H,EAAE/L,UAAUzO,WAAW,SAAawa,EAAE4H,GAAGI,WAAWjI,EAAEiI,YAAYjI,EAAEkI,YAAYlI,EAAEiI,YAAY,KAAKhI,EAAEgI,YAAYjI,EAAEmI,YAAYlI,EAAEgI,WAAW,CAAC,EAAvb,qBAAqBG,OAAOA,MAAMC,wBAAwB,SAASpI,EAAEC,EAAEe,EAAE5N,GAAG+U,MAAMC,yBAAwB,WAAW,OAAOrI,GAAEC,EAAEC,EAAM,GAAE,EAAEF,IACtK,SAASsI,GAAGtI,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAEF,EAAEiI,WAAW,GAAG/H,GAAGA,IAAIF,EAAEuI,WAAW,IAAIrI,EAAE5H,SAAwB,YAAd4H,EAAEsI,UAAUvI,EAAS,CAACD,EAAE0H,YAAYzH,CAAC,CACtH,IAAIwI,GAAG,CAACC,yBAAwB,EAAGC,aAAY,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGC,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAClfC,MAAK,EAAGC,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAIC,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAGtL,EAAEC,EAAEC,GAAG,OAAO,MAAMD,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGC,GAAG,kBAAkBD,GAAG,IAAIA,GAAGwI,GAAG7jB,eAAeob,IAAIyI,GAAGzI,IAAI,GAAGC,GAAGgE,OAAOhE,EAAE,IAAI,CACzb,SAASsL,GAAGvL,EAAEC,GAAa,IAAI,IAAIC,KAAlBF,EAAEA,EAAEwL,MAAmBvL,EAAE,GAAGA,EAAErb,eAAesb,GAAG,CAAC,IAAIe,EAAE,IAAIf,EAAEuL,QAAQ,MAAMpY,EAAEiY,GAAGpL,EAAED,EAAEC,GAAGe,GAAG,UAAUf,IAAIA,EAAE,YAAYe,EAAEjB,EAAE0L,YAAYxL,EAAE7M,GAAG2M,EAAEE,GAAG7M,CAAC,CAAC,CADY3N,OAAOqG,KAAK0c,IAAIvQ,SAAQ,SAAS8H,GAAGqL,GAAGnT,SAAQ,SAAS+H,GAAGA,EAAEA,EAAED,EAAErG,OAAO,GAAGqI,cAAchC,EAAE2L,UAAU,GAAGlD,GAAGxI,GAAGwI,GAAGzI,EAAE,GAAE,IAChI,IAAI4L,GAAG9H,EAAE,CAAC+H,UAAS,GAAI,CAACC,MAAK,EAAGC,MAAK,EAAGC,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAGle,QAAO,EAAGme,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAG5M,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAG2L,GAAG5L,KAAK,MAAMC,EAAEqH,UAAU,MAAMrH,EAAEoH,yBAAyB,MAAM3I,MAAMqB,EAAE,IAAIC,IAAI,GAAG,MAAMC,EAAEoH,wBAAwB,CAAC,GAAG,MAAMpH,EAAEqH,SAAS,MAAM5I,MAAMqB,EAAE,KAAK,GAAG,kBAAkBE,EAAEoH,2BAA2B,WAAWpH,EAAEoH,yBAAyB,MAAM3I,MAAMqB,EAAE,IAAK,CAAC,GAAG,MAAME,EAAEuL,OAAO,kBAAkBvL,EAAEuL,MAAM,MAAM9M,MAAMqB,EAAE,IAAK,CAAC,CAClW,SAAS8M,GAAG7M,EAAEC,GAAG,IAAI,IAAID,EAAEyL,QAAQ,KAAK,MAAM,kBAAkBxL,EAAE6M,GAAG,OAAO9M,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,IAAI+M,GAAG,KAAK,SAASC,GAAGhN,GAA6F,OAA1FA,EAAEA,EAAEiN,QAAQjN,EAAEkN,YAAYzM,QAAS0M,0BAA0BnN,EAAEA,EAAEmN,yBAAgC,IAAInN,EAAE1H,SAAS0H,EAAEoN,WAAWpN,CAAC,CAAC,IAAIqN,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACpc,SAASC,GAAGxN,GAAG,GAAGA,EAAEyN,GAAGzN,GAAG,CAAC,GAAG,oBAAoBqN,GAAG,MAAM3O,MAAMqB,EAAE,MAAM,IAAIE,EAAED,EAAE0N,UAAUzN,IAAIA,EAAE0N,GAAG1N,GAAGoN,GAAGrN,EAAE0N,UAAU1N,EAAEzI,KAAK0I,GAAG,CAAC,CAAC,SAAS2N,GAAG5N,GAAGsN,GAAGC,GAAGA,GAAGnoB,KAAK4a,GAAGuN,GAAG,CAACvN,GAAGsN,GAAGtN,CAAC,CAAC,SAAS6N,KAAK,GAAGP,GAAG,CAAC,IAAItN,EAAEsN,GAAGrN,EAAEsN,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAGxN,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAEhb,OAAO+a,IAAIwN,GAAGvN,EAAED,GAAG,CAAC,CAAC,SAAS8N,GAAG9N,EAAEC,GAAG,OAAOD,EAAEC,EAAE,CAAC,SAAS8N,KAAK,CAAC,IAAIC,IAAG,EAAG,SAASC,GAAGjO,EAAEC,EAAEC,GAAG,GAAG8N,GAAG,OAAOhO,EAAEC,EAAEC,GAAG8N,IAAG,EAAG,IAAI,OAAOF,GAAG9N,EAAEC,EAAEC,EAAE,CAAC,QAAW8N,IAAG,GAAG,OAAOV,IAAI,OAAOC,MAAGQ,KAAKF,KAAI,CAAC,CAChb,SAASK,GAAGlO,EAAEC,GAAG,IAAIC,EAAEF,EAAE0N,UAAU,GAAG,OAAOxN,EAAE,OAAO,KAAK,IAAIe,EAAE0M,GAAGzN,GAAG,GAAG,OAAOe,EAAE,OAAO,KAAKf,EAAEe,EAAEhB,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBgB,GAAGA,EAAEkG,YAAqBlG,IAAI,YAAbjB,EAAEA,EAAEzI,OAAuB,UAAUyI,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGiB,EAAE,MAAMjB,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGE,GAAG,oBACleA,EAAE,MAAMxB,MAAMqB,EAAE,IAAIE,SAASC,IAAI,OAAOA,CAAC,CAAC,IAAIiO,IAAG,EAAG,GAAG3N,EAAG,IAAI,IAAI4N,GAAG,CAAC,EAAE1oB,OAAOoF,eAAesjB,GAAG,UAAU,CAAClnB,IAAI,WAAWinB,IAAG,CAAE,IAAI1N,OAAO4N,iBAAiB,OAAOD,GAAGA,IAAI3N,OAAO6N,oBAAoB,OAAOF,GAAGA,GAAG,CAAC,MAAMpO,IAAGmO,IAAG,CAAE,CAAC,SAASI,GAAGvO,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,EAAEC,EAAEqD,EAAEC,GAAG,IAAIF,EAAElf,MAAMM,UAAU+L,MAAM5L,KAAKd,UAAU,GAAG,IAAIib,EAAEza,MAAM0a,EAAEqE,EAAE,CAAC,MAAMiK,GAAG1nB,KAAK2nB,QAAQD,EAAE,CAAC,CAAC,IAAIE,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACL,QAAQ,SAASzO,GAAG0O,IAAG,EAAGC,GAAG3O,CAAC,GAAG,SAAS+O,GAAG/O,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,EAAEC,EAAEqD,EAAEC,GAAGiK,IAAG,EAAGC,GAAG,KAAKJ,GAAG/oB,MAAMspB,GAAG9pB,UAAU,CACjW,SAASgqB,GAAGhP,GAAG,IAAIC,EAAED,EAAEE,EAAEF,EAAE,GAAGA,EAAEiP,UAAU,KAAKhP,EAAEiP,QAAQjP,EAAEA,EAAEiP,WAAW,CAAClP,EAAEC,EAAE,GAAO,KAAa,MAAjBA,EAAED,GAASmP,SAAcjP,EAAED,EAAEiP,QAAQlP,EAAEC,EAAEiP,aAAalP,EAAE,CAAC,OAAO,IAAIC,EAAE9L,IAAI+L,EAAE,IAAI,CAAC,SAASkP,GAAGpP,GAAG,GAAG,KAAKA,EAAE7L,IAAI,CAAC,IAAI8L,EAAED,EAAEqP,cAAsE,GAAxD,OAAOpP,IAAkB,QAAdD,EAAEA,EAAEiP,aAAqBhP,EAAED,EAAEqP,gBAAmB,OAAOpP,EAAE,OAAOA,EAAEqP,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAGvP,GAAG,GAAGgP,GAAGhP,KAAKA,EAAE,MAAMtB,MAAMqB,EAAE,KAAM,CAE1S,SAASyP,GAAGxP,GAAW,OAAO,QAAfA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAEiP,UAAU,IAAIhP,EAAE,CAAS,GAAG,QAAXA,EAAE+O,GAAGhP,IAAe,MAAMtB,MAAMqB,EAAE,MAAM,OAAOE,IAAID,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAIE,EAAEF,EAAEiB,EAAEhB,IAAI,CAAC,IAAI5M,EAAE6M,EAAEgP,OAAO,GAAG,OAAO7b,EAAE,MAAM,IAAI6N,EAAE7N,EAAE4b,UAAU,GAAG,OAAO/N,EAAE,CAAY,GAAG,QAAdD,EAAE5N,EAAE6b,QAAmB,CAAChP,EAAEe,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG5N,EAAEoc,QAAQvO,EAAEuO,MAAM,CAAC,IAAIvO,EAAE7N,EAAEoc,MAAMvO,GAAG,CAAC,GAAGA,IAAIhB,EAAE,OAAOqP,GAAGlc,GAAG2M,EAAE,GAAGkB,IAAID,EAAE,OAAOsO,GAAGlc,GAAG4M,EAAEiB,EAAEA,EAAEwO,OAAO,CAAC,MAAMhR,MAAMqB,EAAE,KAAM,CAAC,GAAGG,EAAEgP,SAASjO,EAAEiO,OAAOhP,EAAE7M,EAAE4N,EAAEC,MAAM,CAAC,IAAI,IAAIC,GAAE,EAAGqD,EAAEnR,EAAEoc,MAAMjL,GAAG,CAAC,GAAGA,IAAItE,EAAE,CAACiB,GAAE,EAAGjB,EAAE7M,EAAE4N,EAAEC,EAAE,KAAK,CAAC,GAAGsD,IAAIvD,EAAE,CAACE,GAAE,EAAGF,EAAE5N,EAAE6M,EAAEgB,EAAE,KAAK,CAACsD,EAAEA,EAAEkL,OAAO,CAAC,IAAIvO,EAAE,CAAC,IAAIqD,EAAEtD,EAAEuO,MAAMjL,GAAG,CAAC,GAAGA,IAC5ftE,EAAE,CAACiB,GAAE,EAAGjB,EAAEgB,EAAED,EAAE5N,EAAE,KAAK,CAAC,GAAGmR,IAAIvD,EAAE,CAACE,GAAE,EAAGF,EAAEC,EAAEhB,EAAE7M,EAAE,KAAK,CAACmR,EAAEA,EAAEkL,OAAO,CAAC,IAAIvO,EAAE,MAAMzC,MAAMqB,EAAE,KAAM,CAAC,CAAC,GAAGG,EAAE+O,YAAYhO,EAAE,MAAMvC,MAAMqB,EAAE,KAAM,CAAC,GAAG,IAAIG,EAAE/L,IAAI,MAAMuK,MAAMqB,EAAE,MAAM,OAAOG,EAAEwN,UAAUiC,UAAUzP,EAAEF,EAAEC,CAAC,CAAkB2P,CAAG5P,IAAmB6P,GAAG7P,GAAG,IAAI,CAAC,SAAS6P,GAAG7P,GAAG,GAAG,IAAIA,EAAE7L,KAAK,IAAI6L,EAAE7L,IAAI,OAAO6L,EAAE,IAAIA,EAAEA,EAAEyP,MAAM,OAAOzP,GAAG,CAAC,IAAIC,EAAE4P,GAAG7P,GAAG,GAAG,OAAOC,EAAE,OAAOA,EAAED,EAAEA,EAAE0P,OAAO,CAAC,OAAO,IAAI,CAC1X,IAAII,GAAGhQ,EAAGiQ,0BAA0BC,GAAGlQ,EAAGmQ,wBAAwBC,GAAGpQ,EAAGqQ,qBAAqBC,GAAGtQ,EAAGuQ,sBAAsBC,GAAExQ,EAAGyQ,aAAaC,GAAG1Q,EAAG2Q,iCAAiCC,GAAG5Q,EAAG6Q,2BAA2BC,GAAG9Q,EAAG+Q,8BAA8BC,GAAGhR,EAAGiR,wBAAwBC,GAAGlR,EAAGmR,qBAAqBC,GAAGpR,EAAGqR,sBAAsBC,GAAG,KAAKC,GAAG,KACvV,IAAIC,GAAG5gB,KAAK6gB,MAAM7gB,KAAK6gB,MAAiC,SAAYvR,GAAU,OAAPA,KAAK,EAAS,IAAIA,EAAE,GAAG,IAAIwR,GAAGxR,GAAGyR,GAAG,GAAG,CAAC,EAA/ED,GAAG9gB,KAAKghB,IAAID,GAAG/gB,KAAKihB,IAA4D,IAAIC,GAAG,GAAGC,GAAG,QAC7H,SAASC,GAAG9R,GAAG,OAAOA,GAAGA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,QAAFA,EAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,OAAS,UAAFA,EAAY,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,WAAW,OAAO,WACzgB,QAAQ,OAAOA,EAAE,CAAC,SAAS+R,GAAG/R,EAAEC,GAAG,IAAIC,EAAEF,EAAEgS,aAAa,GAAG,IAAI9R,EAAE,OAAO,EAAE,IAAIe,EAAE,EAAE5N,EAAE2M,EAAEiS,eAAe/Q,EAAElB,EAAEkS,YAAY/Q,EAAI,UAAFjB,EAAY,GAAG,IAAIiB,EAAE,CAAC,IAAIqD,EAAErD,GAAG9N,EAAE,IAAImR,EAAEvD,EAAE6Q,GAAGtN,GAAS,KAALtD,GAAGC,KAAUF,EAAE6Q,GAAG5Q,GAAI,MAAa,KAAPC,EAAEjB,GAAG7M,GAAQ4N,EAAE6Q,GAAG3Q,GAAG,IAAID,IAAID,EAAE6Q,GAAG5Q,IAAI,GAAG,IAAID,EAAE,OAAO,EAAE,GAAG,IAAIhB,GAAGA,IAAIgB,GAAG,KAAKhB,EAAE5M,MAAKA,EAAE4N,GAAGA,KAAEC,EAAEjB,GAAGA,IAAQ,KAAK5M,GAAG,KAAO,QAAF6N,IAAY,OAAOjB,EAA0C,GAAxC,KAAO,EAAFgB,KAAOA,GAAK,GAAFf,GAA4B,KAAtBD,EAAED,EAAEmS,gBAAwB,IAAInS,EAAEA,EAAEoS,cAAcnS,GAAGgB,EAAE,EAAEhB,GAAc5M,EAAE,IAAb6M,EAAE,GAAGoR,GAAGrR,IAAUgB,GAAGjB,EAAEE,GAAGD,IAAI5M,EAAE,OAAO4N,CAAC,CACvc,SAASoR,GAAGrS,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAOC,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAOA,EAAE,IAAuJ,QAAQ,OAAO,EAAE,CACrN,SAASqS,GAAGtS,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAEgS,cAAsChS,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAASuS,KAAK,IAAIvS,EAAE4R,GAAoC,OAA1B,KAAQ,SAAfA,KAAK,MAAqBA,GAAG,IAAW5R,CAAC,CAAC,SAASwS,GAAGxS,GAAG,IAAI,IAAIC,EAAE,GAAGC,EAAE,EAAE,GAAGA,EAAEA,IAAID,EAAE7a,KAAK4a,GAAG,OAAOC,CAAC,CAC3a,SAASwS,GAAGzS,EAAEC,EAAEC,GAAGF,EAAEgS,cAAc/R,EAAE,YAAYA,IAAID,EAAEiS,eAAe,EAAEjS,EAAEkS,YAAY,IAAGlS,EAAEA,EAAE0S,YAAWzS,EAAE,GAAGqR,GAAGrR,IAAQC,CAAC,CACzH,SAASyS,GAAG3S,EAAEC,GAAG,IAAIC,EAAEF,EAAEmS,gBAAgBlS,EAAE,IAAID,EAAEA,EAAEoS,cAAclS,GAAG,CAAC,IAAIe,EAAE,GAAGqQ,GAAGpR,GAAG7M,EAAE,GAAG4N,EAAE5N,EAAE4M,EAAED,EAAEiB,GAAGhB,IAAID,EAAEiB,IAAIhB,GAAGC,IAAI7M,CAAC,CAAC,CAAC,IAAIuf,GAAE,EAAE,SAASC,GAAG7S,GAAS,OAAO,GAAbA,IAAIA,GAAa,EAAEA,EAAE,KAAO,UAAFA,GAAa,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI8S,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAI9rB,IAAI+rB,GAAG,IAAI/rB,IAAIgsB,GAAG,GAAGC,GAAG,6PAA6P/R,MAAM,KAChiB,SAASgS,GAAG5T,EAAEC,GAAG,OAAOD,GAAG,IAAK,UAAU,IAAK,WAAWqT,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGK,OAAO5T,EAAE6T,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBL,GAAGI,OAAO5T,EAAE6T,WAAW,CACnT,SAASC,GAAG/T,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,GAAG,OAAG,OAAOlB,GAAGA,EAAEgU,cAAc9S,GAASlB,EAAE,CAACiU,UAAUhU,EAAEiU,aAAahU,EAAEiU,iBAAiBlT,EAAE+S,YAAY9S,EAAEkT,iBAAiB,CAAC/gB,IAAI,OAAO4M,IAAY,QAARA,EAAEwN,GAAGxN,KAAa8S,GAAG9S,IAAID,IAAEA,EAAEmU,kBAAkBlT,EAAEhB,EAAED,EAAEoU,iBAAiB,OAAO/gB,IAAI,IAAI4M,EAAEwL,QAAQpY,IAAI4M,EAAE7a,KAAKiO,GAAU2M,EAAC,CAEpR,SAASqU,GAAGrU,GAAG,IAAIC,EAAEqU,GAAGtU,EAAEiN,QAAQ,GAAG,OAAOhN,EAAE,CAAC,IAAIC,EAAE8O,GAAG/O,GAAG,GAAG,OAAOC,EAAE,GAAW,MAARD,EAAEC,EAAE/L,MAAY,GAAW,QAAR8L,EAAEmP,GAAGlP,IAA4D,OAA/CF,EAAEiU,UAAUhU,OAAEiT,GAAGlT,EAAEuU,UAAS,WAAWvB,GAAG9S,EAAE,SAAgB,GAAG,IAAID,GAAGC,EAAEwN,UAAUiC,QAAQN,cAAcmF,aAAmE,YAArDxU,EAAEiU,UAAU,IAAI/T,EAAE/L,IAAI+L,EAAEwN,UAAU+G,cAAc,KAAY,CAACzU,EAAEiU,UAAU,IAAI,CAClT,SAASS,GAAG1U,GAAG,GAAG,OAAOA,EAAEiU,UAAU,OAAM,EAAG,IAAI,IAAIhU,EAAED,EAAEoU,iBAAiB,EAAEnU,EAAEhb,QAAQ,CAAC,IAAIib,EAAEyU,GAAG3U,EAAEkU,aAAalU,EAAEmU,iBAAiBlU,EAAE,GAAGD,EAAEgU,aAAa,GAAG,OAAO9T,EAAiG,OAAe,QAARD,EAAEwN,GAAGvN,KAAa6S,GAAG9S,GAAGD,EAAEiU,UAAU/T,GAAE,EAA3H,IAAIe,EAAE,IAAtBf,EAAEF,EAAEgU,aAAwB/e,YAAYiL,EAAE3I,KAAK2I,GAAG6M,GAAG9L,EAAEf,EAAE+M,OAAO2H,cAAc3T,GAAG8L,GAAG,KAA0D9M,EAAE4U,OAAO,CAAC,OAAM,CAAE,CAAC,SAASC,GAAG9U,EAAEC,EAAEC,GAAGwU,GAAG1U,IAAIE,EAAE2T,OAAO5T,EAAE,CAAC,SAAS8U,KAAK5B,IAAG,EAAG,OAAOE,IAAIqB,GAAGrB,MAAMA,GAAG,MAAM,OAAOC,IAAIoB,GAAGpB,MAAMA,GAAG,MAAM,OAAOC,IAAImB,GAAGnB,MAAMA,GAAG,MAAMC,GAAGtb,QAAQ4c,IAAIrB,GAAGvb,QAAQ4c,GAAG,CACnf,SAASE,GAAGhV,EAAEC,GAAGD,EAAEiU,YAAYhU,IAAID,EAAEiU,UAAU,KAAKd,KAAKA,IAAG,EAAGrT,EAAGiQ,0BAA0BjQ,EAAGiR,wBAAwBgE,KAAK,CAC5H,SAASE,GAAGjV,GAAG,SAASC,EAAEA,GAAG,OAAO+U,GAAG/U,EAAED,EAAE,CAAC,GAAG,EAAEoT,GAAGnuB,OAAO,CAAC+vB,GAAG5B,GAAG,GAAGpT,GAAG,IAAI,IAAIE,EAAE,EAAEA,EAAEkT,GAAGnuB,OAAOib,IAAI,CAAC,IAAIe,EAAEmS,GAAGlT,GAAGe,EAAEgT,YAAYjU,IAAIiB,EAAEgT,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOZ,IAAI2B,GAAG3B,GAAGrT,GAAG,OAAOsT,IAAI0B,GAAG1B,GAAGtT,GAAG,OAAOuT,IAAIyB,GAAGzB,GAAGvT,GAAGwT,GAAGtb,QAAQ+H,GAAGwT,GAAGvb,QAAQ+H,GAAOC,EAAE,EAAEA,EAAEwT,GAAGzuB,OAAOib,KAAIe,EAAEyS,GAAGxT,IAAK+T,YAAYjU,IAAIiB,EAAEgT,UAAU,MAAM,KAAK,EAAEP,GAAGzuB,QAAiB,QAARib,EAAEwT,GAAG,IAAYO,WAAYI,GAAGnU,GAAG,OAAOA,EAAE+T,WAAWP,GAAGmB,OAAO,CAAC,IAAIK,GAAGxS,EAAGyS,wBAAwBC,IAAG,EAC5a,SAASC,GAAGrV,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAEuf,GAAE1R,EAAEgU,GAAGI,WAAWJ,GAAGI,WAAW,KAAK,IAAI1C,GAAE,EAAE2C,GAAGvV,EAAEC,EAAEC,EAAEe,EAAE,CAAC,QAAQ2R,GAAEvf,EAAE6hB,GAAGI,WAAWpU,CAAC,CAAC,CAAC,SAASsU,GAAGxV,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAEuf,GAAE1R,EAAEgU,GAAGI,WAAWJ,GAAGI,WAAW,KAAK,IAAI1C,GAAE,EAAE2C,GAAGvV,EAAEC,EAAEC,EAAEe,EAAE,CAAC,QAAQ2R,GAAEvf,EAAE6hB,GAAGI,WAAWpU,CAAC,CAAC,CACjO,SAASqU,GAAGvV,EAAEC,EAAEC,EAAEe,GAAG,GAAGmU,GAAG,CAAC,IAAI/hB,EAAEshB,GAAG3U,EAAEC,EAAEC,EAAEe,GAAG,GAAG,OAAO5N,EAAEoiB,GAAGzV,EAAEC,EAAEgB,EAAEyU,GAAGxV,GAAG0T,GAAG5T,EAAEiB,QAAQ,GANtF,SAAYjB,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,OAAO4M,GAAG,IAAK,UAAU,OAAOoT,GAAGU,GAAGV,GAAGrT,EAAEC,EAAEC,EAAEe,EAAE5N,IAAG,EAAG,IAAK,YAAY,OAAOigB,GAAGS,GAAGT,GAAGtT,EAAEC,EAAEC,EAAEe,EAAE5N,IAAG,EAAG,IAAK,YAAY,OAAOkgB,GAAGQ,GAAGR,GAAGvT,EAAEC,EAAEC,EAAEe,EAAE5N,IAAG,EAAG,IAAK,cAAc,IAAI6N,EAAE7N,EAAEygB,UAAkD,OAAxCN,GAAGvsB,IAAIia,EAAE6S,GAAGP,GAAGtsB,IAAIga,IAAI,KAAKlB,EAAEC,EAAEC,EAAEe,EAAE5N,KAAU,EAAG,IAAK,oBAAoB,OAAO6N,EAAE7N,EAAEygB,UAAUL,GAAGxsB,IAAIia,EAAE6S,GAAGN,GAAGvsB,IAAIga,IAAI,KAAKlB,EAAEC,EAAEC,EAAEe,EAAE5N,KAAI,EAAG,OAAM,CAAE,CAM1QsiB,CAAGtiB,EAAE2M,EAAEC,EAAEC,EAAEe,GAAGA,EAAE2U,uBAAuB,GAAGhC,GAAG5T,EAAEiB,GAAK,EAAFhB,IAAM,EAAE0T,GAAGlI,QAAQzL,GAAG,CAAC,KAAK,OAAO3M,GAAG,CAAC,IAAI6N,EAAEuM,GAAGpa,GAA0D,GAAvD,OAAO6N,GAAG4R,GAAG5R,GAAiB,QAAdA,EAAEyT,GAAG3U,EAAEC,EAAEC,EAAEe,KAAawU,GAAGzV,EAAEC,EAAEgB,EAAEyU,GAAGxV,GAAMgB,IAAI7N,EAAE,MAAMA,EAAE6N,CAAC,CAAC,OAAO7N,GAAG4N,EAAE2U,iBAAiB,MAAMH,GAAGzV,EAAEC,EAAEgB,EAAE,KAAKf,EAAE,CAAC,CAAC,IAAIwV,GAAG,KACpU,SAASf,GAAG3U,EAAEC,EAAEC,EAAEe,GAA2B,GAAxByU,GAAG,KAAwB,QAAX1V,EAAEsU,GAAVtU,EAAEgN,GAAG/L,KAAuB,GAAW,QAARhB,EAAE+O,GAAGhP,IAAYA,EAAE,UAAU,GAAW,MAARE,EAAED,EAAE9L,KAAW,CAAS,GAAG,QAAX6L,EAAEoP,GAAGnP,IAAe,OAAOD,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAIE,EAAE,CAAC,GAAGD,EAAEyN,UAAUiC,QAAQN,cAAcmF,aAAa,OAAO,IAAIvU,EAAE9L,IAAI8L,EAAEyN,UAAU+G,cAAc,KAAKzU,EAAE,IAAI,MAAMC,IAAID,IAAIA,EAAE,MAAW,OAAL0V,GAAG1V,EAAS,IAAI,CAC7S,SAAS6V,GAAG7V,GAAG,OAAOA,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,OAAO,EAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,OAAO,EACpqC,IAAK,UAAU,OAAOwQ,MAAM,KAAKE,GAAG,OAAO,EAAE,KAAKE,GAAG,OAAO,EAAE,KAAKE,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,OAAO,GAAG,CAAC,IAAI4E,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIhW,EAAkBiB,EAAhBhB,EAAE8V,GAAG7V,EAAED,EAAEhb,OAASoO,EAAE,UAAUyiB,GAAGA,GAAGtsB,MAAMssB,GAAGpO,YAAYxG,EAAE7N,EAAEpO,OAAO,IAAI+a,EAAE,EAAEA,EAAEE,GAAGD,EAAED,KAAK3M,EAAE2M,GAAGA,KAAK,IAAImB,EAAEjB,EAAEF,EAAE,IAAIiB,EAAE,EAAEA,GAAGE,GAAGlB,EAAEC,EAAEe,KAAK5N,EAAE6N,EAAED,GAAGA,KAAK,OAAO+U,GAAG3iB,EAAE3B,MAAMsO,EAAE,EAAEiB,EAAE,EAAEA,OAAE,EAAO,CACxY,SAASiV,GAAGlW,GAAG,IAAIC,EAAED,EAAEmW,QAA+E,MAAvE,aAAanW,EAAgB,KAAbA,EAAEA,EAAEoW,WAAgB,KAAKnW,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAASqW,KAAK,OAAM,CAAE,CAAC,SAASC,KAAK,OAAM,CAAE,CAC5K,SAASC,GAAGvW,GAAG,SAASC,EAAEA,EAAEgB,EAAE5N,EAAE6N,EAAEC,GAA6G,IAAI,IAAIjB,KAAlHpZ,KAAK0vB,WAAWvW,EAAEnZ,KAAK2vB,YAAYpjB,EAAEvM,KAAKyQ,KAAK0J,EAAEna,KAAKktB,YAAY9S,EAAEpa,KAAKmmB,OAAO9L,EAAEra,KAAK4vB,cAAc,KAAkB1W,EAAEA,EAAEpb,eAAesb,KAAKD,EAAED,EAAEE,GAAGpZ,KAAKoZ,GAAGD,EAAEA,EAAEiB,GAAGA,EAAEhB,IAAgI,OAA5HpZ,KAAK6vB,oBAAoB,MAAMzV,EAAE0V,iBAAiB1V,EAAE0V,kBAAiB,IAAK1V,EAAE2V,aAAaR,GAAGC,GAAGxvB,KAAKgwB,qBAAqBR,GAAUxvB,IAAI,CAC9E,OAD+Egd,EAAE7D,EAAEta,UAAU,CAACoxB,eAAe,WAAWjwB,KAAK8vB,kBAAiB,EAAG,IAAI5W,EAAElZ,KAAKktB,YAAYhU,IAAIA,EAAE+W,eAAe/W,EAAE+W,iBAAiB,mBAAmB/W,EAAE6W,cAC7e7W,EAAE6W,aAAY,GAAI/vB,KAAK6vB,mBAAmBN,GAAG,EAAET,gBAAgB,WAAW,IAAI5V,EAAElZ,KAAKktB,YAAYhU,IAAIA,EAAE4V,gBAAgB5V,EAAE4V,kBAAkB,mBAAmB5V,EAAEgX,eAAehX,EAAEgX,cAAa,GAAIlwB,KAAKgwB,qBAAqBT,GAAG,EAAEY,QAAQ,WAAW,EAAEC,aAAab,KAAYpW,CAAC,CACjR,IAAoLkX,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAAS1X,GAAG,OAAOA,EAAE0X,WAAW1a,KAAKlD,KAAK,EAAE8c,iBAAiB,EAAEe,UAAU,GAAGC,GAAGrB,GAAGe,IAAIO,GAAG/T,EAAE,CAAC,EAAEwT,GAAG,CAACQ,KAAK,EAAEC,OAAO,IAAIC,GAAGzB,GAAGsB,IAAaI,GAAGnU,EAAE,CAAC,EAAE+T,GAAG,CAACK,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAAShZ,GAAG,YAAO,IAASA,EAAEgZ,cAAchZ,EAAEiZ,cAAcjZ,EAAEkN,WAAWlN,EAAEkZ,UAAUlZ,EAAEiZ,YAAYjZ,EAAEgZ,aAAa,EAAEG,UAAU,SAASnZ,GAAG,MAAG,cAC3eA,EAASA,EAAEmZ,WAAUnZ,IAAIqX,KAAKA,IAAI,cAAcrX,EAAEzI,MAAM4f,GAAGnX,EAAEkY,QAAQb,GAAGa,QAAQd,GAAGpX,EAAEmY,QAAQd,GAAGc,SAASf,GAAGD,GAAG,EAAEE,GAAGrX,GAAUmX,GAAE,EAAEiC,UAAU,SAASpZ,GAAG,MAAM,cAAcA,EAAEA,EAAEoZ,UAAUhC,EAAE,IAAIiC,GAAG9C,GAAG0B,IAAiCqB,GAAG/C,GAA7BzS,EAAE,CAAC,EAAEmU,GAAG,CAACsB,aAAa,KAA4CC,GAAGjD,GAA9BzS,EAAE,CAAC,EAAE+T,GAAG,CAACmB,cAAc,KAA0ES,GAAGlD,GAA5DzS,EAAE,CAAC,EAAEwT,GAAG,CAACoC,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAcC,GAAG/V,EAAE,CAAC,EAAEwT,GAAG,CAACwC,cAAc,SAAS9Z,GAAG,MAAM,kBAAkBA,EAAEA,EAAE8Z,cAAcrZ,OAAOqZ,aAAa,IAAIC,GAAGxD,GAAGsD,IAAyBG,GAAGzD,GAArBzS,EAAE,CAAC,EAAEwT,GAAG,CAACvuB,KAAK,KAAckxB,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGpb,GAAG,IAAIC,EAAEnZ,KAAKktB,YAAY,OAAO/T,EAAE2Y,iBAAiB3Y,EAAE2Y,iBAAiB5Y,MAAIA,EAAE+a,GAAG/a,OAAMC,EAAED,EAAK,CAAC,SAAS6Y,KAAK,OAAOuC,EAAE,CAChS,IAAIC,GAAGvX,EAAE,CAAC,EAAE+T,GAAG,CAAChyB,IAAI,SAASma,GAAG,GAAGA,EAAEna,IAAI,CAAC,IAAIoa,EAAEga,GAAGja,EAAEna,MAAMma,EAAEna,IAAI,GAAG,iBAAiBoa,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAaD,EAAEzI,KAAc,MAARyI,EAAEkW,GAAGlW,IAAU,QAAQvV,OAAO6wB,aAAatb,GAAI,YAAYA,EAAEzI,MAAM,UAAUyI,EAAEzI,KAAKujB,GAAG9a,EAAEmW,UAAU,eAAe,EAAE,EAAEoF,KAAK,EAAEjd,SAAS,EAAEka,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE6C,OAAO,EAAEC,OAAO,EAAE7C,iBAAiBC,GAAGzC,SAAS,SAASpW,GAAG,MAAM,aAAaA,EAAEzI,KAAK2e,GAAGlW,GAAG,CAAC,EAAEmW,QAAQ,SAASnW,GAAG,MAAM,YAAYA,EAAEzI,MAAM,UAAUyI,EAAEzI,KAAKyI,EAAEmW,QAAQ,CAAC,EAAEuF,MAAM,SAAS1b,GAAG,MAAM,aAC7eA,EAAEzI,KAAK2e,GAAGlW,GAAG,YAAYA,EAAEzI,MAAM,UAAUyI,EAAEzI,KAAKyI,EAAEmW,QAAQ,CAAC,IAAIwF,GAAGpF,GAAG8E,IAAiIO,GAAGrF,GAA7HzS,EAAE,CAAC,EAAEmU,GAAG,CAACnE,UAAU,EAAE+H,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAG/F,GAArHzS,EAAE,CAAC,EAAE+T,GAAG,CAAC0E,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAE/D,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0E6D,GAAGnG,GAA3DzS,EAAE,CAAC,EAAEwT,GAAG,CAAC9V,aAAa,EAAEmY,YAAY,EAAEC,cAAc,KAAc+C,GAAG7Y,EAAE,CAAC,EAAEmU,GAAG,CAAC2E,OAAO,SAAS5c,GAAG,MAAM,WAAWA,EAAEA,EAAE4c,OAAO,gBAAgB5c,GAAGA,EAAE6c,YAAY,CAAC,EACnfC,OAAO,SAAS9c,GAAG,MAAM,WAAWA,EAAEA,EAAE8c,OAAO,gBAAgB9c,GAAGA,EAAE+c,YAAY,eAAe/c,GAAGA,EAAEgd,WAAW,CAAC,EAAEC,OAAO,EAAEC,UAAU,IAAIC,GAAG5G,GAAGoG,IAAIS,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAG7c,GAAI,qBAAqBC,OAAO6c,GAAG,KAAK9c,GAAI,iBAAiBE,WAAW4c,GAAG5c,SAAS6c,cAAc,IAAIC,GAAGhd,GAAI,cAAcC,SAAS6c,GAAGG,GAAGjd,KAAM6c,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAGjzB,OAAO6wB,aAAa,IAAIqC,IAAG,EAC1W,SAASC,GAAG5d,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAIod,GAAG3R,QAAQxL,EAAEkW,SAAS,IAAK,UAAU,OAAO,MAAMlW,EAAEkW,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAAS0H,GAAG7d,GAAc,MAAM,kBAAjBA,EAAEA,EAAE+X,SAAkC,SAAS/X,EAAEA,EAAEjX,KAAK,IAAI,CAAC,IAAI+0B,IAAG,EAE9Q,IAAIC,GAAG,CAACC,OAAM,EAAGC,MAAK,EAAGC,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAGC,OAAM,EAAGpzB,QAAO,EAAGqzB,UAAS,EAAGlhB,OAAM,EAAGmhB,QAAO,EAAGC,KAAI,EAAGC,MAAK,EAAG1jB,MAAK,EAAG2jB,KAAI,EAAGC,MAAK,GAAI,SAASC,GAAG3e,GAAG,IAAIC,EAAED,GAAGA,EAAEqF,UAAUrF,EAAEqF,SAASxD,cAAc,MAAM,UAAU5B,IAAI8d,GAAG/d,EAAEzI,MAAM,aAAa0I,CAAO,CAAC,SAAS2e,GAAG5e,EAAEC,EAAEC,EAAEe,GAAG2M,GAAG3M,GAAsB,GAAnBhB,EAAE4e,GAAG5e,EAAE,aAAgBhb,SAASib,EAAE,IAAI0X,GAAG,WAAW,SAAS,KAAK1X,EAAEe,GAAGjB,EAAE5a,KAAK,CAAC05B,MAAM5e,EAAE6e,UAAU9e,IAAI,CAAC,IAAI+e,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGlf,GAAGmf,GAAGnf,EAAE,EAAE,CAAC,SAASof,GAAGpf,GAAe,GAAG8F,EAATuZ,GAAGrf,IAAY,OAAOA,CAAC,CACpe,SAASsf,GAAGtf,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,CAAC,CAAC,IAAIsf,IAAG,EAAG,GAAG/e,EAAG,CAAC,IAAIgf,GAAG,GAAGhf,EAAG,CAAC,IAAIif,GAAG,YAAY/e,SAAS,IAAI+e,GAAG,CAAC,IAAIC,GAAGhf,SAASC,cAAc,OAAO+e,GAAGnd,aAAa,UAAU,WAAWkd,GAAG,oBAAoBC,GAAGC,OAAO,CAACH,GAAGC,EAAE,MAAMD,IAAG,EAAGD,GAAGC,MAAM9e,SAAS6c,cAAc,EAAE7c,SAAS6c,aAAa,CAAC,SAASqC,KAAKZ,KAAKA,GAAGa,YAAY,mBAAmBC,IAAIb,GAAGD,GAAG,KAAK,CAAC,SAASc,GAAG9f,GAAG,GAAG,UAAUA,EAAEwB,cAAc4d,GAAGH,IAAI,CAAC,IAAIhf,EAAE,GAAG2e,GAAG3e,EAAEgf,GAAGjf,EAAEgN,GAAGhN,IAAIiO,GAAGiR,GAAGjf,EAAE,CAAC,CAC/b,SAAS8f,GAAG/f,EAAEC,EAAEC,GAAG,YAAYF,GAAG4f,KAAUX,GAAG/e,GAAR8e,GAAG/e,GAAU+f,YAAY,mBAAmBF,KAAK,aAAa9f,GAAG4f,IAAI,CAAC,SAASK,GAAGjgB,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOof,GAAGH,GAAG,CAAC,SAASiB,GAAGlgB,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAOof,GAAGnf,EAAE,CAAC,SAASkgB,GAAGngB,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAOof,GAAGnf,EAAE,CAAiE,IAAImgB,GAAG,oBAAoB16B,OAAOonB,GAAGpnB,OAAOonB,GAA5G,SAAY9M,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,CAAC,EACtW,SAASogB,GAAGrgB,EAAEC,GAAG,GAAGmgB,GAAGpgB,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIC,EAAExa,OAAOqG,KAAKiU,GAAGiB,EAAEvb,OAAOqG,KAAKkU,GAAG,GAAGC,EAAEjb,SAASgc,EAAEhc,OAAO,OAAM,EAAG,IAAIgc,EAAE,EAAEA,EAAEf,EAAEjb,OAAOgc,IAAI,CAAC,IAAI5N,EAAE6M,EAAEe,GAAG,IAAIL,EAAG9a,KAAKma,EAAE5M,KAAK+sB,GAAGpgB,EAAE3M,GAAG4M,EAAE5M,IAAI,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,SAASitB,GAAGtgB,GAAG,KAAKA,GAAGA,EAAEiI,YAAYjI,EAAEA,EAAEiI,WAAW,OAAOjI,CAAC,CACtU,SAASugB,GAAGvgB,EAAEC,GAAG,IAAwBgB,EAApBf,EAAEogB,GAAGtgB,GAAO,IAAJA,EAAE,EAAYE,GAAG,CAAC,GAAG,IAAIA,EAAE5H,SAAS,CAA0B,GAAzB2I,EAAEjB,EAAEE,EAAEwH,YAAYziB,OAAU+a,GAAGC,GAAGgB,GAAGhB,EAAE,MAAM,CAACZ,KAAKa,EAAExV,OAAOuV,EAAED,GAAGA,EAAEiB,CAAC,CAACjB,EAAE,CAAC,KAAKE,GAAG,CAAC,GAAGA,EAAEsgB,YAAY,CAACtgB,EAAEA,EAAEsgB,YAAY,MAAMxgB,CAAC,CAACE,EAAEA,EAAEkN,UAAU,CAAClN,OAAE,CAAM,CAACA,EAAEogB,GAAGpgB,EAAE,CAAC,CAAC,SAASugB,GAAGzgB,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAE1H,YAAY2H,GAAG,IAAIA,EAAE3H,SAASmoB,GAAGzgB,EAAEC,EAAEmN,YAAY,aAAapN,EAAEA,EAAE0gB,SAASzgB,KAAGD,EAAE2gB,4BAAwD,GAA7B3gB,EAAE2gB,wBAAwB1gB,KAAY,CAC9Z,SAAS2gB,KAAK,IAAI,IAAI5gB,EAAES,OAAOR,EAAE+F,IAAK/F,aAAaD,EAAE6gB,mBAAmB,CAAC,IAAI,IAAI3gB,EAAE,kBAAkBD,EAAE6gB,cAAcxiB,SAASyiB,IAAI,CAAC,MAAM9f,GAAGf,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAMD,EAAE+F,GAA/BhG,EAAEC,EAAE6gB,eAAgCpgB,SAAS,CAAC,OAAOT,CAAC,CAAC,SAAS+gB,GAAGhhB,GAAG,IAAIC,EAAED,GAAGA,EAAEqF,UAAUrF,EAAEqF,SAASxD,cAAc,OAAO5B,IAAI,UAAUA,IAAI,SAASD,EAAEzI,MAAM,WAAWyI,EAAEzI,MAAM,QAAQyI,EAAEzI,MAAM,QAAQyI,EAAEzI,MAAM,aAAayI,EAAEzI,OAAO,aAAa0I,GAAG,SAASD,EAAEihB,gBAAgB,CACxa,SAASC,GAAGlhB,GAAG,IAAIC,EAAE2gB,KAAK1gB,EAAEF,EAAEmhB,YAAYlgB,EAAEjB,EAAEohB,eAAe,GAAGnhB,IAAIC,GAAGA,GAAGA,EAAE4G,eAAe2Z,GAAGvgB,EAAE4G,cAAcua,gBAAgBnhB,GAAG,CAAC,GAAG,OAAOe,GAAG+f,GAAG9gB,GAAG,GAAGD,EAAEgB,EAAEnQ,WAAc,KAARkP,EAAEiB,EAAElQ,OAAiBiP,EAAEC,GAAG,mBAAmBC,EAAEA,EAAEohB,eAAerhB,EAAEC,EAAEqhB,aAAa7wB,KAAKsJ,IAAIgG,EAAEE,EAAE1W,MAAMvE,aAAa,IAAG+a,GAAGC,EAAEC,EAAE4G,eAAepG,WAAWT,EAAEuhB,aAAa/gB,QAASghB,aAAa,CAACzhB,EAAEA,EAAEyhB,eAAe,IAAIpuB,EAAE6M,EAAEwH,YAAYziB,OAAOic,EAAExQ,KAAKsJ,IAAIiH,EAAEnQ,MAAMuC,GAAG4N,OAAE,IAASA,EAAElQ,IAAImQ,EAAExQ,KAAKsJ,IAAIiH,EAAElQ,IAAIsC,IAAI2M,EAAE0hB,QAAQxgB,EAAED,IAAI5N,EAAE4N,EAAEA,EAAEC,EAAEA,EAAE7N,GAAGA,EAAEktB,GAAGrgB,EAAEgB,GAAG,IAAIC,EAAEof,GAAGrgB,EACvfe,GAAG5N,GAAG8N,IAAI,IAAInB,EAAE2hB,YAAY3hB,EAAE4hB,aAAavuB,EAAEgM,MAAMW,EAAE6hB,eAAexuB,EAAE3I,QAAQsV,EAAE8hB,YAAY3gB,EAAE9B,MAAMW,EAAE+hB,cAAc5gB,EAAEzW,WAAUuV,EAAEA,EAAE7C,eAAgB4kB,SAAS3uB,EAAEgM,KAAKhM,EAAE3I,QAAQsV,EAAEiiB,kBAAkB/gB,EAAED,GAAGjB,EAAEkiB,SAASjiB,GAAGD,EAAE0hB,OAAOvgB,EAAE9B,KAAK8B,EAAEzW,UAAUuV,EAAEkiB,OAAOhhB,EAAE9B,KAAK8B,EAAEzW,QAAQsV,EAAEkiB,SAASjiB,IAAI,CAAM,IAALA,EAAE,GAAOD,EAAEE,EAAEF,EAAEA,EAAEoN,YAAY,IAAIpN,EAAE1H,UAAU2H,EAAE7a,KAAK,CAAC8Z,QAAQc,EAAEoiB,KAAKpiB,EAAEqiB,WAAWC,IAAItiB,EAAEuiB,YAAmD,IAAvC,oBAAoBriB,EAAEsiB,OAAOtiB,EAAEsiB,QAAYtiB,EAAE,EAAEA,EAAED,EAAEhb,OAAOib,KAAIF,EAAEC,EAAEC,IAAKhB,QAAQmjB,WAAWriB,EAAEoiB,KAAKpiB,EAAEd,QAAQqjB,UAAUviB,EAAEsiB,GAAG,CAAC,CACzf,IAAIG,GAAGjiB,GAAI,iBAAiBE,UAAU,IAAIA,SAAS6c,aAAamF,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAG9iB,EAAEC,EAAEC,GAAG,IAAIe,EAAEf,EAAEO,SAASP,EAAEA,EAAEQ,SAAS,IAAIR,EAAE5H,SAAS4H,EAAEA,EAAE4G,cAAc+b,IAAI,MAAMH,IAAIA,KAAK1c,EAAG/E,KAAU,mBAALA,EAAEyhB,KAAyB1B,GAAG/f,GAAGA,EAAE,CAACnQ,MAAMmQ,EAAEqgB,eAAevwB,IAAIkQ,EAAEsgB,cAAuFtgB,EAAE,CAAC2gB,YAA3E3gB,GAAGA,EAAE6F,eAAe7F,EAAE6F,cAAc0a,aAAa/gB,QAAQghB,gBAA+BG,WAAWC,aAAa5gB,EAAE4gB,aAAaC,UAAU7gB,EAAE6gB,UAAUC,YAAY9gB,EAAE8gB,aAAca,IAAIvC,GAAGuC,GAAG3hB,KAAK2hB,GAAG3hB,EAAsB,GAApBA,EAAE4d,GAAG8D,GAAG,aAAgB19B,SAASgb,EAAE,IAAI2X,GAAG,WAAW,SAAS,KAAK3X,EAAEC,GAAGF,EAAE5a,KAAK,CAAC05B,MAAM7e,EAAE8e,UAAU9d,IAAIhB,EAAEgN,OAAOyV,KAAK,CACtf,SAASK,GAAG/iB,EAAEC,GAAG,IAAIC,EAAE,CAAC,EAAiF,OAA/EA,EAAEF,EAAE6B,eAAe5B,EAAE4B,cAAc3B,EAAE,SAASF,GAAG,SAASC,EAAEC,EAAE,MAAMF,GAAG,MAAMC,EAASC,CAAC,CAAC,IAAI8iB,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,CAAC,EAAEC,GAAG,CAAC,EACpF,SAASC,GAAGvjB,GAAG,GAAGqjB,GAAGrjB,GAAG,OAAOqjB,GAAGrjB,GAAG,IAAIgjB,GAAGhjB,GAAG,OAAOA,EAAE,IAAYE,EAARD,EAAE+iB,GAAGhjB,GAAK,IAAIE,KAAKD,EAAE,GAAGA,EAAErb,eAAesb,IAAIA,KAAKojB,GAAG,OAAOD,GAAGrjB,GAAGC,EAAEC,GAAG,OAAOF,CAAC,CAA/XQ,IAAK8iB,GAAG5iB,SAASC,cAAc,OAAO6K,MAAM,mBAAmB/K,gBAAgBuiB,GAAGC,aAAaO,iBAAiBR,GAAGE,mBAAmBM,iBAAiBR,GAAGG,eAAeK,WAAW,oBAAoB/iB,eAAeuiB,GAAGI,cAAc9N,YAAwJ,IAAImO,GAAGF,GAAG,gBAAgBG,GAAGH,GAAG,sBAAsBI,GAAGJ,GAAG,kBAAkBK,GAAGL,GAAG,iBAAiBM,GAAG,IAAIn8B,IAAIo8B,GAAG,smBAAsmBliB,MAAM,KAC/lC,SAASmiB,GAAG/jB,EAAEC,GAAG4jB,GAAG58B,IAAI+Y,EAAEC,GAAGK,EAAGL,EAAE,CAACD,GAAG,CAAC,IAAI,IAAIgkB,GAAG,EAAEA,GAAGF,GAAG7+B,OAAO++B,KAAK,CAAC,IAAIC,GAAGH,GAAGE,IAA2DD,GAApDE,GAAGpiB,cAAuD,MAAtCoiB,GAAG,GAAGjiB,cAAciiB,GAAGvyB,MAAM,IAAiB,CAACqyB,GAAGN,GAAG,kBAAkBM,GAAGL,GAAG,wBAAwBK,GAAGJ,GAAG,oBAAoBI,GAAG,WAAW,iBAAiBA,GAAG,UAAU,WAAWA,GAAG,WAAW,UAAUA,GAAGH,GAAG,mBAAmBrjB,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAC7cA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoEsB,MAAM,MAAMtB,EAAG,WAAW,uFAAuFsB,MAAM,MAAMtB,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2DsB,MAAM,MAAMtB,EAAG,qBAAqB,6DAA6DsB,MAAM,MAC/ftB,EAAG,sBAAsB,8DAA8DsB,MAAM,MAAM,IAAIsiB,GAAG,6NAA6NtiB,MAAM,KAAKuiB,GAAG,IAAIj8B,IAAI,0CAA0C0Z,MAAM,KAAKwiB,OAAOF,KACzZ,SAASG,GAAGrkB,EAAEC,EAAEC,GAAG,IAAIe,EAAEjB,EAAEzI,MAAM,gBAAgByI,EAAE0W,cAAcxW,EAlDjE,SAAYF,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,EAAEC,EAAEqD,EAAEC,GAA4B,GAAzBsK,GAAGvpB,MAAMsB,KAAK9B,WAAc0pB,GAAG,CAAC,IAAGA,GAAgC,MAAMhQ,MAAMqB,EAAE,MAA1C,IAAIwE,EAAEoK,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAGtK,EAAE,CAAC,CAkDpE+f,CAAGrjB,EAAEhB,OAAE,EAAOD,GAAGA,EAAE0W,cAAc,IAAI,CACxG,SAASyI,GAAGnf,EAAEC,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIC,EAAE,EAAEA,EAAEF,EAAE/a,OAAOib,IAAI,CAAC,IAAIe,EAAEjB,EAAEE,GAAG7M,EAAE4N,EAAE6d,MAAM7d,EAAEA,EAAE8d,UAAU/e,EAAE,CAAC,IAAIkB,OAAE,EAAO,GAAGjB,EAAE,IAAI,IAAIkB,EAAEF,EAAEhc,OAAO,EAAE,GAAGkc,EAAEA,IAAI,CAAC,IAAIqD,EAAEvD,EAAEE,GAAGsD,EAAED,EAAE+f,SAAShgB,EAAEC,EAAEkS,cAA2B,GAAblS,EAAEA,EAAEggB,SAAY/f,IAAIvD,GAAG7N,EAAEyjB,uBAAuB,MAAM9W,EAAEqkB,GAAGhxB,EAAEmR,EAAED,GAAGrD,EAAEuD,CAAC,MAAM,IAAItD,EAAE,EAAEA,EAAEF,EAAEhc,OAAOkc,IAAI,CAAoD,GAA5CsD,GAAPD,EAAEvD,EAAEE,IAAOojB,SAAShgB,EAAEC,EAAEkS,cAAclS,EAAEA,EAAEggB,SAAY/f,IAAIvD,GAAG7N,EAAEyjB,uBAAuB,MAAM9W,EAAEqkB,GAAGhxB,EAAEmR,EAAED,GAAGrD,EAAEuD,CAAC,CAAC,CAAC,CAAC,GAAGmK,GAAG,MAAM5O,EAAE6O,GAAGD,IAAG,EAAGC,GAAG,KAAK7O,CAAE,CAC5a,SAASykB,GAAEzkB,EAAEC,GAAG,IAAIC,EAAED,EAAEykB,SAAI,IAASxkB,IAAIA,EAAED,EAAEykB,IAAI,IAAIx8B,KAAK,IAAI+Y,EAAEjB,EAAE,WAAWE,EAAE/Y,IAAI8Z,KAAK0jB,GAAG1kB,EAAED,EAAE,GAAE,GAAIE,EAAE1X,IAAIyY,GAAG,CAAC,SAAS2jB,GAAG5kB,EAAEC,EAAEC,GAAG,IAAIe,EAAE,EAAEhB,IAAIgB,GAAG,GAAG0jB,GAAGzkB,EAAEF,EAAEiB,EAAEhB,EAAE,CAAC,IAAI4kB,GAAG,kBAAkBn0B,KAAKo0B,SAASr/B,SAAS,IAAIiM,MAAM,GAAG,SAASqzB,GAAG/kB,GAAG,IAAIA,EAAE6kB,IAAI,CAAC7kB,EAAE6kB,KAAI,EAAGzkB,EAAGlI,SAAQ,SAAS+H,GAAG,oBAAoBA,IAAIkkB,GAAGh9B,IAAI8Y,IAAI2kB,GAAG3kB,GAAE,EAAGD,GAAG4kB,GAAG3kB,GAAE,EAAGD,GAAG,IAAG,IAAIC,EAAE,IAAID,EAAE1H,SAAS0H,EAAEA,EAAE8G,cAAc,OAAO7G,GAAGA,EAAE4kB,MAAM5kB,EAAE4kB,KAAI,EAAGD,GAAG,mBAAkB,EAAG3kB,GAAG,CAAC,CACjb,SAAS0kB,GAAG3kB,EAAEC,EAAEC,EAAEe,GAAG,OAAO4U,GAAG5V,IAAI,KAAK,EAAE,IAAI5M,EAAEgiB,GAAG,MAAM,KAAK,EAAEhiB,EAAEmiB,GAAG,MAAM,QAAQniB,EAAEkiB,GAAGrV,EAAE7M,EAAE2xB,KAAK,KAAK/kB,EAAEC,EAAEF,GAAG3M,OAAE,GAAQ8a,IAAI,eAAelO,GAAG,cAAcA,GAAG,UAAUA,IAAI5M,GAAE,GAAI4N,OAAE,IAAS5N,EAAE2M,EAAEqO,iBAAiBpO,EAAEC,EAAE,CAAC+kB,SAAQ,EAAGC,QAAQ7xB,IAAI2M,EAAEqO,iBAAiBpO,EAAEC,GAAE,QAAI,IAAS7M,EAAE2M,EAAEqO,iBAAiBpO,EAAEC,EAAE,CAACglB,QAAQ7xB,IAAI2M,EAAEqO,iBAAiBpO,EAAEC,GAAE,EAAG,CAClV,SAASuV,GAAGzV,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,IAAI6N,EAAED,EAAE,GAAG,KAAO,EAAFhB,IAAM,KAAO,EAAFA,IAAM,OAAOgB,EAAEjB,EAAE,OAAO,CAAC,GAAG,OAAOiB,EAAE,OAAO,IAAIE,EAAEF,EAAE9M,IAAI,GAAG,IAAIgN,GAAG,IAAIA,EAAE,CAAC,IAAIqD,EAAEvD,EAAEyM,UAAU+G,cAAc,GAAGjQ,IAAInR,GAAG,IAAImR,EAAElM,UAAUkM,EAAE4I,aAAa/Z,EAAE,MAAM,GAAG,IAAI8N,EAAE,IAAIA,EAAEF,EAAEiO,OAAO,OAAO/N,GAAG,CAAC,IAAIsD,EAAEtD,EAAEhN,IAAI,IAAG,IAAIsQ,GAAG,IAAIA,MAAKA,EAAEtD,EAAEuM,UAAU+G,iBAAkBphB,GAAG,IAAIoR,EAAEnM,UAAUmM,EAAE2I,aAAa/Z,GAAE,OAAO8N,EAAEA,EAAE+N,MAAM,CAAC,KAAK,OAAO1K,GAAG,CAAS,GAAG,QAAXrD,EAAEmT,GAAG9P,IAAe,OAAe,GAAG,KAAXC,EAAEtD,EAAEhN,MAAc,IAAIsQ,EAAE,CAACxD,EAAEC,EAAEC,EAAE,SAASnB,CAAC,CAACwE,EAAEA,EAAE4I,UAAU,CAAC,CAACnM,EAAEA,EAAEiO,MAAM,CAACjB,IAAG,WAAW,IAAIhN,EAAEC,EAAE7N,EAAE2Z,GAAG9M,GAAGiB,EAAE,GACpfnB,EAAE,CAAC,IAAIwE,EAAEqf,GAAG38B,IAAI8Y,GAAG,QAAG,IAASwE,EAAE,CAAC,IAAIC,EAAEmT,GAAG3mB,EAAE+O,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIkW,GAAGhW,GAAG,MAAMF,EAAE,IAAK,UAAU,IAAK,QAAQyE,EAAEkX,GAAG,MAAM,IAAK,UAAU1qB,EAAE,QAAQwT,EAAE+U,GAAG,MAAM,IAAK,WAAWvoB,EAAE,OAAOwT,EAAE+U,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY/U,EAAE+U,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAItZ,EAAE4Y,OAAO,MAAM9Y,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcyE,EAAE4U,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO5U,EAC1iB6U,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa7U,EAAE6X,GAAG,MAAM,KAAKmH,GAAG,KAAKC,GAAG,KAAKC,GAAGlf,EAAEgV,GAAG,MAAM,KAAKmK,GAAGnf,EAAEiY,GAAG,MAAM,IAAK,SAASjY,EAAEuT,GAAG,MAAM,IAAK,QAAQvT,EAAE0Y,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQ1Y,EAAEsV,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYtV,EAAEmX,GAAG,IAAIuJ,EAAE,KAAO,EAAFllB,GAAKmlB,GAAGD,GAAG,WAAWnlB,EAAEqlB,EAAEF,EAAE,OAAO3gB,EAAEA,EAAE,UAAU,KAAKA,EAAE2gB,EAAE,GAAG,IAAI,IAAQG,EAAJC,EAAEtkB,EAAI,OAC/eskB,GAAG,CAAK,IAAIC,GAARF,EAAEC,GAAU7X,UAAsF,GAA5E,IAAI4X,EAAEnxB,KAAK,OAAOqxB,IAAIF,EAAEE,EAAE,OAAOH,IAAc,OAAVG,EAAEtX,GAAGqX,EAAEF,KAAYF,EAAE//B,KAAKqgC,GAAGF,EAAEC,EAAEF,MAASF,EAAE,MAAMG,EAAEA,EAAErW,MAAM,CAAC,EAAEiW,EAAElgC,SAASuf,EAAE,IAAIC,EAAED,EAAEvT,EAAE,KAAKiP,EAAE7M,GAAG8N,EAAE/b,KAAK,CAAC05B,MAAMta,EAAEua,UAAUoG,IAAI,CAAC,CAAC,GAAG,KAAO,EAAFllB,GAAK,CAA4E,GAAnCwE,EAAE,aAAazE,GAAG,eAAeA,KAAtEwE,EAAE,cAAcxE,GAAG,gBAAgBA,IAA2CE,IAAI6M,MAAK9b,EAAEiP,EAAE8Y,eAAe9Y,EAAE+Y,eAAe3E,GAAGrjB,KAAIA,EAAEy0B,OAAgBjhB,GAAGD,KAAGA,EAAEnR,EAAEoN,SAASpN,EAAEA,GAAGmR,EAAEnR,EAAEyT,eAAetC,EAAEgd,aAAahd,EAAEmhB,aAAallB,OAAUgE,GAAqCA,EAAExD,EAAiB,QAAfhQ,GAAnCA,EAAEiP,EAAE8Y,eAAe9Y,EAAEgZ,WAAkB5E,GAAGrjB,GAAG,QAC9dA,KAARm0B,EAAEpW,GAAG/d,KAAU,IAAIA,EAAEkD,KAAK,IAAIlD,EAAEkD,OAAKlD,EAAE,QAAUwT,EAAE,KAAKxT,EAAEgQ,GAAKwD,IAAIxT,GAAE,CAAgU,GAA/Tk0B,EAAE9L,GAAGmM,EAAE,eAAeH,EAAE,eAAeE,EAAE,QAAW,eAAevlB,GAAG,gBAAgBA,IAAEmlB,EAAEvJ,GAAG4J,EAAE,iBAAiBH,EAAE,iBAAiBE,EAAE,WAAUH,EAAE,MAAM3gB,EAAED,EAAE6a,GAAG5a,GAAG6gB,EAAE,MAAMr0B,EAAEuT,EAAE6a,GAAGpuB,IAAGuT,EAAE,IAAI2gB,EAAEK,EAAED,EAAE,QAAQ9gB,EAAEvE,EAAE7M,IAAK4Z,OAAOmY,EAAE5gB,EAAEwU,cAAcsM,EAAEE,EAAE,KAAKlR,GAAGjhB,KAAK4N,KAAIkkB,EAAE,IAAIA,EAAEE,EAAEE,EAAE,QAAQt0B,EAAEiP,EAAE7M,IAAK4Z,OAAOqY,EAAEH,EAAEnM,cAAcoM,EAAEI,EAAEL,GAAGC,EAAEI,EAAK/gB,GAAGxT,EAAEgP,EAAE,CAAa,IAARolB,EAAEp0B,EAAEs0B,EAAE,EAAMD,EAAhBH,EAAE1gB,EAAkB6gB,EAAEA,EAAEM,GAAGN,GAAGC,IAAQ,IAAJD,EAAE,EAAME,EAAEH,EAAEG,EAAEA,EAAEI,GAAGJ,GAAGF,IAAI,KAAK,EAAEC,EAAED,GAAGH,EAAES,GAAGT,GAAGI,IAAI,KAAK,EAAED,EAAEC,GAAGF,EACpfO,GAAGP,GAAGC,IAAI,KAAKC,KAAK,CAAC,GAAGJ,IAAIE,GAAG,OAAOA,GAAGF,IAAIE,EAAEpW,UAAU,MAAMhP,EAAEklB,EAAES,GAAGT,GAAGE,EAAEO,GAAGP,EAAE,CAACF,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAO1gB,GAAGohB,GAAG1kB,EAAEqD,EAAEC,EAAE0gB,GAAE,GAAI,OAAOl0B,GAAG,OAAOm0B,GAAGS,GAAG1kB,EAAEikB,EAAEn0B,EAAEk0B,GAAE,EAAG,CAA8D,GAAG,YAA1C1gB,GAAjBD,EAAEvD,EAAEoe,GAAGpe,GAAGR,QAAW4E,UAAUb,EAAEa,SAASxD,gBAA+B,UAAU4C,GAAG,SAASD,EAAEjN,KAAK,IAAIuuB,EAAGxG,QAAQ,GAAGX,GAAGna,GAAG,GAAG+a,GAAGuG,EAAG3F,OAAO,CAAC2F,EAAG7F,GAAG,IAAI8F,EAAGhG,EAAE,MAAMtb,EAAED,EAAEa,WAAW,UAAUZ,EAAE5C,gBAAgB,aAAa2C,EAAEjN,MAAM,UAAUiN,EAAEjN,QAAQuuB,EAAG5F,IACrV,OAD4V4F,IAAKA,EAAGA,EAAG9lB,EAAEiB,IAAK2d,GAAGzd,EAAE2kB,EAAG5lB,EAAE7M,IAAW0yB,GAAIA,EAAG/lB,EAAEwE,EAAEvD,GAAG,aAAajB,IAAI+lB,EAAGvhB,EAAE6B,gBAClf0f,EAAGtf,YAAY,WAAWjC,EAAEjN,MAAMqP,GAAGpC,EAAE,SAASA,EAAEhb,QAAOu8B,EAAG9kB,EAAEoe,GAAGpe,GAAGR,OAAcT,GAAG,IAAK,WAAa2e,GAAGoH,IAAK,SAASA,EAAG9E,mBAAgByB,GAAGqD,EAAGpD,GAAG1hB,EAAE2hB,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAG3hB,EAAEjB,EAAE7M,GAAG,MAAM,IAAK,kBAAkB,GAAGovB,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAG3hB,EAAEjB,EAAE7M,GAAG,IAAI2yB,EAAG,GAAG3I,GAAGpd,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAIimB,EAAG,qBAAqB,MAAMhmB,EAAE,IAAK,iBAAiBgmB,EAAG,mBACpe,MAAMhmB,EAAE,IAAK,oBAAoBgmB,EAAG,sBAAsB,MAAMhmB,EAAEgmB,OAAG,CAAM,MAAMnI,GAAGF,GAAG5d,EAAEE,KAAK+lB,EAAG,oBAAoB,YAAYjmB,GAAG,MAAME,EAAEiW,UAAU8P,EAAG,sBAAsBA,IAAKxI,IAAI,OAAOvd,EAAEub,SAASqC,IAAI,uBAAuBmI,EAAG,qBAAqBA,GAAInI,KAAKkI,EAAG/P,OAAYF,GAAG,UAARD,GAAGziB,GAAkByiB,GAAGtsB,MAAMssB,GAAGpO,YAAYoW,IAAG,IAAiB,GAAZiI,EAAGlH,GAAG5d,EAAEglB,IAAShhC,SAASghC,EAAG,IAAIjM,GAAGiM,EAAGjmB,EAAE,KAAKE,EAAE7M,GAAG8N,EAAE/b,KAAK,CAAC05B,MAAMmH,EAAGlH,UAAUgH,IAAKC,EAAGC,EAAGl9B,KAAKi9B,EAAa,QAATA,EAAGnI,GAAG3d,MAAe+lB,EAAGl9B,KAAKi9B,MAAUA,EAAGxI,GA5BhM,SAAYxd,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAO6d,GAAG5d,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEyb,MAAa,MAAKiC,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAO1d,EAAEC,EAAElX,QAAS20B,IAAIC,GAAG,KAAK3d,EAAE,QAAQ,OAAO,KAAK,CA4BEkmB,CAAGlmB,EAAEE,GA3Bzd,SAAYF,EAAEC,GAAG,GAAG6d,GAAG,MAAM,mBAAmB9d,IAAIqd,IAAIO,GAAG5d,EAAEC,IAAID,EAAEiW,KAAKD,GAAGD,GAAGD,GAAG,KAAKgI,IAAG,EAAG9d,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKC,EAAEuY,SAASvY,EAAEyY,QAAQzY,EAAE0Y,UAAU1Y,EAAEuY,SAASvY,EAAEyY,OAAO,CAAC,GAAGzY,EAAEkmB,MAAM,EAAElmB,EAAEkmB,KAAKlhC,OAAO,OAAOgb,EAAEkmB,KAAK,GAAGlmB,EAAEyb,MAAM,OAAOjxB,OAAO6wB,aAAarb,EAAEyb,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAO+B,IAAI,OAAOxd,EAAEwb,OAAO,KAAKxb,EAAElX,KAAyB,CA2BqFq9B,CAAGpmB,EAAEE,MACje,GADoee,EAAE4d,GAAG5d,EAAE,kBACvehc,SAASoO,EAAE,IAAI2mB,GAAG,gBAAgB,cAAc,KAAK9Z,EAAE7M,GAAG8N,EAAE/b,KAAK,CAAC05B,MAAMzrB,EAAE0rB,UAAU9d,IAAI5N,EAAEtK,KAAKi9B,GAAG,CAAC7G,GAAGhe,EAAElB,EAAE,GAAE,CAAC,SAASwlB,GAAGzlB,EAAEC,EAAEC,GAAG,MAAM,CAACqkB,SAASvkB,EAAEwkB,SAASvkB,EAAEyW,cAAcxW,EAAE,CAAC,SAAS2e,GAAG7e,EAAEC,GAAG,IAAI,IAAIC,EAAED,EAAE,UAAUgB,EAAE,GAAG,OAAOjB,GAAG,CAAC,IAAI3M,EAAE2M,EAAEkB,EAAE7N,EAAEqa,UAAU,IAAIra,EAAEc,KAAK,OAAO+M,IAAI7N,EAAE6N,EAAY,OAAVA,EAAEgN,GAAGlO,EAAEE,KAAYe,EAAEolB,QAAQZ,GAAGzlB,EAAEkB,EAAE7N,IAAc,OAAV6N,EAAEgN,GAAGlO,EAAEC,KAAYgB,EAAE7b,KAAKqgC,GAAGzlB,EAAEkB,EAAE7N,KAAK2M,EAAEA,EAAEkP,MAAM,CAAC,OAAOjO,CAAC,CAAC,SAAS2kB,GAAG5lB,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEkP,aAAalP,GAAG,IAAIA,EAAE7L,KAAK,OAAO6L,GAAI,IAAI,CACnd,SAAS6lB,GAAG7lB,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,IAAI,IAAI6N,EAAEjB,EAAEuW,WAAWrV,EAAE,GAAG,OAAOjB,GAAGA,IAAIe,GAAG,CAAC,IAAIuD,EAAEtE,EAAEuE,EAAED,EAAEyK,UAAU1K,EAAEC,EAAEkJ,UAAU,GAAG,OAAOjJ,GAAGA,IAAIxD,EAAE,MAAM,IAAIuD,EAAErQ,KAAK,OAAOoQ,IAAIC,EAAED,EAAElR,EAAa,OAAVoR,EAAEyJ,GAAGhO,EAAEgB,KAAYC,EAAEklB,QAAQZ,GAAGvlB,EAAEuE,EAAED,IAAKnR,GAAc,OAAVoR,EAAEyJ,GAAGhO,EAAEgB,KAAYC,EAAE/b,KAAKqgC,GAAGvlB,EAAEuE,EAAED,KAAMtE,EAAEA,EAAEgP,MAAM,CAAC,IAAI/N,EAAElc,QAAQ+a,EAAE5a,KAAK,CAAC05B,MAAM7e,EAAE8e,UAAU5d,GAAG,CAAC,IAAImlB,GAAG,SAASC,GAAG,iBAAiB,SAASC,GAAGxmB,GAAG,OAAO,kBAAkBA,EAAEA,EAAE,GAAGA,GAAGxQ,QAAQ82B,GAAG,MAAM92B,QAAQ+2B,GAAG,GAAG,CAAC,SAASE,GAAGzmB,EAAEC,EAAEC,GAAW,GAARD,EAAEumB,GAAGvmB,GAAMumB,GAAGxmB,KAAKC,GAAGC,EAAE,MAAMxB,MAAMqB,EAAE,KAAM,CAAC,SAAS2mB,KAAK,CAC9e,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG7mB,EAAEC,GAAG,MAAM,aAAaD,GAAG,aAAaA,GAAG,kBAAkBC,EAAEqH,UAAU,kBAAkBrH,EAAEqH,UAAU,kBAAkBrH,EAAEoH,yBAAyB,OAAOpH,EAAEoH,yBAAyB,MAAMpH,EAAEoH,wBAAwByf,MAAM,CAC5P,IAAIC,GAAG,oBAAoB1rB,WAAWA,gBAAW,EAAO2rB,GAAG,oBAAoBrrB,aAAaA,kBAAa,EAAOsrB,GAAG,oBAAoBh/B,QAAQA,aAAQ,EAAOi/B,GAAG,oBAAoBC,eAAeA,eAAe,qBAAqBF,GAAG,SAASjnB,GAAG,OAAOinB,GAAGlwB,QAAQ,MAAMqwB,KAAKpnB,GAAGqnB,MAAMC,GAAG,EAAEP,GAAG,SAASO,GAAGtnB,GAAG3E,YAAW,WAAW,MAAM2E,CAAE,GAAE,CACpV,SAASunB,GAAGvnB,EAAEC,GAAG,IAAIC,EAAED,EAAEgB,EAAE,EAAE,EAAE,CAAC,IAAI5N,EAAE6M,EAAEsgB,YAA6B,GAAjBxgB,EAAEkI,YAAYhI,GAAM7M,GAAG,IAAIA,EAAEiF,SAAS,GAAY,QAAT4H,EAAE7M,EAAEtK,MAAc,CAAC,GAAG,IAAIkY,EAA0B,OAAvBjB,EAAEkI,YAAY7U,QAAG4hB,GAAGhV,GAAUgB,GAAG,KAAK,MAAMf,GAAG,OAAOA,GAAG,OAAOA,GAAGe,IAAIf,EAAE7M,CAAC,OAAO6M,GAAG+U,GAAGhV,EAAE,CAAC,SAASunB,GAAGxnB,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAEwgB,YAAY,CAAC,IAAIvgB,EAAED,EAAE1H,SAAS,GAAG,IAAI2H,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAIA,EAAE,CAAU,GAAG,OAAZA,EAAED,EAAEjX,OAAiB,OAAOkX,GAAG,OAAOA,EAAE,MAAM,GAAG,OAAOA,EAAE,OAAO,IAAI,CAAC,CAAC,OAAOD,CAAC,CACjY,SAASynB,GAAGznB,GAAGA,EAAEA,EAAE0nB,gBAAgB,IAAI,IAAIznB,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE1H,SAAS,CAAC,IAAI4H,EAAEF,EAAEjX,KAAK,GAAG,MAAMmX,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAID,EAAE,OAAOD,EAAEC,GAAG,KAAK,OAAOC,GAAGD,GAAG,CAACD,EAAEA,EAAE0nB,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAGj3B,KAAKo0B,SAASr/B,SAAS,IAAIiM,MAAM,GAAGk2B,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGjC,GAAG,oBAAoBiC,GAAGjD,GAAG,iBAAiBiD,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAASrT,GAAGtU,GAAG,IAAIC,EAAED,EAAE4nB,IAAI,GAAG3nB,EAAE,OAAOA,EAAE,IAAI,IAAIC,EAAEF,EAAEoN,WAAWlN,GAAG,CAAC,GAAGD,EAAEC,EAAEwlB,KAAKxlB,EAAE0nB,IAAI,CAAe,GAAd1nB,EAAED,EAAEgP,UAAa,OAAOhP,EAAEwP,OAAO,OAAOvP,GAAG,OAAOA,EAAEuP,MAAM,IAAIzP,EAAEynB,GAAGznB,GAAG,OAAOA,GAAG,CAAC,GAAGE,EAAEF,EAAE4nB,IAAI,OAAO1nB,EAAEF,EAAEynB,GAAGznB,EAAE,CAAC,OAAOC,CAAC,CAAKC,GAAJF,EAAEE,GAAMkN,UAAU,CAAC,OAAO,IAAI,CAAC,SAASK,GAAGzN,GAAkB,QAAfA,EAAEA,EAAE4nB,KAAK5nB,EAAE0lB,MAAc,IAAI1lB,EAAE7L,KAAK,IAAI6L,EAAE7L,KAAK,KAAK6L,EAAE7L,KAAK,IAAI6L,EAAE7L,IAAI,KAAK6L,CAAC,CAAC,SAASqf,GAAGrf,GAAG,GAAG,IAAIA,EAAE7L,KAAK,IAAI6L,EAAE7L,IAAI,OAAO6L,EAAE0N,UAAU,MAAMhP,MAAMqB,EAAE,IAAK,CAAC,SAAS4N,GAAG3N,GAAG,OAAOA,EAAE6nB,KAAK,IAAI,CAAC,IAAIG,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGloB,GAAG,MAAM,CAAC2P,QAAQ3P,EAAE,CACve,SAASmoB,GAAEnoB,GAAG,EAAEioB,KAAKjoB,EAAE2P,QAAQqY,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAASG,GAAEpoB,EAAEC,GAAGgoB,KAAKD,GAAGC,IAAIjoB,EAAE2P,QAAQ3P,EAAE2P,QAAQ1P,CAAC,CAAC,IAAIooB,GAAG,CAAC,EAAEC,GAAEJ,GAAGG,IAAIE,GAAGL,IAAG,GAAIM,GAAGH,GAAG,SAASI,GAAGzoB,EAAEC,GAAG,IAAIC,EAAEF,EAAEzI,KAAKmxB,aAAa,IAAIxoB,EAAE,OAAOmoB,GAAG,IAAIpnB,EAAEjB,EAAE0N,UAAU,GAAGzM,GAAGA,EAAE0nB,8CAA8C1oB,EAAE,OAAOgB,EAAE2nB,0CAA0C,IAAS1nB,EAAL7N,EAAE,CAAC,EAAI,IAAI6N,KAAKhB,EAAE7M,EAAE6N,GAAGjB,EAAEiB,GAAoH,OAAjHD,KAAIjB,EAAEA,EAAE0N,WAAYib,4CAA4C1oB,EAAED,EAAE4oB,0CAA0Cv1B,GAAUA,CAAC,CAC9d,SAASw1B,GAAG7oB,GAAyB,OAAO,QAA7BA,EAAEA,EAAE8oB,yBAAmC,IAAS9oB,CAAC,CAAC,SAAS+oB,KAAKZ,GAAEI,IAAIJ,GAAEG,GAAE,CAAC,SAASU,GAAGhpB,EAAEC,EAAEC,GAAG,GAAGooB,GAAE3Y,UAAU0Y,GAAG,MAAM3pB,MAAMqB,EAAE,MAAMqoB,GAAEE,GAAEroB,GAAGmoB,GAAEG,GAAGroB,EAAE,CAAC,SAAS+oB,GAAGjpB,EAAEC,EAAEC,GAAG,IAAIe,EAAEjB,EAAE0N,UAAgC,GAAtBzN,EAAEA,EAAE6oB,kBAAqB,oBAAoB7nB,EAAEioB,gBAAgB,OAAOhpB,EAAwB,IAAI,IAAI7M,KAA9B4N,EAAEA,EAAEioB,kBAAiC,KAAK71B,KAAK4M,GAAG,MAAMvB,MAAMqB,EAAE,IAAImF,EAAGlF,IAAI,UAAU3M,IAAI,OAAOyQ,EAAE,CAAC,EAAE5D,EAAEe,EAAE,CACxX,SAASkoB,GAAGnpB,GAA2G,OAAxGA,GAAGA,EAAEA,EAAE0N,YAAY1N,EAAEopB,2CAA2Cf,GAAGG,GAAGF,GAAE3Y,QAAQyY,GAAEE,GAAEtoB,GAAGooB,GAAEG,GAAGA,GAAG5Y,UAAe,CAAE,CAAC,SAAS0Z,GAAGrpB,EAAEC,EAAEC,GAAG,IAAIe,EAAEjB,EAAE0N,UAAU,IAAIzM,EAAE,MAAMvC,MAAMqB,EAAE,MAAMG,GAAGF,EAAEipB,GAAGjpB,EAAEC,EAAEuoB,IAAIvnB,EAAEmoB,0CAA0CppB,EAAEmoB,GAAEI,IAAIJ,GAAEG,IAAGF,GAAEE,GAAEtoB,IAAImoB,GAAEI,IAAIH,GAAEG,GAAGroB,EAAE,CAAC,IAAIopB,GAAG,KAAKC,IAAG,EAAGC,IAAG,EAAG,SAASC,GAAGzpB,GAAG,OAAOspB,GAAGA,GAAG,CAACtpB,GAAGspB,GAAGlkC,KAAK4a,EAAE,CAChW,SAAS0pB,KAAK,IAAIF,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAIxpB,EAAE,EAAEC,EAAE2S,GAAE,IAAI,IAAI1S,EAAEopB,GAAG,IAAI1W,GAAE,EAAE5S,EAAEE,EAAEjb,OAAO+a,IAAI,CAAC,IAAIiB,EAAEf,EAAEF,GAAG,GAAGiB,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAACqoB,GAAG,KAAKC,IAAG,CAAE,CAAC,MAAMl2B,GAAG,MAAM,OAAOi2B,KAAKA,GAAGA,GAAG53B,MAAMsO,EAAE,IAAI8P,GAAGY,GAAGgZ,IAAIr2B,CAAE,CAAC,QAAQuf,GAAE3S,EAAEupB,IAAG,CAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAIG,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAG,SAASC,GAAGpqB,EAAEC,GAAG0pB,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAGA,GAAG7pB,EAAE8pB,GAAG7pB,CAAC,CACjV,SAASoqB,GAAGrqB,EAAEC,EAAEC,GAAG6pB,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGA,GAAGjqB,EAAE,IAAIiB,EAAEipB,GAAGlqB,EAAEmqB,GAAG,IAAI92B,EAAE,GAAGie,GAAGrQ,GAAG,EAAEA,KAAK,GAAG5N,GAAG6M,GAAG,EAAE,IAAIgB,EAAE,GAAGoQ,GAAGrR,GAAG5M,EAAE,GAAG,GAAG6N,EAAE,CAAC,IAAIC,EAAE9N,EAAEA,EAAE,EAAE6N,GAAGD,GAAG,GAAGE,GAAG,GAAG1b,SAAS,IAAIwb,IAAIE,EAAE9N,GAAG8N,EAAE+oB,GAAG,GAAG,GAAG5Y,GAAGrR,GAAG5M,EAAE6M,GAAG7M,EAAE4N,EAAEkpB,GAAGjpB,EAAElB,CAAC,MAAMkqB,GAAG,GAAGhpB,EAAEhB,GAAG7M,EAAE4N,EAAEkpB,GAAGnqB,CAAC,CAAC,SAASsqB,GAAGtqB,GAAG,OAAOA,EAAEkP,SAASkb,GAAGpqB,EAAE,GAAGqqB,GAAGrqB,EAAE,EAAE,GAAG,CAAC,SAASuqB,GAAGvqB,GAAG,KAAKA,IAAI6pB,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK,KAAK5pB,IAAIiqB,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKG,GAAGJ,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,IAAI,CAAC,IAAIQ,GAAG,KAAKC,GAAG,KAAKC,IAAE,EAAGC,GAAG,KACje,SAASC,GAAG5qB,EAAEC,GAAG,IAAIC,EAAE2qB,GAAG,EAAE,KAAK,KAAK,GAAG3qB,EAAEf,YAAY,UAAUe,EAAEwN,UAAUzN,EAAEC,EAAEgP,OAAOlP,EAAgB,QAAdC,EAAED,EAAE8qB,YAAoB9qB,EAAE8qB,UAAU,CAAC5qB,GAAGF,EAAEmP,OAAO,IAAIlP,EAAE7a,KAAK8a,EAAE,CACxJ,SAAS6qB,GAAG/qB,EAAEC,GAAG,OAAOD,EAAE7L,KAAK,KAAK,EAAE,IAAI+L,EAAEF,EAAEzI,KAAyE,OAAO,QAA3E0I,EAAE,IAAIA,EAAE3H,UAAU4H,EAAE2B,gBAAgB5B,EAAEoF,SAASxD,cAAc,KAAK5B,KAAmBD,EAAE0N,UAAUzN,EAAEuqB,GAAGxqB,EAAEyqB,GAAGjD,GAAGvnB,EAAEgI,aAAY,GAAO,KAAK,EAAE,OAAoD,QAA7ChI,EAAE,KAAKD,EAAEgrB,cAAc,IAAI/qB,EAAE3H,SAAS,KAAK2H,KAAYD,EAAE0N,UAAUzN,EAAEuqB,GAAGxqB,EAAEyqB,GAAG,MAAK,GAAO,KAAK,GAAG,OAA+B,QAAxBxqB,EAAE,IAAIA,EAAE3H,SAAS,KAAK2H,KAAYC,EAAE,OAAO+pB,GAAG,CAACvU,GAAGwU,GAAGe,SAASd,IAAI,KAAKnqB,EAAEqP,cAAc,CAACC,WAAWrP,EAAEirB,YAAYhrB,EAAEirB,UAAU,aAAYjrB,EAAE2qB,GAAG,GAAG,KAAK,KAAK,IAAKnd,UAAUzN,EAAEC,EAAEgP,OAAOlP,EAAEA,EAAEyP,MAAMvP,EAAEsqB,GAAGxqB,EAAEyqB,GAClf,MAAK,GAAO,QAAQ,OAAM,EAAG,CAAC,SAASW,GAAGprB,GAAG,OAAO,KAAY,EAAPA,EAAEqrB,OAAS,KAAa,IAARrrB,EAAEmP,MAAU,CAAC,SAASmc,GAAGtrB,GAAG,GAAG0qB,GAAE,CAAC,IAAIzqB,EAAEwqB,GAAG,GAAGxqB,EAAE,CAAC,IAAIC,EAAED,EAAE,IAAI8qB,GAAG/qB,EAAEC,GAAG,CAAC,GAAGmrB,GAAGprB,GAAG,MAAMtB,MAAMqB,EAAE,MAAME,EAAEunB,GAAGtnB,EAAEsgB,aAAa,IAAIvf,EAAEupB,GAAGvqB,GAAG8qB,GAAG/qB,EAAEC,GAAG2qB,GAAG3pB,EAAEf,IAAIF,EAAEmP,OAAe,KAATnP,EAAEmP,MAAY,EAAEub,IAAE,EAAGF,GAAGxqB,EAAE,CAAC,KAAK,CAAC,GAAGorB,GAAGprB,GAAG,MAAMtB,MAAMqB,EAAE,MAAMC,EAAEmP,OAAe,KAATnP,EAAEmP,MAAY,EAAEub,IAAE,EAAGF,GAAGxqB,CAAC,CAAC,CAAC,CAAC,SAASurB,GAAGvrB,GAAG,IAAIA,EAAEA,EAAEkP,OAAO,OAAOlP,GAAG,IAAIA,EAAE7L,KAAK,IAAI6L,EAAE7L,KAAK,KAAK6L,EAAE7L,KAAK6L,EAAEA,EAAEkP,OAAOsb,GAAGxqB,CAAC,CACha,SAASwrB,GAAGxrB,GAAG,GAAGA,IAAIwqB,GAAG,OAAM,EAAG,IAAIE,GAAE,OAAOa,GAAGvrB,GAAG0qB,IAAE,GAAG,EAAG,IAAIzqB,EAAkG,IAA/FA,EAAE,IAAID,EAAE7L,QAAQ8L,EAAE,IAAID,EAAE7L,OAAgB8L,EAAE,UAAXA,EAAED,EAAEzI,OAAmB,SAAS0I,IAAI4mB,GAAG7mB,EAAEzI,KAAKyI,EAAEyrB,gBAAmBxrB,IAAIA,EAAEwqB,IAAI,CAAC,GAAGW,GAAGprB,GAAG,MAAM0rB,KAAKhtB,MAAMqB,EAAE,MAAM,KAAKE,GAAG2qB,GAAG5qB,EAAEC,GAAGA,EAAEunB,GAAGvnB,EAAEugB,YAAY,CAAO,GAAN+K,GAAGvrB,GAAM,KAAKA,EAAE7L,IAAI,CAAgD,KAA7B6L,EAAE,QAApBA,EAAEA,EAAEqP,eAAyBrP,EAAEsP,WAAW,MAAW,MAAM5Q,MAAMqB,EAAE,MAAMC,EAAE,CAAiB,IAAhBA,EAAEA,EAAEwgB,YAAgBvgB,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE1H,SAAS,CAAC,IAAI4H,EAAEF,EAAEjX,KAAK,GAAG,OAAOmX,EAAE,CAAC,GAAG,IAAID,EAAE,CAACwqB,GAAGjD,GAAGxnB,EAAEwgB,aAAa,MAAMxgB,CAAC,CAACC,GAAG,KAAK,MAAMC,GAAG,OAAOA,GAAG,OAAOA,GAAGD,GAAG,CAACD,EAAEA,EAAEwgB,WAAW,CAACiK,GACjgB,IAAI,CAAC,MAAMA,GAAGD,GAAGhD,GAAGxnB,EAAE0N,UAAU8S,aAAa,KAAK,OAAM,CAAE,CAAC,SAASkL,KAAK,IAAI,IAAI1rB,EAAEyqB,GAAGzqB,GAAGA,EAAEwnB,GAAGxnB,EAAEwgB,YAAY,CAAC,SAASmL,KAAKlB,GAAGD,GAAG,KAAKE,IAAE,CAAE,CAAC,SAASkB,GAAG5rB,GAAG,OAAO2qB,GAAGA,GAAG,CAAC3qB,GAAG2qB,GAAGvlC,KAAK4a,EAAE,CAAC,IAAI6rB,GAAGnpB,EAAGyS,wBAAwB,SAAS2W,GAAG9rB,EAAEC,GAAG,GAAGD,GAAGA,EAAE+rB,aAAa,CAA4B,IAAI,IAAI7rB,KAAnCD,EAAE6D,EAAE,CAAC,EAAE7D,GAAGD,EAAEA,EAAE+rB,kBAA4B,IAAS9rB,EAAEC,KAAKD,EAAEC,GAAGF,EAAEE,IAAI,OAAOD,CAAC,CAAC,OAAOA,CAAC,CAAC,IAAI+rB,GAAG9D,GAAG,MAAM+D,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,IAAI,CAAC,SAASI,GAAGrsB,GAAG,IAAIC,EAAE+rB,GAAGrc,QAAQwY,GAAE6D,IAAIhsB,EAAEssB,cAAcrsB,CAAC,CACjd,SAASssB,GAAGvsB,EAAEC,EAAEC,GAAG,KAAK,OAAOF,GAAG,CAAC,IAAIiB,EAAEjB,EAAEiP,UAA+H,IAApHjP,EAAEwsB,WAAWvsB,KAAKA,GAAGD,EAAEwsB,YAAYvsB,EAAE,OAAOgB,IAAIA,EAAEurB,YAAYvsB,IAAI,OAAOgB,IAAIA,EAAEurB,WAAWvsB,KAAKA,IAAIgB,EAAEurB,YAAYvsB,GAAMD,IAAIE,EAAE,MAAMF,EAAEA,EAAEkP,MAAM,CAAC,CAAC,SAASud,GAAGzsB,EAAEC,GAAGgsB,GAAGjsB,EAAEmsB,GAAGD,GAAG,KAAsB,QAAjBlsB,EAAEA,EAAE0sB,eAAuB,OAAO1sB,EAAE2sB,eAAe,KAAK3sB,EAAE4sB,MAAM3sB,KAAK4sB,IAAG,GAAI7sB,EAAE2sB,aAAa,KAAK,CACtU,SAASG,GAAG9sB,GAAG,IAAIC,EAAED,EAAEssB,cAAc,GAAGH,KAAKnsB,EAAE,GAAGA,EAAE,CAAC+sB,QAAQ/sB,EAAEgtB,cAAc/sB,EAAEgtB,KAAK,MAAM,OAAOf,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAMvtB,MAAMqB,EAAE,MAAMmsB,GAAGlsB,EAAEisB,GAAGS,aAAa,CAACE,MAAM,EAAED,aAAa3sB,EAAE,MAAMksB,GAAGA,GAAGe,KAAKjtB,EAAE,OAAOC,CAAC,CAAC,IAAIitB,GAAG,KAAK,SAASC,GAAGntB,GAAG,OAAOktB,GAAGA,GAAG,CAACltB,GAAGktB,GAAG9nC,KAAK4a,EAAE,CAAC,SAASotB,GAAGptB,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAE4M,EAAEotB,YAA+E,OAAnE,OAAOh6B,GAAG6M,EAAE+sB,KAAK/sB,EAAEitB,GAAGltB,KAAKC,EAAE+sB,KAAK55B,EAAE45B,KAAK55B,EAAE45B,KAAK/sB,GAAGD,EAAEotB,YAAYntB,EAASotB,GAAGttB,EAAEiB,EAAE,CAChY,SAASqsB,GAAGttB,EAAEC,GAAGD,EAAE4sB,OAAO3sB,EAAE,IAAIC,EAAEF,EAAEiP,UAAqC,IAA3B,OAAO/O,IAAIA,EAAE0sB,OAAO3sB,GAAGC,EAAEF,EAAMA,EAAEA,EAAEkP,OAAO,OAAOlP,GAAGA,EAAEwsB,YAAYvsB,EAAgB,QAAdC,EAAEF,EAAEiP,aAAqB/O,EAAEssB,YAAYvsB,GAAGC,EAAEF,EAAEA,EAAEA,EAAEkP,OAAO,OAAO,IAAIhP,EAAE/L,IAAI+L,EAAEwN,UAAU,IAAI,CAAC,IAAI6f,IAAG,EAAG,SAASC,GAAGxtB,GAAGA,EAAEytB,YAAY,CAACC,UAAU1tB,EAAEqP,cAAcse,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACC,QAAQ,KAAKT,YAAY,KAAKT,MAAM,GAAGmB,QAAQ,KAAK,CACpX,SAASC,GAAGhuB,EAAEC,GAAGD,EAAEA,EAAEytB,YAAYxtB,EAAEwtB,cAAcztB,IAAIC,EAAEwtB,YAAY,CAACC,UAAU1tB,EAAE0tB,UAAUC,gBAAgB3tB,EAAE2tB,gBAAgBC,eAAe5tB,EAAE4tB,eAAeC,OAAO7tB,EAAE6tB,OAAOE,QAAQ/tB,EAAE+tB,SAAS,CAAC,SAASE,GAAGjuB,EAAEC,GAAG,MAAM,CAACiuB,UAAUluB,EAAEmuB,KAAKluB,EAAE9L,IAAI,EAAEi6B,QAAQ,KAAKC,SAAS,KAAKpB,KAAK,KAAK,CACtR,SAASqB,GAAGtuB,EAAEC,EAAEC,GAAG,IAAIe,EAAEjB,EAAEytB,YAAY,GAAG,OAAOxsB,EAAE,OAAO,KAAgB,GAAXA,EAAEA,EAAE4sB,OAAU,KAAO,EAAFU,IAAK,CAAC,IAAIl7B,EAAE4N,EAAE6sB,QAA+D,OAAvD,OAAOz6B,EAAE4M,EAAEgtB,KAAKhtB,GAAGA,EAAEgtB,KAAK55B,EAAE45B,KAAK55B,EAAE45B,KAAKhtB,GAAGgB,EAAE6sB,QAAQ7tB,EAASqtB,GAAGttB,EAAEE,EAAE,CAAoF,OAAnE,QAAhB7M,EAAE4N,EAAEosB,cAAsBptB,EAAEgtB,KAAKhtB,EAAEktB,GAAGlsB,KAAKhB,EAAEgtB,KAAK55B,EAAE45B,KAAK55B,EAAE45B,KAAKhtB,GAAGgB,EAAEosB,YAAYptB,EAASqtB,GAAGttB,EAAEE,EAAE,CAAC,SAASsuB,GAAGxuB,EAAEC,EAAEC,GAAmB,GAAG,QAAnBD,EAAEA,EAAEwtB,eAA0BxtB,EAAEA,EAAE4tB,OAAO,KAAO,QAAF3tB,IAAY,CAAC,IAAIe,EAAEhB,EAAE2sB,MAAwB1sB,GAAlBe,GAAGjB,EAAEgS,aAAkB/R,EAAE2sB,MAAM1sB,EAAEyS,GAAG3S,EAAEE,EAAE,CAAC,CACrZ,SAASuuB,GAAGzuB,EAAEC,GAAG,IAAIC,EAAEF,EAAEytB,YAAYxsB,EAAEjB,EAAEiP,UAAU,GAAG,OAAOhO,GAAoBf,KAAhBe,EAAEA,EAAEwsB,aAAmB,CAAC,IAAIp6B,EAAE,KAAK6N,EAAE,KAAyB,GAAG,QAAvBhB,EAAEA,EAAEytB,iBAA4B,CAAC,EAAE,CAAC,IAAIxsB,EAAE,CAAC+sB,UAAUhuB,EAAEguB,UAAUC,KAAKjuB,EAAEiuB,KAAKh6B,IAAI+L,EAAE/L,IAAIi6B,QAAQluB,EAAEkuB,QAAQC,SAASnuB,EAAEmuB,SAASpB,KAAK,MAAM,OAAO/rB,EAAE7N,EAAE6N,EAAEC,EAAED,EAAEA,EAAE+rB,KAAK9rB,EAAEjB,EAAEA,EAAE+sB,IAAI,OAAO,OAAO/sB,GAAG,OAAOgB,EAAE7N,EAAE6N,EAAEjB,EAAEiB,EAAEA,EAAE+rB,KAAKhtB,CAAC,MAAM5M,EAAE6N,EAAEjB,EAAiH,OAA/GC,EAAE,CAACwtB,UAAUzsB,EAAEysB,UAAUC,gBAAgBt6B,EAAEu6B,eAAe1sB,EAAE2sB,OAAO5sB,EAAE4sB,OAAOE,QAAQ9sB,EAAE8sB,cAAS/tB,EAAEytB,YAAYvtB,EAAQ,CAAoB,QAAnBF,EAAEE,EAAE0tB,gBAAwB1tB,EAAEytB,gBAAgB1tB,EAAED,EAAEitB,KACnfhtB,EAAEC,EAAE0tB,eAAe3tB,CAAC,CACpB,SAASyuB,GAAG1uB,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAE2M,EAAEytB,YAAYF,IAAG,EAAG,IAAIrsB,EAAE7N,EAAEs6B,gBAAgBxsB,EAAE9N,EAAEu6B,eAAeppB,EAAEnR,EAAEw6B,OAAOC,QAAQ,GAAG,OAAOtpB,EAAE,CAACnR,EAAEw6B,OAAOC,QAAQ,KAAK,IAAIrpB,EAAED,EAAED,EAAEE,EAAEwoB,KAAKxoB,EAAEwoB,KAAK,KAAK,OAAO9rB,EAAED,EAAEqD,EAAEpD,EAAE8rB,KAAK1oB,EAAEpD,EAAEsD,EAAE,IAAI+J,EAAExO,EAAEiP,UAAU,OAAOT,KAAoBhK,GAAhBgK,EAAEA,EAAEif,aAAgBG,kBAAmBzsB,IAAI,OAAOqD,EAAEgK,EAAEmf,gBAAgBppB,EAAEC,EAAEyoB,KAAK1oB,EAAEiK,EAAEof,eAAenpB,GAAG,CAAC,GAAG,OAAOvD,EAAE,CAAC,IAAIytB,EAAEt7B,EAAEq6B,UAA6B,IAAnBvsB,EAAE,EAAEqN,EAAEjK,EAAEE,EAAE,KAAKD,EAAEtD,IAAI,CAAC,IAAI0tB,EAAEpqB,EAAE2pB,KAAKU,EAAErqB,EAAE0pB,UAAU,IAAIjtB,EAAE2tB,KAAKA,EAAE,CAAC,OAAOpgB,IAAIA,EAAEA,EAAEye,KAAK,CAACiB,UAAUW,EAAEV,KAAK,EAAEh6B,IAAIqQ,EAAErQ,IAAIi6B,QAAQ5pB,EAAE4pB,QAAQC,SAAS7pB,EAAE6pB,SACvfpB,KAAK,OAAOjtB,EAAE,CAAC,IAAI/O,EAAE+O,EAAEmlB,EAAE3gB,EAAU,OAARoqB,EAAE3uB,EAAE4uB,EAAE3uB,EAASilB,EAAEhxB,KAAK,KAAK,EAAc,GAAG,oBAAflD,EAAEk0B,EAAEiJ,SAAiC,CAACO,EAAE19B,EAAEnL,KAAK+oC,EAAEF,EAAEC,GAAG,MAAM5uB,CAAC,CAAC2uB,EAAE19B,EAAE,MAAM+O,EAAE,KAAK,EAAE/O,EAAEke,OAAe,MAATle,EAAEke,MAAa,IAAI,KAAK,EAAsD,GAAG,QAA3Cyf,EAAE,oBAAd39B,EAAEk0B,EAAEiJ,SAAgCn9B,EAAEnL,KAAK+oC,EAAEF,EAAEC,GAAG39B,SAAe,IAAS29B,EAAE,MAAM5uB,EAAE2uB,EAAE7qB,EAAE,CAAC,EAAE6qB,EAAEC,GAAG,MAAM5uB,EAAE,KAAK,EAAEutB,IAAG,EAAG,CAAC,OAAO/oB,EAAE6pB,UAAU,IAAI7pB,EAAE2pB,OAAOnuB,EAAEmP,OAAO,GAAe,QAAZyf,EAAEv7B,EAAE06B,SAAiB16B,EAAE06B,QAAQ,CAACvpB,GAAGoqB,EAAExpC,KAAKof,GAAG,MAAMqqB,EAAE,CAACX,UAAUW,EAAEV,KAAKS,EAAEz6B,IAAIqQ,EAAErQ,IAAIi6B,QAAQ5pB,EAAE4pB,QAAQC,SAAS7pB,EAAE6pB,SAASpB,KAAK,MAAM,OAAOze,GAAGjK,EAAEiK,EAAEqgB,EAAEpqB,EAAEkqB,GAAGngB,EAAEA,EAAEye,KAAK4B,EAAE1tB,GAAGytB,EAC3e,GAAG,QAAZpqB,EAAEA,EAAEyoB,MAAiB,IAAsB,QAAnBzoB,EAAEnR,EAAEw6B,OAAOC,SAAiB,MAAetpB,GAAJoqB,EAAEpqB,GAAMyoB,KAAK2B,EAAE3B,KAAK,KAAK55B,EAAEu6B,eAAegB,EAAEv7B,EAAEw6B,OAAOC,QAAQ,IAAI,EAAsG,GAA5F,OAAOtf,IAAI/J,EAAEkqB,GAAGt7B,EAAEq6B,UAAUjpB,EAAEpR,EAAEs6B,gBAAgBppB,EAAElR,EAAEu6B,eAAepf,EAA4B,QAA1BvO,EAAE5M,EAAEw6B,OAAOR,aAAwB,CAACh6B,EAAE4M,EAAE,GAAGkB,GAAG9N,EAAE86B,KAAK96B,EAAEA,EAAE45B,WAAW55B,IAAI4M,EAAE,MAAM,OAAOiB,IAAI7N,EAAEw6B,OAAOjB,MAAM,GAAGkC,IAAI3tB,EAAEnB,EAAE4sB,MAAMzrB,EAAEnB,EAAEqP,cAAcsf,CAAC,CAAC,CAC9V,SAASI,GAAG/uB,EAAEC,EAAEC,GAA8B,GAA3BF,EAAEC,EAAE8tB,QAAQ9tB,EAAE8tB,QAAQ,KAAQ,OAAO/tB,EAAE,IAAIC,EAAE,EAAEA,EAAED,EAAE/a,OAAOgb,IAAI,CAAC,IAAIgB,EAAEjB,EAAEC,GAAG5M,EAAE4N,EAAEotB,SAAS,GAAG,OAAOh7B,EAAE,CAAqB,GAApB4N,EAAEotB,SAAS,KAAKptB,EAAEf,EAAK,oBAAoB7M,EAAE,MAAMqL,MAAMqB,EAAE,IAAI1M,IAAIA,EAAEvN,KAAKmb,EAAE,CAAC,CAAC,CAAC,IAAI+tB,IAAI,IAAInvB,EAAGovB,WAAWC,KAAK,SAASC,GAAGnvB,EAAEC,EAAEC,EAAEe,GAA8Bf,EAAE,QAAXA,EAAEA,EAAEe,EAAtBhB,EAAED,EAAEqP,sBAAmC,IAASnP,EAAED,EAAE6D,EAAE,CAAC,EAAE7D,EAAEC,GAAGF,EAAEqP,cAAcnP,EAAE,IAAIF,EAAE4sB,QAAQ5sB,EAAEytB,YAAYC,UAAUxtB,EAAE,CAClX,IAAIkvB,GAAG,CAACC,UAAU,SAASrvB,GAAG,SAAOA,EAAEA,EAAEsvB,kBAAiBtgB,GAAGhP,KAAKA,CAAI,EAAEuvB,gBAAgB,SAASvvB,EAAEC,EAAEC,GAAGF,EAAEA,EAAEsvB,gBAAgB,IAAIruB,EAAEuuB,KAAIn8B,EAAEo8B,GAAGzvB,GAAGkB,EAAE+sB,GAAGhtB,EAAE5N,GAAG6N,EAAEktB,QAAQnuB,OAAE,IAASC,GAAG,OAAOA,IAAIgB,EAAEmtB,SAASnuB,GAAe,QAAZD,EAAEquB,GAAGtuB,EAAEkB,EAAE7N,MAAcq8B,GAAGzvB,EAAED,EAAE3M,EAAE4N,GAAGutB,GAAGvuB,EAAED,EAAE3M,GAAG,EAAEs8B,oBAAoB,SAAS3vB,EAAEC,EAAEC,GAAGF,EAAEA,EAAEsvB,gBAAgB,IAAIruB,EAAEuuB,KAAIn8B,EAAEo8B,GAAGzvB,GAAGkB,EAAE+sB,GAAGhtB,EAAE5N,GAAG6N,EAAE/M,IAAI,EAAE+M,EAAEktB,QAAQnuB,OAAE,IAASC,GAAG,OAAOA,IAAIgB,EAAEmtB,SAASnuB,GAAe,QAAZD,EAAEquB,GAAGtuB,EAAEkB,EAAE7N,MAAcq8B,GAAGzvB,EAAED,EAAE3M,EAAE4N,GAAGutB,GAAGvuB,EAAED,EAAE3M,GAAG,EAAEu8B,mBAAmB,SAAS5vB,EAAEC,GAAGD,EAAEA,EAAEsvB,gBAAgB,IAAIpvB,EAAEsvB,KAAIvuB,EACnfwuB,GAAGzvB,GAAG3M,EAAE46B,GAAG/tB,EAAEe,GAAG5N,EAAEc,IAAI,OAAE,IAAS8L,GAAG,OAAOA,IAAI5M,EAAEg7B,SAASpuB,GAAe,QAAZA,EAAEquB,GAAGtuB,EAAE3M,EAAE4N,MAAcyuB,GAAGzvB,EAAED,EAAEiB,EAAEf,GAAGsuB,GAAGvuB,EAAED,EAAEiB,GAAG,GAAG,SAAS4uB,GAAG7vB,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,EAAEC,GAAiB,MAAM,oBAApBnB,EAAEA,EAAE0N,WAAsCoiB,sBAAsB9vB,EAAE8vB,sBAAsB7uB,EAAEC,EAAEC,IAAGlB,EAAEta,YAAWsa,EAAEta,UAAUoqC,wBAAsB1P,GAAGngB,EAAEe,KAAKof,GAAGhtB,EAAE6N,GAAK,CAC1S,SAAS8uB,GAAGhwB,EAAEC,EAAEC,GAAG,IAAIe,GAAE,EAAG5N,EAAEg1B,GAAOnnB,EAAEjB,EAAEgwB,YAA2W,MAA/V,kBAAkB/uB,GAAG,OAAOA,EAAEA,EAAE4rB,GAAG5rB,IAAI7N,EAAEw1B,GAAG5oB,GAAGuoB,GAAGF,GAAE3Y,QAAyBzO,GAAGD,EAAE,QAAtBA,EAAEhB,EAAEyoB,oBAA4B,IAASznB,GAAGwnB,GAAGzoB,EAAE3M,GAAGg1B,IAAIpoB,EAAE,IAAIA,EAAEC,EAAEgB,GAAGlB,EAAEqP,cAAc,OAAOpP,EAAEiwB,YAAO,IAASjwB,EAAEiwB,MAAMjwB,EAAEiwB,MAAM,KAAKjwB,EAAEkwB,QAAQf,GAAGpvB,EAAE0N,UAAUzN,EAAEA,EAAEqvB,gBAAgBtvB,EAAEiB,KAAIjB,EAAEA,EAAE0N,WAAYib,4CAA4Ct1B,EAAE2M,EAAE4oB,0CAA0C1nB,GAAUjB,CAAC,CAC5Z,SAASmwB,GAAGpwB,EAAEC,EAAEC,EAAEe,GAAGjB,EAAEC,EAAEiwB,MAAM,oBAAoBjwB,EAAEowB,2BAA2BpwB,EAAEowB,0BAA0BnwB,EAAEe,GAAG,oBAAoBhB,EAAEqwB,kCAAkCrwB,EAAEqwB,iCAAiCpwB,EAAEe,GAAGhB,EAAEiwB,QAAQlwB,GAAGovB,GAAGO,oBAAoB1vB,EAAEA,EAAEiwB,MAAM,KAAK,CACpQ,SAASK,GAAGvwB,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAE2M,EAAE0N,UAAUra,EAAEL,MAAMkN,EAAE7M,EAAE68B,MAAMlwB,EAAEqP,cAAchc,EAAE67B,KAAKF,GAAGxB,GAAGxtB,GAAG,IAAIkB,EAAEjB,EAAEgwB,YAAY,kBAAkB/uB,GAAG,OAAOA,EAAE7N,EAAE05B,QAAQD,GAAG5rB,IAAIA,EAAE2nB,GAAG5oB,GAAGuoB,GAAGF,GAAE3Y,QAAQtc,EAAE05B,QAAQtE,GAAGzoB,EAAEkB,IAAI7N,EAAE68B,MAAMlwB,EAAEqP,cAA2C,oBAA7BnO,EAAEjB,EAAEuwB,4BAAiDrB,GAAGnvB,EAAEC,EAAEiB,EAAEhB,GAAG7M,EAAE68B,MAAMlwB,EAAEqP,eAAe,oBAAoBpP,EAAEuwB,0BAA0B,oBAAoBn9B,EAAEo9B,yBAAyB,oBAAoBp9B,EAAEq9B,2BAA2B,oBAAoBr9B,EAAEs9B,qBAAqB1wB,EAAE5M,EAAE68B,MACrf,oBAAoB78B,EAAEs9B,oBAAoBt9B,EAAEs9B,qBAAqB,oBAAoBt9B,EAAEq9B,2BAA2Br9B,EAAEq9B,4BAA4BzwB,IAAI5M,EAAE68B,OAAOd,GAAGO,oBAAoBt8B,EAAEA,EAAE68B,MAAM,MAAMxB,GAAG1uB,EAAEE,EAAE7M,EAAE4N,GAAG5N,EAAE68B,MAAMlwB,EAAEqP,eAAe,oBAAoBhc,EAAEu9B,oBAAoB5wB,EAAEmP,OAAO,QAAQ,CACpS,SAAS0hB,GAAG7wB,EAAEC,EAAEC,GAAW,GAAG,QAAXF,EAAEE,EAAE4wB,MAAiB,oBAAoB9wB,GAAG,kBAAkBA,EAAE,CAAC,GAAGE,EAAE6wB,OAAO,CAAY,GAAX7wB,EAAEA,EAAE6wB,OAAY,CAAC,GAAG,IAAI7wB,EAAE/L,IAAI,MAAMuK,MAAMqB,EAAE,MAAM,IAAIkB,EAAEf,EAAEwN,SAAS,CAAC,IAAIzM,EAAE,MAAMvC,MAAMqB,EAAE,IAAIC,IAAI,IAAI3M,EAAE4N,EAAEC,EAAE,GAAGlB,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAE6wB,KAAK,oBAAoB7wB,EAAE6wB,KAAK7wB,EAAE6wB,IAAIE,aAAa9vB,EAASjB,EAAE6wB,KAAI7wB,EAAE,SAASD,GAAG,IAAIC,EAAE5M,EAAE67B,KAAKjvB,IAAI+uB,KAAK/uB,EAAE5M,EAAE67B,KAAK,CAAC,GAAG,OAAOlvB,SAASC,EAAEiB,GAAGjB,EAAEiB,GAAGlB,CAAC,EAAEC,EAAE+wB,WAAW9vB,EAASjB,EAAC,CAAC,GAAG,kBAAkBD,EAAE,MAAMtB,MAAMqB,EAAE,MAAM,IAAIG,EAAE6wB,OAAO,MAAMryB,MAAMqB,EAAE,IAAIC,GAAI,CAAC,OAAOA,CAAC,CACre,SAASixB,GAAGjxB,EAAEC,GAAuC,MAApCD,EAAEta,OAAOC,UAAUF,SAASK,KAAKma,GAASvB,MAAMqB,EAAE,GAAG,oBAAoBC,EAAE,qBAAqBta,OAAOqG,KAAKkU,GAAGla,KAAK,MAAM,IAAIia,GAAI,CAAC,SAASkxB,GAAGlxB,GAAiB,OAAOC,EAAfD,EAAEiF,OAAejF,EAAEgF,SAAS,CACrM,SAASmsB,GAAGnxB,GAAG,SAASC,EAAEA,EAAEC,GAAG,GAAGF,EAAE,CAAC,IAAIiB,EAAEhB,EAAE6qB,UAAU,OAAO7pB,GAAGhB,EAAE6qB,UAAU,CAAC5qB,GAAGD,EAAEkP,OAAO,IAAIlO,EAAE7b,KAAK8a,EAAE,CAAC,CAAC,SAASA,EAAEA,EAAEe,GAAG,IAAIjB,EAAE,OAAO,KAAK,KAAK,OAAOiB,GAAGhB,EAAEC,EAAEe,GAAGA,EAAEA,EAAEyO,QAAQ,OAAO,IAAI,CAAC,SAASzO,EAAEjB,EAAEC,GAAG,IAAID,EAAE,IAAItY,IAAI,OAAOuY,GAAG,OAAOA,EAAEpa,IAAIma,EAAE/Y,IAAIgZ,EAAEpa,IAAIoa,GAAGD,EAAE/Y,IAAIgZ,EAAEpZ,MAAMoZ,GAAGA,EAAEA,EAAEyP,QAAQ,OAAO1P,CAAC,CAAC,SAAS3M,EAAE2M,EAAEC,GAAsC,OAAnCD,EAAEoxB,GAAGpxB,EAAEC,IAAKpZ,MAAM,EAAEmZ,EAAE0P,QAAQ,KAAY1P,CAAC,CAAC,SAASkB,EAAEjB,EAAEC,EAAEe,GAAa,OAAVhB,EAAEpZ,MAAMoa,EAAMjB,EAA6C,QAAjBiB,EAAEhB,EAAEgP,YAA6BhO,EAAEA,EAAEpa,OAAQqZ,GAAGD,EAAEkP,OAAO,EAAEjP,GAAGe,GAAEhB,EAAEkP,OAAO,EAASjP,IAArGD,EAAEkP,OAAO,QAAQjP,EAAqF,CAAC,SAASiB,EAAElB,GACzd,OAD4dD,GAC7f,OAAOC,EAAEgP,YAAYhP,EAAEkP,OAAO,GAAUlP,CAAC,CAAC,SAASuE,EAAExE,EAAEC,EAAEC,EAAEe,GAAG,OAAG,OAAOhB,GAAG,IAAIA,EAAE9L,MAAW8L,EAAEoxB,GAAGnxB,EAAEF,EAAEqrB,KAAKpqB,IAAKiO,OAAOlP,EAAEC,KAAEA,EAAE5M,EAAE4M,EAAEC,IAAKgP,OAAOlP,EAASC,EAAC,CAAC,SAASwE,EAAEzE,EAAEC,EAAEC,EAAEe,GAAG,IAAIC,EAAEhB,EAAE3I,KAAK,OAAG2J,IAAI6B,EAAUyL,EAAExO,EAAEC,EAAEC,EAAElN,MAAMsU,SAASrG,EAAEf,EAAEra,KAAQ,OAAOoa,IAAIA,EAAEd,cAAc+B,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE4D,WAAWtB,GAAI0tB,GAAGhwB,KAAKjB,EAAE1I,QAAa0J,EAAE5N,EAAE4M,EAAEC,EAAElN,QAAS89B,IAAID,GAAG7wB,EAAEC,EAAEC,GAAGe,EAAEiO,OAAOlP,EAAEiB,KAAEA,EAAEqwB,GAAGpxB,EAAE3I,KAAK2I,EAAEra,IAAIqa,EAAElN,MAAM,KAAKgN,EAAEqrB,KAAKpqB,IAAK6vB,IAAID,GAAG7wB,EAAEC,EAAEC,GAAGe,EAAEiO,OAAOlP,EAASiB,EAAC,CAAC,SAASsD,EAAEvE,EAAEC,EAAEC,EAAEe,GAAG,OAAG,OAAOhB,GAAG,IAAIA,EAAE9L,KACjf8L,EAAEyN,UAAU+G,gBAAgBvU,EAAEuU,eAAexU,EAAEyN,UAAU6jB,iBAAiBrxB,EAAEqxB,iBAAsBtxB,EAAEuxB,GAAGtxB,EAAEF,EAAEqrB,KAAKpqB,IAAKiO,OAAOlP,EAAEC,KAAEA,EAAE5M,EAAE4M,EAAEC,EAAEoH,UAAU,KAAM4H,OAAOlP,EAASC,EAAC,CAAC,SAASuO,EAAExO,EAAEC,EAAEC,EAAEe,EAAEC,GAAG,OAAG,OAAOjB,GAAG,IAAIA,EAAE9L,MAAW8L,EAAEwxB,GAAGvxB,EAAEF,EAAEqrB,KAAKpqB,EAAEC,IAAKgO,OAAOlP,EAAEC,KAAEA,EAAE5M,EAAE4M,EAAEC,IAAKgP,OAAOlP,EAASC,EAAC,CAAC,SAAS0uB,EAAE3uB,EAAEC,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAOA,EAAEoxB,GAAG,GAAGpxB,EAAED,EAAEqrB,KAAKnrB,IAAKgP,OAAOlP,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE6E,UAAU,KAAKlC,EAAG,OAAO1C,EAAEoxB,GAAGrxB,EAAE1I,KAAK0I,EAAEpa,IAAIoa,EAAEjN,MAAM,KAAKgN,EAAEqrB,KAAKnrB,IACjf4wB,IAAID,GAAG7wB,EAAE,KAAKC,GAAGC,EAAEgP,OAAOlP,EAAEE,EAAE,KAAK4C,EAAG,OAAO7C,EAAEuxB,GAAGvxB,EAAED,EAAEqrB,KAAKnrB,IAAKgP,OAAOlP,EAAEC,EAAE,KAAKuD,EAAiB,OAAOmrB,EAAE3uB,GAAEiB,EAAnBhB,EAAEgF,OAAmBhF,EAAE+E,UAAU9E,GAAG,GAAG6G,GAAG9G,IAAI2D,EAAG3D,GAAG,OAAOA,EAAEwxB,GAAGxxB,EAAED,EAAEqrB,KAAKnrB,EAAE,OAAQgP,OAAOlP,EAAEC,EAAEgxB,GAAGjxB,EAAEC,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS2uB,EAAE5uB,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAE,OAAO4M,EAAEA,EAAEpa,IAAI,KAAK,GAAG,kBAAkBqa,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAO,OAAO7M,EAAE,KAAKmR,EAAExE,EAAEC,EAAE,GAAGC,EAAEe,GAAG,GAAG,kBAAkBf,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE4E,UAAU,KAAKlC,EAAG,OAAO1C,EAAEra,MAAMwN,EAAEoR,EAAEzE,EAAEC,EAAEC,EAAEe,GAAG,KAAK,KAAK6B,EAAG,OAAO5C,EAAEra,MAAMwN,EAAEkR,EAAEvE,EAAEC,EAAEC,EAAEe,GAAG,KAAK,KAAKuC,EAAG,OAAiBorB,EAAE5uB,EACpfC,GADwe5M,EAAE6M,EAAE+E,OACxe/E,EAAE8E,UAAU/D,GAAG,GAAG8F,GAAG7G,IAAI0D,EAAG1D,GAAG,OAAO,OAAO7M,EAAE,KAAKmb,EAAExO,EAAEC,EAAEC,EAAEe,EAAE,MAAMgwB,GAAGjxB,EAAEE,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS2uB,EAAE7uB,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,GAAG,kBAAkB4N,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAwBuD,EAAEvE,EAAnBD,EAAEA,EAAE9Y,IAAIgZ,IAAI,KAAW,GAAGe,EAAE5N,GAAG,GAAG,kBAAkB4N,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE6D,UAAU,KAAKlC,EAAG,OAA2C6B,EAAExE,EAAtCD,EAAEA,EAAE9Y,IAAI,OAAO+Z,EAAEpb,IAAIqa,EAAEe,EAAEpb,MAAM,KAAWob,EAAE5N,GAAG,KAAKyP,EAAG,OAA2CyB,EAAEtE,EAAtCD,EAAEA,EAAE9Y,IAAI,OAAO+Z,EAAEpb,IAAIqa,EAAEe,EAAEpb,MAAM,KAAWob,EAAE5N,GAAG,KAAKmQ,EAAiB,OAAOqrB,EAAE7uB,EAAEC,EAAEC,GAAEgB,EAAvBD,EAAEgE,OAAuBhE,EAAE+D,UAAU3R,GAAG,GAAG0T,GAAG9F,IAAI2C,EAAG3C,GAAG,OAAwBuN,EAAEvO,EAAnBD,EAAEA,EAAE9Y,IAAIgZ,IAAI,KAAWe,EAAE5N,EAAE,MAAM49B,GAAGhxB,EAAEgB,EAAE,CAAC,OAAO,IAAI,CAC9f,SAAShQ,EAAEoC,EAAE8N,EAAEqD,EAAEC,GAAG,IAAI,IAAIF,EAAE,KAAKiK,EAAE,KAAK8W,EAAEnkB,EAAEokB,EAAEpkB,EAAE,EAAEkkB,EAAE,KAAK,OAAOC,GAAGC,EAAE/gB,EAAEvf,OAAOsgC,IAAI,CAACD,EAAEz+B,MAAM0+B,GAAGF,EAAEC,EAAEA,EAAE,MAAMD,EAAEC,EAAE5V,QAAQ,IAAIze,EAAE29B,EAAEv7B,EAAEiyB,EAAE9gB,EAAE+gB,GAAG9gB,GAAG,GAAG,OAAOxT,EAAE,CAAC,OAAOq0B,IAAIA,EAAED,GAAG,KAAK,CAACrlB,GAAGslB,GAAG,OAAOr0B,EAAEge,WAAWhP,EAAE5M,EAAEiyB,GAAGnkB,EAAED,EAAEjQ,EAAEkQ,EAAEokB,GAAG,OAAO/W,EAAEjK,EAAEtT,EAAEud,EAAEkB,QAAQze,EAAEud,EAAEvd,EAAEq0B,EAAED,CAAC,CAAC,GAAGE,IAAI/gB,EAAEvf,OAAO,OAAOib,EAAE7M,EAAEiyB,GAAGoF,IAAGN,GAAG/2B,EAAEkyB,GAAGhhB,EAAE,GAAG,OAAO+gB,EAAE,CAAC,KAAKC,EAAE/gB,EAAEvf,OAAOsgC,IAAkB,QAAdD,EAAEqJ,EAAEt7B,EAAEmR,EAAE+gB,GAAG9gB,MAActD,EAAED,EAAEokB,EAAEnkB,EAAEokB,GAAG,OAAO/W,EAAEjK,EAAE+gB,EAAE9W,EAAEkB,QAAQ4V,EAAE9W,EAAE8W,GAAc,OAAXoF,IAAGN,GAAG/2B,EAAEkyB,GAAUhhB,CAAC,CAAC,IAAI+gB,EAAErkB,EAAE5N,EAAEiyB,GAAGC,EAAE/gB,EAAEvf,OAAOsgC,IAAsB,QAAlBF,EAAEwJ,EAAEvJ,EAAEjyB,EAAEkyB,EAAE/gB,EAAE+gB,GAAG9gB,MAAczE,GAAG,OAAOqlB,EAAEpW,WAAWqW,EAAEzR,OAAO,OACvfwR,EAAEx/B,IAAI0/B,EAAEF,EAAEx/B,KAAKsb,EAAED,EAAEmkB,EAAElkB,EAAEokB,GAAG,OAAO/W,EAAEjK,EAAE8gB,EAAE7W,EAAEkB,QAAQ2V,EAAE7W,EAAE6W,GAAuD,OAApDrlB,GAAGslB,EAAEptB,SAAQ,SAAS8H,GAAG,OAAOC,EAAE5M,EAAE2M,EAAE,IAAG0qB,IAAGN,GAAG/2B,EAAEkyB,GAAUhhB,CAAC,CAAC,SAAS4gB,EAAE9xB,EAAE8N,EAAEqD,EAAEC,GAAG,IAAIF,EAAEX,EAAGY,GAAG,GAAG,oBAAoBD,EAAE,MAAM7F,MAAMqB,EAAE,MAAkB,GAAG,OAAfyE,EAAED,EAAEze,KAAK0e,IAAc,MAAM9F,MAAMqB,EAAE,MAAM,IAAI,IAAIulB,EAAE/gB,EAAE,KAAKiK,EAAErN,EAAEokB,EAAEpkB,EAAE,EAAEkkB,EAAE,KAAKp0B,EAAEuT,EAAEyoB,OAAO,OAAOze,IAAIvd,EAAEygC,KAAKnM,IAAIt0B,EAAEuT,EAAEyoB,OAAO,CAACze,EAAE3nB,MAAM0+B,GAAGF,EAAE7W,EAAEA,EAAE,MAAM6W,EAAE7W,EAAEkB,QAAQ,IAAIyV,EAAEyJ,EAAEv7B,EAAEmb,EAAEvd,EAAEzH,MAAMib,GAAG,GAAG,OAAO0gB,EAAE,CAAC,OAAO3W,IAAIA,EAAE6W,GAAG,KAAK,CAACrlB,GAAGwO,GAAG,OAAO2W,EAAElW,WAAWhP,EAAE5M,EAAEmb,GAAGrN,EAAED,EAAEikB,EAAEhkB,EAAEokB,GAAG,OAAOD,EAAE/gB,EAAE4gB,EAAEG,EAAE5V,QAAQyV,EAAEG,EAAEH,EAAE3W,EAAE6W,CAAC,CAAC,GAAGp0B,EAAEygC,KAAK,OAAOxxB,EAAE7M,EACzfmb,GAAGkc,IAAGN,GAAG/2B,EAAEkyB,GAAGhhB,EAAE,GAAG,OAAOiK,EAAE,CAAC,MAAMvd,EAAEygC,KAAKnM,IAAIt0B,EAAEuT,EAAEyoB,OAAwB,QAAjBh8B,EAAE09B,EAAEt7B,EAAEpC,EAAEzH,MAAMib,MAActD,EAAED,EAAEjQ,EAAEkQ,EAAEokB,GAAG,OAAOD,EAAE/gB,EAAEtT,EAAEq0B,EAAE5V,QAAQze,EAAEq0B,EAAEr0B,GAAc,OAAXy5B,IAAGN,GAAG/2B,EAAEkyB,GAAUhhB,CAAC,CAAC,IAAIiK,EAAEvN,EAAE5N,EAAEmb,IAAIvd,EAAEygC,KAAKnM,IAAIt0B,EAAEuT,EAAEyoB,OAA4B,QAArBh8B,EAAE49B,EAAErgB,EAAEnb,EAAEkyB,EAAEt0B,EAAEzH,MAAMib,MAAczE,GAAG,OAAO/O,EAAEge,WAAWT,EAAEqF,OAAO,OAAO5iB,EAAEpL,IAAI0/B,EAAEt0B,EAAEpL,KAAKsb,EAAED,EAAEjQ,EAAEkQ,EAAEokB,GAAG,OAAOD,EAAE/gB,EAAEtT,EAAEq0B,EAAE5V,QAAQze,EAAEq0B,EAAEr0B,GAAuD,OAApD+O,GAAGwO,EAAEtW,SAAQ,SAAS8H,GAAG,OAAOC,EAAE5M,EAAE2M,EAAE,IAAG0qB,IAAGN,GAAG/2B,EAAEkyB,GAAUhhB,CAAC,CAG3T,OAH4T,SAAS6gB,EAAEplB,EAAEiB,EAAEC,EAAEsD,GAAkF,GAA/E,kBAAkBtD,GAAG,OAAOA,GAAGA,EAAE3J,OAAOwL,GAAI,OAAO7B,EAAErb,MAAMqb,EAAEA,EAAElO,MAAMsU,UAAa,kBAAkBpG,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE4D,UAAU,KAAKlC,EAAG5C,EAAE,CAAC,IAAI,IAAIyE,EAC7hBvD,EAAErb,IAAI0e,EAAEtD,EAAE,OAAOsD,GAAG,CAAC,GAAGA,EAAE1e,MAAM4e,EAAE,CAAU,IAATA,EAAEvD,EAAE3J,QAAYwL,GAAI,GAAG,IAAIwB,EAAEpQ,IAAI,CAAC+L,EAAEF,EAAEuE,EAAEmL,UAASzO,EAAE5N,EAAEkR,EAAErD,EAAElO,MAAMsU,WAAY4H,OAAOlP,EAAEA,EAAEiB,EAAE,MAAMjB,CAAC,OAAO,GAAGuE,EAAEpF,cAAcsF,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEK,WAAWtB,GAAI0tB,GAAGzsB,KAAKF,EAAEhN,KAAK,CAAC2I,EAAEF,EAAEuE,EAAEmL,UAASzO,EAAE5N,EAAEkR,EAAErD,EAAElO,QAAS89B,IAAID,GAAG7wB,EAAEuE,EAAErD,GAAGD,EAAEiO,OAAOlP,EAAEA,EAAEiB,EAAE,MAAMjB,CAAC,CAACE,EAAEF,EAAEuE,GAAG,KAAK,CAAMtE,EAAED,EAAEuE,GAAGA,EAAEA,EAAEmL,OAAO,CAACxO,EAAE3J,OAAOwL,IAAI9B,EAAEwwB,GAAGvwB,EAAElO,MAAMsU,SAAStH,EAAEqrB,KAAK7mB,EAAEtD,EAAErb,MAAOqpB,OAAOlP,EAAEA,EAAEiB,KAAIuD,EAAE8sB,GAAGpwB,EAAE3J,KAAK2J,EAAErb,IAAIqb,EAAElO,MAAM,KAAKgN,EAAEqrB,KAAK7mB,IAAKssB,IAAID,GAAG7wB,EAAEiB,EAAEC,GAAGsD,EAAE0K,OAAOlP,EAAEA,EAAEwE,EAAE,CAAC,OAAOrD,EAAEnB,GAAG,KAAK8C,EAAG9C,EAAE,CAAC,IAAIuE,EAAErD,EAAErb,IAAI,OACzfob,GAAG,CAAC,GAAGA,EAAEpb,MAAM0e,EAAC,CAAC,GAAG,IAAItD,EAAE9M,KAAK8M,EAAEyM,UAAU+G,gBAAgBvT,EAAEuT,eAAexT,EAAEyM,UAAU6jB,iBAAiBrwB,EAAEqwB,eAAe,CAACrxB,EAAEF,EAAEiB,EAAEyO,UAASzO,EAAE5N,EAAE4N,EAAEC,EAAEoG,UAAU,KAAM4H,OAAOlP,EAAEA,EAAEiB,EAAE,MAAMjB,CAAC,CAAME,EAAEF,EAAEiB,GAAG,KAAM,CAAKhB,EAAED,EAAEiB,GAAGA,EAAEA,EAAEyO,OAAO,EAACzO,EAAEuwB,GAAGtwB,EAAElB,EAAEqrB,KAAK7mB,IAAK0K,OAAOlP,EAAEA,EAAEiB,CAAC,CAAC,OAAOE,EAAEnB,GAAG,KAAKwD,EAAG,OAAiB4hB,EAAEplB,EAAEiB,GAAdsD,EAAErD,EAAE+D,OAAc/D,EAAE8D,UAAUR,GAAG,GAAGuC,GAAG7F,GAAG,OAAOjQ,EAAE+O,EAAEiB,EAAEC,EAAEsD,GAAG,GAAGZ,EAAG1C,GAAG,OAAOikB,EAAEnlB,EAAEiB,EAAEC,EAAEsD,GAAGysB,GAAGjxB,EAAEkB,EAAE,CAAC,MAAM,kBAAkBA,GAAG,KAAKA,GAAG,kBAAkBA,GAAGA,EAAE,GAAGA,EAAE,OAAOD,GAAG,IAAIA,EAAE9M,KAAK+L,EAAEF,EAAEiB,EAAEyO,UAASzO,EAAE5N,EAAE4N,EAAEC,IAAKgO,OAAOlP,EAAEA,EAAEiB,IACnff,EAAEF,EAAEiB,IAAGA,EAAEowB,GAAGnwB,EAAElB,EAAEqrB,KAAK7mB,IAAK0K,OAAOlP,EAAEA,EAAEiB,GAAGE,EAAEnB,IAAIE,EAAEF,EAAEiB,EAAE,CAAS,CAAC,IAAI0wB,GAAGR,IAAG,GAAIS,GAAGT,IAAG,GAAIU,GAAG,CAAC,EAAEC,GAAG5J,GAAG2J,IAAIE,GAAG7J,GAAG2J,IAAIG,GAAG9J,GAAG2J,IAAI,SAASI,GAAGjyB,GAAG,GAAGA,IAAI6xB,GAAG,MAAMnzB,MAAMqB,EAAE,MAAM,OAAOC,CAAC,CAAC,SAASkyB,GAAGlyB,EAAEC,GAAyC,OAAtCmoB,GAAE4J,GAAG/xB,GAAGmoB,GAAE2J,GAAG/xB,GAAGooB,GAAE0J,GAAGD,IAAI7xB,EAAEC,EAAE3H,UAAmB,KAAK,EAAE,KAAK,GAAG2H,GAAGA,EAAEA,EAAEohB,iBAAiBphB,EAAE8H,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkE3H,EAAE2H,GAArC3H,GAAvBD,EAAE,IAAIA,EAAEC,EAAEmN,WAAWnN,GAAM8H,cAAc,KAAK/H,EAAEA,EAAEmyB,SAAkBhK,GAAE2J,IAAI1J,GAAE0J,GAAG7xB,EAAE,CAAC,SAASmyB,KAAKjK,GAAE2J,IAAI3J,GAAE4J,IAAI5J,GAAE6J,GAAG,CACnb,SAASK,GAAGryB,GAAGiyB,GAAGD,GAAGriB,SAAS,IAAI1P,EAAEgyB,GAAGH,GAAGniB,SAAazP,EAAE0H,GAAG3H,EAAED,EAAEzI,MAAM0I,IAAIC,IAAIkoB,GAAE2J,GAAG/xB,GAAGooB,GAAE0J,GAAG5xB,GAAG,CAAC,SAASoyB,GAAGtyB,GAAG+xB,GAAGpiB,UAAU3P,IAAImoB,GAAE2J,IAAI3J,GAAE4J,IAAI,CAAC,IAAIQ,GAAErK,GAAG,GACrJ,SAASsK,GAAGxyB,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAE9L,IAAI,CAAC,IAAI+L,EAAED,EAAEoP,cAAc,GAAG,OAAOnP,IAAmB,QAAfA,EAAEA,EAAEoP,aAAqB,OAAOpP,EAAEnX,MAAM,OAAOmX,EAAEnX,MAAM,OAAOkX,CAAC,MAAM,GAAG,KAAKA,EAAE9L,UAAK,IAAS8L,EAAEwrB,cAAcgH,aAAa,GAAG,KAAa,IAARxyB,EAAEkP,OAAW,OAAOlP,OAAO,GAAG,OAAOA,EAAEwP,MAAM,CAACxP,EAAEwP,MAAMP,OAAOjP,EAAEA,EAAEA,EAAEwP,MAAM,QAAQ,CAAC,GAAGxP,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAEyP,SAAS,CAAC,GAAG,OAAOzP,EAAEiP,QAAQjP,EAAEiP,SAASlP,EAAE,OAAO,KAAKC,EAAEA,EAAEiP,MAAM,CAACjP,EAAEyP,QAAQR,OAAOjP,EAAEiP,OAAOjP,EAAEA,EAAEyP,OAAO,CAAC,OAAO,IAAI,CAAC,IAAIgjB,GAAG,GACrc,SAASC,KAAK,IAAI,IAAI3yB,EAAE,EAAEA,EAAE0yB,GAAGztC,OAAO+a,IAAI0yB,GAAG1yB,GAAG4yB,8BAA8B,KAAKF,GAAGztC,OAAO,CAAC,CAAC,IAAI4tC,GAAGnwB,EAAGowB,uBAAuBC,GAAGrwB,EAAGyS,wBAAwB6d,GAAG,EAAEC,GAAE,KAAKC,GAAE,KAAKC,GAAE,KAAKC,IAAG,EAAGC,IAAG,EAAGC,GAAG,EAAEC,GAAG,EAAE,SAASC,KAAI,MAAM90B,MAAMqB,EAAE,KAAM,CAAC,SAAS0zB,GAAGzzB,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEhb,QAAQib,EAAEF,EAAE/a,OAAOib,IAAI,IAAIkgB,GAAGpgB,EAAEE,GAAGD,EAAEC,IAAI,OAAM,EAAG,OAAM,CAAE,CAChW,SAASwzB,GAAG1zB,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,GAAyH,GAAtH8xB,GAAG9xB,EAAE+xB,GAAEhzB,EAAEA,EAAEoP,cAAc,KAAKpP,EAAEwtB,YAAY,KAAKxtB,EAAE2sB,MAAM,EAAEiG,GAAGljB,QAAQ,OAAO3P,GAAG,OAAOA,EAAEqP,cAAcskB,GAAGC,GAAG5zB,EAAEE,EAAEe,EAAE5N,GAAMggC,GAAG,CAACnyB,EAAE,EAAE,EAAE,CAAY,GAAXmyB,IAAG,EAAGC,GAAG,EAAK,IAAIpyB,EAAE,MAAMxC,MAAMqB,EAAE,MAAMmB,GAAG,EAAEiyB,GAAED,GAAE,KAAKjzB,EAAEwtB,YAAY,KAAKoF,GAAGljB,QAAQkkB,GAAG7zB,EAAEE,EAAEe,EAAE5N,EAAE,OAAOggC,GAAG,CAA+D,GAA9DR,GAAGljB,QAAQmkB,GAAG7zB,EAAE,OAAOizB,IAAG,OAAOA,GAAEjG,KAAK+F,GAAG,EAAEG,GAAED,GAAED,GAAE,KAAKG,IAAG,EAAMnzB,EAAE,MAAMvB,MAAMqB,EAAE,MAAM,OAAOC,CAAC,CAAC,SAAS+zB,KAAK,IAAI/zB,EAAE,IAAIszB,GAAQ,OAALA,GAAG,EAAStzB,CAAC,CAC/Y,SAASg0B,KAAK,IAAIh0B,EAAE,CAACqP,cAAc,KAAKqe,UAAU,KAAKuG,UAAU,KAAKC,MAAM,KAAKjH,KAAK,MAA8C,OAAxC,OAAOkG,GAAEF,GAAE5jB,cAAc8jB,GAAEnzB,EAAEmzB,GAAEA,GAAElG,KAAKjtB,EAASmzB,EAAC,CAAC,SAASgB,KAAK,GAAG,OAAOjB,GAAE,CAAC,IAAIlzB,EAAEizB,GAAEhkB,UAAUjP,EAAE,OAAOA,EAAEA,EAAEqP,cAAc,IAAI,MAAMrP,EAAEkzB,GAAEjG,KAAK,IAAIhtB,EAAE,OAAOkzB,GAAEF,GAAE5jB,cAAc8jB,GAAElG,KAAK,GAAG,OAAOhtB,EAAEkzB,GAAElzB,EAAEizB,GAAElzB,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMtB,MAAMqB,EAAE,MAAUC,EAAE,CAACqP,eAAP6jB,GAAElzB,GAAqBqP,cAAcqe,UAAUwF,GAAExF,UAAUuG,UAAUf,GAAEe,UAAUC,MAAMhB,GAAEgB,MAAMjH,KAAK,MAAM,OAAOkG,GAAEF,GAAE5jB,cAAc8jB,GAAEnzB,EAAEmzB,GAAEA,GAAElG,KAAKjtB,CAAC,CAAC,OAAOmzB,EAAC,CACje,SAASiB,GAAGp0B,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,CAAC,CACnD,SAASo0B,GAAGr0B,GAAG,IAAIC,EAAEk0B,KAAKj0B,EAAED,EAAEi0B,MAAM,GAAG,OAAOh0B,EAAE,MAAMxB,MAAMqB,EAAE,MAAMG,EAAEo0B,oBAAoBt0B,EAAE,IAAIiB,EAAEiyB,GAAE7/B,EAAE4N,EAAEgzB,UAAU/yB,EAAEhB,EAAE4tB,QAAQ,GAAG,OAAO5sB,EAAE,CAAC,GAAG,OAAO7N,EAAE,CAAC,IAAI8N,EAAE9N,EAAE45B,KAAK55B,EAAE45B,KAAK/rB,EAAE+rB,KAAK/rB,EAAE+rB,KAAK9rB,CAAC,CAACF,EAAEgzB,UAAU5gC,EAAE6N,EAAEhB,EAAE4tB,QAAQ,IAAI,CAAC,GAAG,OAAOz6B,EAAE,CAAC6N,EAAE7N,EAAE45B,KAAKhsB,EAAEA,EAAEysB,UAAU,IAAIlpB,EAAErD,EAAE,KAAKsD,EAAE,KAAKF,EAAErD,EAAE,EAAE,CAAC,IAAIsN,EAAEjK,EAAE4pB,KAAK,IAAI6E,GAAGxkB,KAAKA,EAAE,OAAO/J,IAAIA,EAAEA,EAAEwoB,KAAK,CAACkB,KAAK,EAAEoG,OAAOhwB,EAAEgwB,OAAOC,cAAcjwB,EAAEiwB,cAAcC,WAAWlwB,EAAEkwB,WAAWxH,KAAK,OAAOhsB,EAAEsD,EAAEiwB,cAAcjwB,EAAEkwB,WAAWz0B,EAAEiB,EAAEsD,EAAEgwB,YAAY,CAAC,IAAI5F,EAAE,CAACR,KAAK3f,EAAE+lB,OAAOhwB,EAAEgwB,OAAOC,cAAcjwB,EAAEiwB,cACngBC,WAAWlwB,EAAEkwB,WAAWxH,KAAK,MAAM,OAAOxoB,GAAGD,EAAEC,EAAEkqB,EAAExtB,EAAEF,GAAGwD,EAAEA,EAAEwoB,KAAK0B,EAAEsE,GAAErG,OAAOpe,EAAEsgB,IAAItgB,CAAC,CAACjK,EAAEA,EAAE0oB,IAAI,OAAO,OAAO1oB,GAAGA,IAAIrD,GAAG,OAAOuD,EAAEtD,EAAEF,EAAEwD,EAAEwoB,KAAKzoB,EAAE4b,GAAGnf,EAAEhB,EAAEoP,iBAAiBwd,IAAG,GAAI5sB,EAAEoP,cAAcpO,EAAEhB,EAAEytB,UAAUvsB,EAAElB,EAAEg0B,UAAUxvB,EAAEvE,EAAEw0B,kBAAkBzzB,CAAC,CAAiB,GAAG,QAAnBjB,EAAEE,EAAEmtB,aAAwB,CAACh6B,EAAE2M,EAAE,GAAGkB,EAAE7N,EAAE86B,KAAK8E,GAAErG,OAAO1rB,EAAE4tB,IAAI5tB,EAAE7N,EAAEA,EAAE45B,WAAW55B,IAAI2M,EAAE,MAAM,OAAO3M,IAAI6M,EAAE0sB,MAAM,GAAG,MAAM,CAAC3sB,EAAEoP,cAAcnP,EAAEy0B,SAAS,CAC9X,SAASC,GAAG50B,GAAG,IAAIC,EAAEk0B,KAAKj0B,EAAED,EAAEi0B,MAAM,GAAG,OAAOh0B,EAAE,MAAMxB,MAAMqB,EAAE,MAAMG,EAAEo0B,oBAAoBt0B,EAAE,IAAIiB,EAAEf,EAAEy0B,SAASthC,EAAE6M,EAAE4tB,QAAQ5sB,EAAEjB,EAAEoP,cAAc,GAAG,OAAOhc,EAAE,CAAC6M,EAAE4tB,QAAQ,KAAK,IAAI3sB,EAAE9N,EAAEA,EAAE45B,KAAK,GAAG/rB,EAAElB,EAAEkB,EAAEC,EAAEozB,QAAQpzB,EAAEA,EAAE8rB,WAAW9rB,IAAI9N,GAAG+sB,GAAGlf,EAAEjB,EAAEoP,iBAAiBwd,IAAG,GAAI5sB,EAAEoP,cAAcnO,EAAE,OAAOjB,EAAEg0B,YAAYh0B,EAAEytB,UAAUxsB,GAAGhB,EAAEw0B,kBAAkBxzB,CAAC,CAAC,MAAM,CAACA,EAAED,EAAE,CAAC,SAAS4zB,KAAK,CACpW,SAASC,GAAG90B,EAAEC,GAAG,IAAIC,EAAE+yB,GAAEhyB,EAAEkzB,KAAK9gC,EAAE4M,IAAIiB,GAAGkf,GAAGnf,EAAEoO,cAAchc,GAAsE,GAAnE6N,IAAID,EAAEoO,cAAchc,EAAEw5B,IAAG,GAAI5rB,EAAEA,EAAEizB,MAAMa,GAAGC,GAAGhQ,KAAK,KAAK9kB,EAAEe,EAAEjB,GAAG,CAACA,IAAOiB,EAAEg0B,cAAch1B,GAAGiB,GAAG,OAAOiyB,IAAuB,EAApBA,GAAE9jB,cAAclb,IAAM,CAAuD,GAAtD+L,EAAEiP,OAAO,KAAK+lB,GAAG,EAAEC,GAAGnQ,KAAK,KAAK9kB,EAAEe,EAAE5N,EAAE4M,QAAG,EAAO,MAAS,OAAOm1B,GAAE,MAAM12B,MAAMqB,EAAE,MAAM,KAAQ,GAAHizB,KAAQqC,GAAGn1B,EAAED,EAAE5M,EAAE,CAAC,OAAOA,CAAC,CAAC,SAASgiC,GAAGr1B,EAAEC,EAAEC,GAAGF,EAAEmP,OAAO,MAAMnP,EAAE,CAACi1B,YAAYh1B,EAAEzW,MAAM0W,GAAmB,QAAhBD,EAAEgzB,GAAExF,cAAsBxtB,EAAE,CAACq1B,WAAW,KAAKC,OAAO,MAAMtC,GAAExF,YAAYxtB,EAAEA,EAAEs1B,OAAO,CAACv1B,IAAgB,QAAXE,EAAED,EAAEs1B,QAAgBt1B,EAAEs1B,OAAO,CAACv1B,GAAGE,EAAE9a,KAAK4a,EAAG,CAClf,SAASm1B,GAAGn1B,EAAEC,EAAEC,EAAEe,GAAGhB,EAAEzW,MAAM0W,EAAED,EAAEg1B,YAAYh0B,EAAEu0B,GAAGv1B,IAAIw1B,GAAGz1B,EAAE,CAAC,SAASg1B,GAAGh1B,EAAEC,EAAEC,GAAG,OAAOA,GAAE,WAAWs1B,GAAGv1B,IAAIw1B,GAAGz1B,EAAE,GAAE,CAAC,SAASw1B,GAAGx1B,GAAG,IAAIC,EAAED,EAAEi1B,YAAYj1B,EAAEA,EAAExW,MAAM,IAAI,IAAI0W,EAAED,IAAI,OAAOmgB,GAAGpgB,EAAEE,EAAE,CAAC,MAAMe,GAAG,OAAM,CAAE,CAAC,CAAC,SAASw0B,GAAGz1B,GAAG,IAAIC,EAAEqtB,GAAGttB,EAAE,GAAG,OAAOC,GAAGyvB,GAAGzvB,EAAED,EAAE,GAAG,EAAE,CAClQ,SAAS01B,GAAG11B,GAAG,IAAIC,EAAE+zB,KAA8M,MAAzM,oBAAoBh0B,IAAIA,EAAEA,KAAKC,EAAEoP,cAAcpP,EAAEytB,UAAU1tB,EAAEA,EAAE,CAAC8tB,QAAQ,KAAKT,YAAY,KAAKT,MAAM,EAAE+H,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkB10B,GAAGC,EAAEi0B,MAAMl0B,EAAEA,EAAEA,EAAE20B,SAASgB,GAAG3Q,KAAK,KAAKiO,GAAEjzB,GAAS,CAACC,EAAEoP,cAAcrP,EAAE,CAC5P,SAASk1B,GAAGl1B,EAAEC,EAAEC,EAAEe,GAA8O,OAA3OjB,EAAE,CAAC7L,IAAI6L,EAAE41B,OAAO31B,EAAE41B,QAAQ31B,EAAE41B,KAAK70B,EAAEgsB,KAAK,MAAsB,QAAhBhtB,EAAEgzB,GAAExF,cAAsBxtB,EAAE,CAACq1B,WAAW,KAAKC,OAAO,MAAMtC,GAAExF,YAAYxtB,EAAEA,EAAEq1B,WAAWt1B,EAAEitB,KAAKjtB,GAAmB,QAAfE,EAAED,EAAEq1B,YAAoBr1B,EAAEq1B,WAAWt1B,EAAEitB,KAAKjtB,GAAGiB,EAAEf,EAAE+sB,KAAK/sB,EAAE+sB,KAAKjtB,EAAEA,EAAEitB,KAAKhsB,EAAEhB,EAAEq1B,WAAWt1B,GAAWA,CAAC,CAAC,SAAS+1B,KAAK,OAAO5B,KAAK9kB,aAAa,CAAC,SAAS2mB,GAAGh2B,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAE2gC,KAAKf,GAAE9jB,OAAOnP,EAAE3M,EAAEgc,cAAc6lB,GAAG,EAAEj1B,EAAEC,OAAE,OAAO,IAASe,EAAE,KAAKA,EAAE,CAC9Y,SAASg1B,GAAGj2B,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAE8gC,KAAKlzB,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIC,OAAE,EAAO,GAAG,OAAOgyB,GAAE,CAAC,IAAI/xB,EAAE+xB,GAAE7jB,cAA0B,GAAZnO,EAAEC,EAAE00B,QAAW,OAAO50B,GAAGwyB,GAAGxyB,EAAEE,EAAE20B,MAAmC,YAA5BziC,EAAEgc,cAAc6lB,GAAGj1B,EAAEC,EAAEgB,EAAED,GAAU,CAACgyB,GAAE9jB,OAAOnP,EAAE3M,EAAEgc,cAAc6lB,GAAG,EAAEj1B,EAAEC,EAAEgB,EAAED,EAAE,CAAC,SAASi1B,GAAGl2B,EAAEC,GAAG,OAAO+1B,GAAG,QAAQ,EAAEh2B,EAAEC,EAAE,CAAC,SAAS80B,GAAG/0B,EAAEC,GAAG,OAAOg2B,GAAG,KAAK,EAAEj2B,EAAEC,EAAE,CAAC,SAASk2B,GAAGn2B,EAAEC,GAAG,OAAOg2B,GAAG,EAAE,EAAEj2B,EAAEC,EAAE,CAAC,SAASm2B,GAAGp2B,EAAEC,GAAG,OAAOg2B,GAAG,EAAE,EAAEj2B,EAAEC,EAAE,CAChX,SAASo2B,GAAGr2B,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,KAAK,GAAK,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAE0P,QAAQ3P,EAAE,WAAWC,EAAE0P,QAAQ,IAAI,QAA1E,CAA2E,CAAC,SAAS2mB,GAAGt2B,EAAEC,EAAEC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEkkB,OAAO,CAACpkB,IAAI,KAAYi2B,GAAG,EAAE,EAAEI,GAAGrR,KAAK,KAAK/kB,EAAED,GAAGE,EAAE,CAAC,SAASq2B,KAAK,CAAC,SAASC,GAAGx2B,EAAEC,GAAG,IAAIC,EAAEi0B,KAAKl0B,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIgB,EAAEf,EAAEmP,cAAc,OAAG,OAAOpO,GAAG,OAAOhB,GAAGwzB,GAAGxzB,EAAEgB,EAAE,IAAWA,EAAE,IAAGf,EAAEmP,cAAc,CAACrP,EAAEC,GAAUD,EAAC,CAC7Z,SAASy2B,GAAGz2B,EAAEC,GAAG,IAAIC,EAAEi0B,KAAKl0B,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIgB,EAAEf,EAAEmP,cAAc,OAAG,OAAOpO,GAAG,OAAOhB,GAAGwzB,GAAGxzB,EAAEgB,EAAE,IAAWA,EAAE,IAAGjB,EAAEA,IAAIE,EAAEmP,cAAc,CAACrP,EAAEC,GAAUD,EAAC,CAAC,SAAS02B,GAAG12B,EAAEC,EAAEC,GAAG,OAAG,KAAQ,GAAH8yB,KAAchzB,EAAE0tB,YAAY1tB,EAAE0tB,WAAU,EAAGb,IAAG,GAAI7sB,EAAEqP,cAAcnP,IAAEkgB,GAAGlgB,EAAED,KAAKC,EAAEqS,KAAK0gB,GAAErG,OAAO1sB,EAAE4uB,IAAI5uB,EAAEF,EAAE0tB,WAAU,GAAWztB,EAAC,CAAC,SAAS02B,GAAG32B,EAAEC,GAAG,IAAIC,EAAE0S,GAAEA,GAAE,IAAI1S,GAAG,EAAEA,EAAEA,EAAE,EAAEF,GAAE,GAAI,IAAIiB,EAAE8xB,GAAGzd,WAAWyd,GAAGzd,WAAW,CAAC,EAAE,IAAItV,GAAE,GAAIC,GAAG,CAAC,QAAQ2S,GAAE1S,EAAE6yB,GAAGzd,WAAWrU,CAAC,CAAC,CAAC,SAAS21B,KAAK,OAAOzC,KAAK9kB,aAAa,CAC1d,SAASwnB,GAAG72B,EAAEC,EAAEC,GAAG,IAAIe,EAAEwuB,GAAGzvB,GAAkE,GAA/DE,EAAE,CAACiuB,KAAKltB,EAAEszB,OAAOr0B,EAAEs0B,eAAc,EAAGC,WAAW,KAAKxH,KAAK,MAAS6J,GAAG92B,GAAG+2B,GAAG92B,EAAEC,QAAQ,GAAiB,QAAdA,EAAEktB,GAAGptB,EAAEC,EAAEC,EAAEe,IAAY,CAAWyuB,GAAGxvB,EAAEF,EAAEiB,EAAXuuB,MAAgBwH,GAAG92B,EAAED,EAAEgB,EAAE,CAAC,CAC/K,SAAS00B,GAAG31B,EAAEC,EAAEC,GAAG,IAAIe,EAAEwuB,GAAGzvB,GAAG3M,EAAE,CAAC86B,KAAKltB,EAAEszB,OAAOr0B,EAAEs0B,eAAc,EAAGC,WAAW,KAAKxH,KAAK,MAAM,GAAG6J,GAAG92B,GAAG+2B,GAAG92B,EAAE5M,OAAO,CAAC,IAAI6N,EAAElB,EAAEiP,UAAU,GAAG,IAAIjP,EAAE4sB,QAAQ,OAAO1rB,GAAG,IAAIA,EAAE0rB,QAAiC,QAAxB1rB,EAAEjB,EAAEq0B,qBAA8B,IAAI,IAAInzB,EAAElB,EAAEy0B,kBAAkBlwB,EAAEtD,EAAEC,EAAEjB,GAAqC,GAAlC7M,EAAEmhC,eAAc,EAAGnhC,EAAEohC,WAAWjwB,EAAK4b,GAAG5b,EAAErD,GAAG,CAAC,IAAIsD,EAAExE,EAAEotB,YAA+E,OAAnE,OAAO5oB,GAAGpR,EAAE45B,KAAK55B,EAAE85B,GAAGltB,KAAK5M,EAAE45B,KAAKxoB,EAAEwoB,KAAKxoB,EAAEwoB,KAAK55B,QAAG4M,EAAEotB,YAAYh6B,EAAQ,CAAC,CAAC,MAAMkR,GAAG,CAAwB,QAAdrE,EAAEktB,GAAGptB,EAAEC,EAAE5M,EAAE4N,MAAoByuB,GAAGxvB,EAAEF,EAAEiB,EAAb5N,EAAEm8B,MAAgBwH,GAAG92B,EAAED,EAAEgB,GAAG,CAAC,CAC/c,SAAS61B,GAAG92B,GAAG,IAAIC,EAAED,EAAEiP,UAAU,OAAOjP,IAAIizB,IAAG,OAAOhzB,GAAGA,IAAIgzB,EAAC,CAAC,SAAS8D,GAAG/2B,EAAEC,GAAGozB,GAAGD,IAAG,EAAG,IAAIlzB,EAAEF,EAAE8tB,QAAQ,OAAO5tB,EAAED,EAAEgtB,KAAKhtB,GAAGA,EAAEgtB,KAAK/sB,EAAE+sB,KAAK/sB,EAAE+sB,KAAKhtB,GAAGD,EAAE8tB,QAAQ7tB,CAAC,CAAC,SAAS+2B,GAAGh3B,EAAEC,EAAEC,GAAG,GAAG,KAAO,QAAFA,GAAW,CAAC,IAAIe,EAAEhB,EAAE2sB,MAAwB1sB,GAAlBe,GAAGjB,EAAEgS,aAAkB/R,EAAE2sB,MAAM1sB,EAAEyS,GAAG3S,EAAEE,EAAE,CAAC,CAC9P,IAAI4zB,GAAG,CAACmD,YAAYnK,GAAGoK,YAAY1D,GAAE2D,WAAW3D,GAAE4D,UAAU5D,GAAE6D,oBAAoB7D,GAAE8D,mBAAmB9D,GAAE+D,gBAAgB/D,GAAEgE,QAAQhE,GAAEiE,WAAWjE,GAAEkE,OAAOlE,GAAEmE,SAASnE,GAAEoE,cAAcpE,GAAEqE,iBAAiBrE,GAAEsE,cAActE,GAAEuE,iBAAiBvE,GAAEwE,qBAAqBxE,GAAEyE,MAAMzE,GAAE0E,0BAAyB,GAAIvE,GAAG,CAACsD,YAAYnK,GAAGoK,YAAY,SAASl3B,EAAEC,GAA4C,OAAzC+zB,KAAK3kB,cAAc,CAACrP,OAAE,IAASC,EAAE,KAAKA,GAAUD,CAAC,EAAEm3B,WAAWrK,GAAGsK,UAAUlB,GAAGmB,oBAAoB,SAASr3B,EAAEC,EAAEC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEkkB,OAAO,CAACpkB,IAAI,KAAYg2B,GAAG,QAC3f,EAAEK,GAAGrR,KAAK,KAAK/kB,EAAED,GAAGE,EAAE,EAAEq3B,gBAAgB,SAASv3B,EAAEC,GAAG,OAAO+1B,GAAG,QAAQ,EAAEh2B,EAAEC,EAAE,EAAEq3B,mBAAmB,SAASt3B,EAAEC,GAAG,OAAO+1B,GAAG,EAAE,EAAEh2B,EAAEC,EAAE,EAAEu3B,QAAQ,SAASx3B,EAAEC,GAAG,IAAIC,EAAE8zB,KAAqD,OAAhD/zB,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAIE,EAAEmP,cAAc,CAACrP,EAAEC,GAAUD,CAAC,EAAEy3B,WAAW,SAASz3B,EAAEC,EAAEC,GAAG,IAAIe,EAAE+yB,KAAkM,OAA7L/zB,OAAE,IAASC,EAAEA,EAAED,GAAGA,EAAEgB,EAAEoO,cAAcpO,EAAEysB,UAAUztB,EAAED,EAAE,CAAC8tB,QAAQ,KAAKT,YAAY,KAAKT,MAAM,EAAE+H,SAAS,KAAKL,oBAAoBt0B,EAAE00B,kBAAkBz0B,GAAGgB,EAAEizB,MAAMl0B,EAAEA,EAAEA,EAAE20B,SAASkC,GAAG7R,KAAK,KAAKiO,GAAEjzB,GAAS,CAACiB,EAAEoO,cAAcrP,EAAE,EAAE03B,OAAO,SAAS13B,GAC3d,OAAdA,EAAE,CAAC2P,QAAQ3P,GAAhBg0B,KAA4B3kB,cAAcrP,CAAC,EAAE23B,SAASjC,GAAGkC,cAAcrB,GAAGsB,iBAAiB,SAAS73B,GAAG,OAAOg0B,KAAK3kB,cAAcrP,CAAC,EAAE83B,cAAc,WAAW,IAAI93B,EAAE01B,IAAG,GAAIz1B,EAAED,EAAE,GAA6C,OAA1CA,EAAE22B,GAAG3R,KAAK,KAAKhlB,EAAE,IAAIg0B,KAAK3kB,cAAcrP,EAAQ,CAACC,EAAED,EAAE,EAAE+3B,iBAAiB,WAAW,EAAEC,qBAAqB,SAASh4B,EAAEC,EAAEC,GAAG,IAAIe,EAAEgyB,GAAE5/B,EAAE2gC,KAAK,GAAGtJ,GAAE,CAAC,QAAG,IAASxqB,EAAE,MAAMxB,MAAMqB,EAAE,MAAMG,EAAEA,GAAG,KAAK,CAAO,GAANA,EAAED,IAAO,OAAOm1B,GAAE,MAAM12B,MAAMqB,EAAE,MAAM,KAAQ,GAAHizB,KAAQqC,GAAGp0B,EAAEhB,EAAEC,EAAE,CAAC7M,EAAEgc,cAAcnP,EAAE,IAAIgB,EAAE,CAAC1X,MAAM0W,EAAE+0B,YAAYh1B,GACvZ,OAD0Z5M,EAAE6gC,MAAMhzB,EAAEg1B,GAAGlB,GAAGhQ,KAAK,KAAK/jB,EACpfC,EAAElB,GAAG,CAACA,IAAIiB,EAAEkO,OAAO,KAAK+lB,GAAG,EAAEC,GAAGnQ,KAAK,KAAK/jB,EAAEC,EAAEhB,EAAED,QAAG,EAAO,MAAaC,CAAC,EAAE+3B,MAAM,WAAW,IAAIj4B,EAAEg0B,KAAK/zB,EAAEm1B,GAAE+C,iBAAiB,GAAGzN,GAAE,CAAC,IAAIxqB,EAAEiqB,GAAkDlqB,EAAE,IAAIA,EAAE,KAA9CC,GAAHgqB,KAAU,GAAG,GAAG5Y,GAAhB4Y,IAAsB,IAAIzkC,SAAS,IAAIya,GAAuB,GAAPA,EAAEozB,QAAWrzB,GAAG,IAAIC,EAAEza,SAAS,KAAKwa,GAAG,GAAG,MAAaA,EAAE,IAAIA,EAAE,KAAfC,EAAEqzB,MAAmB9tC,SAAS,IAAI,IAAI,OAAOua,EAAEqP,cAAcpP,CAAC,EAAEi4B,0BAAyB,GAAItE,GAAG,CAACqD,YAAYnK,GAAGoK,YAAYV,GAAGW,WAAWrK,GAAGsK,UAAUrC,GAAGsC,oBAAoBf,GAAGgB,mBAAmBnB,GAAGoB,gBAAgBnB,GAAGoB,QAAQf,GAAGgB,WAAWpD,GAAGqD,OAAO3B,GAAG4B,SAAS,WAAW,OAAOtD,GAAGD,GAAG,EACrhBwD,cAAcrB,GAAGsB,iBAAiB,SAAS73B,GAAc,OAAO02B,GAAZvC,KAAiBjB,GAAE7jB,cAAcrP,EAAE,EAAE83B,cAAc,WAAgD,MAAM,CAArCzD,GAAGD,IAAI,GAAKD,KAAK9kB,cAAyB,EAAE0oB,iBAAiBlD,GAAGmD,qBAAqBlD,GAAGmD,MAAMrB,GAAGsB,0BAAyB,GAAIrE,GAAG,CAACoD,YAAYnK,GAAGoK,YAAYV,GAAGW,WAAWrK,GAAGsK,UAAUrC,GAAGsC,oBAAoBf,GAAGgB,mBAAmBnB,GAAGoB,gBAAgBnB,GAAGoB,QAAQf,GAAGgB,WAAW7C,GAAG8C,OAAO3B,GAAG4B,SAAS,WAAW,OAAO/C,GAAGR,GAAG,EAAEwD,cAAcrB,GAAGsB,iBAAiB,SAAS73B,GAAG,IAAIC,EAAEk0B,KAAK,OAAO,OACzfjB,GAAEjzB,EAAEoP,cAAcrP,EAAE02B,GAAGz2B,EAAEizB,GAAE7jB,cAAcrP,EAAE,EAAE83B,cAAc,WAAgD,MAAM,CAArClD,GAAGR,IAAI,GAAKD,KAAK9kB,cAAyB,EAAE0oB,iBAAiBlD,GAAGmD,qBAAqBlD,GAAGmD,MAAMrB,GAAGsB,0BAAyB,GAAI,SAASE,GAAGp4B,EAAEC,GAAG,IAAI,IAAIC,EAAE,GAAGe,EAAEhB,EAAE,GAAGC,GAAGyE,EAAG1D,GAAGA,EAAEA,EAAEiO,aAAajO,GAAG,IAAI5N,EAAE6M,CAAC,CAAC,MAAMgB,GAAG7N,EAAE,6BAA6B6N,EAAE1M,QAAQ,KAAK0M,EAAE/T,KAAK,CAAC,MAAM,CAAC3D,MAAMwW,EAAEzR,OAAO0R,EAAE9S,MAAMkG,EAAEglC,OAAO,KAAK,CAAC,SAASC,GAAGt4B,EAAEC,EAAEC,GAAG,MAAM,CAAC1W,MAAMwW,EAAEzR,OAAO,KAAKpB,MAAM,MAAM+S,EAAEA,EAAE,KAAKm4B,OAAO,MAAMp4B,EAAEA,EAAE,KAAK,CACzd,SAASs4B,GAAGv4B,EAAEC,GAAG,IAAIu4B,QAAQC,MAAMx4B,EAAEzW,MAAM,CAAC,MAAM0W,GAAG7E,YAAW,WAAW,MAAM6E,CAAE,GAAE,CAAC,CAAC,IAAIw4B,GAAG,oBAAoBvvC,QAAQA,QAAQzB,IAAI,SAASixC,GAAG34B,EAAEC,EAAEC,IAAGA,EAAE+tB,IAAI,EAAE/tB,IAAK/L,IAAI,EAAE+L,EAAEkuB,QAAQ,CAAClvB,QAAQ,MAAM,IAAI+B,EAAEhB,EAAEzW,MAAsD,OAAhD0W,EAAEmuB,SAAS,WAAWuK,KAAKA,IAAG,EAAGC,GAAG53B,GAAGs3B,GAAGv4B,EAAEC,EAAE,EAASC,CAAC,CAC3Q,SAAS44B,GAAG94B,EAAEC,EAAEC,IAAGA,EAAE+tB,IAAI,EAAE/tB,IAAK/L,IAAI,EAAE,IAAI8M,EAAEjB,EAAEzI,KAAKwhC,yBAAyB,GAAG,oBAAoB93B,EAAE,CAAC,IAAI5N,EAAE4M,EAAEzW,MAAM0W,EAAEkuB,QAAQ,WAAW,OAAOntB,EAAE5N,EAAE,EAAE6M,EAAEmuB,SAAS,WAAWkK,GAAGv4B,EAAEC,EAAE,CAAC,CAAC,IAAIiB,EAAElB,EAAE0N,UAA8O,OAApO,OAAOxM,GAAG,oBAAoBA,EAAE83B,oBAAoB94B,EAAEmuB,SAAS,WAAWkK,GAAGv4B,EAAEC,GAAG,oBAAoBgB,IAAI,OAAOg4B,GAAGA,GAAG,IAAI/wC,IAAI,CAACpB,OAAOmyC,GAAGzwC,IAAI1B,OAAO,IAAIoZ,EAAED,EAAE9S,MAAMrG,KAAKkyC,kBAAkB/4B,EAAEzW,MAAM,CAAC0vC,eAAe,OAAOh5B,EAAEA,EAAE,IAAI,GAAUA,CAAC,CACnb,SAASi5B,GAAGn5B,EAAEC,EAAEC,GAAG,IAAIe,EAAEjB,EAAEo5B,UAAU,GAAG,OAAOn4B,EAAE,CAACA,EAAEjB,EAAEo5B,UAAU,IAAIV,GAAG,IAAIrlC,EAAE,IAAInL,IAAI+Y,EAAEha,IAAIgZ,EAAE5M,EAAE,WAAiB,KAAXA,EAAE4N,EAAE/Z,IAAI+Y,MAAgB5M,EAAE,IAAInL,IAAI+Y,EAAEha,IAAIgZ,EAAE5M,IAAIA,EAAElM,IAAI+Y,KAAK7M,EAAE7K,IAAI0X,GAAGF,EAAEq5B,GAAGrU,KAAK,KAAKhlB,EAAEC,EAAEC,GAAGD,EAAEmnB,KAAKpnB,EAAEA,GAAG,CAAC,SAASs5B,GAAGt5B,GAAG,EAAE,CAAC,IAAIC,EAA4E,IAAvEA,EAAE,KAAKD,EAAE7L,OAAsB8L,EAAE,QAApBA,EAAED,EAAEqP,gBAAyB,OAAOpP,EAAEqP,YAAuBrP,EAAE,OAAOD,EAAEA,EAAEA,EAAEkP,MAAM,OAAO,OAAOlP,GAAG,OAAO,IAAI,CAChW,SAASu5B,GAAGv5B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,OAAG,KAAY,EAAP2M,EAAEqrB,OAAerrB,IAAIC,EAAED,EAAEmP,OAAO,OAAOnP,EAAEmP,OAAO,IAAIjP,EAAEiP,OAAO,OAAOjP,EAAEiP,QAAQ,MAAM,IAAIjP,EAAE/L,MAAM,OAAO+L,EAAE+O,UAAU/O,EAAE/L,IAAI,KAAI8L,EAAEguB,IAAI,EAAE,IAAK95B,IAAI,EAAEm6B,GAAGpuB,EAAED,EAAE,KAAKC,EAAE0sB,OAAO,GAAG5sB,IAAEA,EAAEmP,OAAO,MAAMnP,EAAE4sB,MAAMv5B,EAAS2M,EAAC,CAAC,IAAIw5B,GAAG92B,EAAG+2B,kBAAkB5M,IAAG,EAAG,SAAS6M,GAAG15B,EAAEC,EAAEC,EAAEe,GAAGhB,EAAEwP,MAAM,OAAOzP,EAAE4xB,GAAG3xB,EAAE,KAAKC,EAAEe,GAAG0wB,GAAG1xB,EAAED,EAAEyP,MAAMvP,EAAEe,EAAE,CACnV,SAAS04B,GAAG35B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG6M,EAAEA,EAAE0E,OAAO,IAAI1D,EAAEjB,EAAE6wB,IAAqC,OAAjCrE,GAAGxsB,EAAE5M,GAAG4N,EAAEyyB,GAAG1zB,EAAEC,EAAEC,EAAEe,EAAEC,EAAE7N,GAAG6M,EAAE6zB,KAAQ,OAAO/zB,GAAI6sB,IAA2EnC,IAAGxqB,GAAGoqB,GAAGrqB,GAAGA,EAAEkP,OAAO,EAAEuqB,GAAG15B,EAAEC,EAAEgB,EAAE5N,GAAU4M,EAAEwP,QAA7GxP,EAAEwtB,YAAYztB,EAAEytB,YAAYxtB,EAAEkP,QAAQ,KAAKnP,EAAE4sB,QAAQv5B,EAAEumC,GAAG55B,EAAEC,EAAE5M,GAAoD,CACzN,SAASwmC,GAAG75B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,GAAG,OAAO2M,EAAE,CAAC,IAAIkB,EAAEhB,EAAE3I,KAAK,MAAG,oBAAoB2J,GAAI44B,GAAG54B,SAAI,IAASA,EAAE6qB,cAAc,OAAO7rB,EAAE65B,cAAS,IAAS75B,EAAE6rB,eAAoD/rB,EAAEsxB,GAAGpxB,EAAE3I,KAAK,KAAK0J,EAAEhB,EAAEA,EAAEorB,KAAKh4B,IAAKy9B,IAAI7wB,EAAE6wB,IAAI9wB,EAAEkP,OAAOjP,EAASA,EAAEwP,MAAMzP,IAArGC,EAAE9L,IAAI,GAAG8L,EAAE1I,KAAK2J,EAAE84B,GAAGh6B,EAAEC,EAAEiB,EAAED,EAAE5N,GAAyE,CAAW,GAAV6N,EAAElB,EAAEyP,MAAS,KAAKzP,EAAE4sB,MAAMv5B,GAAG,CAAC,IAAI8N,EAAED,EAAEuqB,cAA0C,IAAhBvrB,EAAE,QAAdA,EAAEA,EAAE65B,SAAmB75B,EAAEmgB,IAAQlf,EAAEF,IAAIjB,EAAE8wB,MAAM7wB,EAAE6wB,IAAI,OAAO8I,GAAG55B,EAAEC,EAAE5M,EAAE,CAA6C,OAA5C4M,EAAEkP,OAAO,GAAEnP,EAAEoxB,GAAGlwB,EAAED,IAAK6vB,IAAI7wB,EAAE6wB,IAAI9wB,EAAEkP,OAAOjP,EAASA,EAAEwP,MAAMzP,CAAC,CAC1b,SAASg6B,GAAGh6B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,GAAG,OAAO2M,EAAE,CAAC,IAAIkB,EAAElB,EAAEyrB,cAAc,GAAGpL,GAAGnf,EAAED,IAAIjB,EAAE8wB,MAAM7wB,EAAE6wB,IAAI,IAAGjE,IAAG,EAAG5sB,EAAE+qB,aAAa/pB,EAAEC,EAAE,KAAKlB,EAAE4sB,MAAMv5B,GAAsC,OAAO4M,EAAE2sB,MAAM5sB,EAAE4sB,MAAMgN,GAAG55B,EAAEC,EAAE5M,GAAjE,KAAa,OAAR2M,EAAEmP,SAAgB0d,IAAG,EAAyC,EAAC,OAAOoN,GAAGj6B,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE,CACxN,SAAS6mC,GAAGl6B,EAAEC,EAAEC,GAAG,IAAIe,EAAEhB,EAAE+qB,aAAa33B,EAAE4N,EAAEqG,SAASpG,EAAE,OAAOlB,EAAEA,EAAEqP,cAAc,KAAK,GAAG,WAAWpO,EAAEoqB,KAAK,GAAG,KAAY,EAAPprB,EAAEorB,MAAQprB,EAAEoP,cAAc,CAAC8qB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAMjS,GAAEkS,GAAGC,IAAIA,IAAIr6B,MAAM,CAAC,GAAG,KAAO,WAAFA,GAAc,OAAOF,EAAE,OAAOkB,EAAEA,EAAEi5B,UAAUj6B,EAAEA,EAAED,EAAE2sB,MAAM3sB,EAAEusB,WAAW,WAAWvsB,EAAEoP,cAAc,CAAC8qB,UAAUn6B,EAAEo6B,UAAU,KAAKC,YAAY,MAAMp6B,EAAEwtB,YAAY,KAAKrF,GAAEkS,GAAGC,IAAIA,IAAIv6B,EAAE,KAAKC,EAAEoP,cAAc,CAAC8qB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAMp5B,EAAE,OAAOC,EAAEA,EAAEi5B,UAAUj6B,EAAEkoB,GAAEkS,GAAGC,IAAIA,IAAIt5B,CAAC,MAAM,OACtfC,GAAGD,EAAEC,EAAEi5B,UAAUj6B,EAAED,EAAEoP,cAAc,MAAMpO,EAAEf,EAAEkoB,GAAEkS,GAAGC,IAAIA,IAAIt5B,EAAc,OAAZy4B,GAAG15B,EAAEC,EAAE5M,EAAE6M,GAAUD,EAAEwP,KAAK,CAAC,SAAS+qB,GAAGx6B,EAAEC,GAAG,IAAIC,EAAED,EAAE6wB,KAAO,OAAO9wB,GAAG,OAAOE,GAAG,OAAOF,GAAGA,EAAE8wB,MAAM5wB,KAAED,EAAEkP,OAAO,IAAIlP,EAAEkP,OAAO,QAAO,CAAC,SAAS8qB,GAAGj6B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,IAAI6N,EAAE2nB,GAAG3oB,GAAGsoB,GAAGF,GAAE3Y,QAAmD,OAA3CzO,EAAEunB,GAAGxoB,EAAEiB,GAAGurB,GAAGxsB,EAAE5M,GAAG6M,EAAEwzB,GAAG1zB,EAAEC,EAAEC,EAAEe,EAAEC,EAAE7N,GAAG4N,EAAE8yB,KAAQ,OAAO/zB,GAAI6sB,IAA2EnC,IAAGzpB,GAAGqpB,GAAGrqB,GAAGA,EAAEkP,OAAO,EAAEuqB,GAAG15B,EAAEC,EAAEC,EAAE7M,GAAU4M,EAAEwP,QAA7GxP,EAAEwtB,YAAYztB,EAAEytB,YAAYxtB,EAAEkP,QAAQ,KAAKnP,EAAE4sB,QAAQv5B,EAAEumC,GAAG55B,EAAEC,EAAE5M,GAAoD,CACla,SAASonC,GAAGz6B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,GAAGw1B,GAAG3oB,GAAG,CAAC,IAAIgB,GAAE,EAAGioB,GAAGlpB,EAAE,MAAMiB,GAAE,EAAW,GAARurB,GAAGxsB,EAAE5M,GAAM,OAAO4M,EAAEyN,UAAUgtB,GAAG16B,EAAEC,GAAG+vB,GAAG/vB,EAAEC,EAAEe,GAAGsvB,GAAGtwB,EAAEC,EAAEe,EAAE5N,GAAG4N,GAAE,OAAQ,GAAG,OAAOjB,EAAE,CAAC,IAAImB,EAAElB,EAAEyN,UAAUlJ,EAAEvE,EAAEwrB,cAActqB,EAAEnO,MAAMwR,EAAE,IAAIC,EAAEtD,EAAE4rB,QAAQxoB,EAAErE,EAAE+vB,YAAY,kBAAkB1rB,GAAG,OAAOA,EAAEA,EAAEuoB,GAAGvoB,GAAyBA,EAAEkkB,GAAGxoB,EAA1BsE,EAAEskB,GAAG3oB,GAAGsoB,GAAGF,GAAE3Y,SAAmB,IAAInB,EAAEtO,EAAEswB,yBAAyB7B,EAAE,oBAAoBngB,GAAG,oBAAoBrN,EAAEsvB,wBAAwB9B,GAAG,oBAAoBxtB,EAAEmvB,kCAAkC,oBAAoBnvB,EAAEkvB,4BAC1d7rB,IAAIvD,GAAGwD,IAAIF,IAAI6rB,GAAGnwB,EAAEkB,EAAEF,EAAEsD,GAAGgpB,IAAG,EAAG,IAAIqB,EAAE3uB,EAAEoP,cAAclO,EAAE+uB,MAAMtB,EAAEF,GAAGzuB,EAAEgB,EAAEE,EAAE9N,GAAGoR,EAAExE,EAAEoP,cAAc7K,IAAIvD,GAAG2tB,IAAInqB,GAAG8jB,GAAG5Y,SAAS4d,IAAI,oBAAoB/e,IAAI2gB,GAAGlvB,EAAEC,EAAEsO,EAAEvN,GAAGwD,EAAExE,EAAEoP,gBAAgB7K,EAAE+oB,IAAIsC,GAAG5vB,EAAEC,EAAEsE,EAAEvD,EAAE2tB,EAAEnqB,EAAEF,KAAKoqB,GAAG,oBAAoBxtB,EAAEuvB,2BAA2B,oBAAoBvvB,EAAEwvB,qBAAqB,oBAAoBxvB,EAAEwvB,oBAAoBxvB,EAAEwvB,qBAAqB,oBAAoBxvB,EAAEuvB,2BAA2BvvB,EAAEuvB,6BAA6B,oBAAoBvvB,EAAEyvB,oBAAoB3wB,EAAEkP,OAAO,WAClf,oBAAoBhO,EAAEyvB,oBAAoB3wB,EAAEkP,OAAO,SAASlP,EAAEwrB,cAAcxqB,EAAEhB,EAAEoP,cAAc5K,GAAGtD,EAAEnO,MAAMiO,EAAEE,EAAE+uB,MAAMzrB,EAAEtD,EAAE4rB,QAAQxoB,EAAEtD,EAAEuD,IAAI,oBAAoBrD,EAAEyvB,oBAAoB3wB,EAAEkP,OAAO,SAASlO,GAAE,EAAG,KAAK,CAACE,EAAElB,EAAEyN,UAAUsgB,GAAGhuB,EAAEC,GAAGuE,EAAEvE,EAAEwrB,cAAclnB,EAAEtE,EAAE1I,OAAO0I,EAAEd,YAAYqF,EAAEsnB,GAAG7rB,EAAE1I,KAAKiN,GAAGrD,EAAEnO,MAAMuR,EAAEoqB,EAAE1uB,EAAE+qB,aAAa4D,EAAEztB,EAAE4rB,QAAwB,kBAAhBtoB,EAAEvE,EAAE+vB,cAAiC,OAAOxrB,EAAEA,EAAEqoB,GAAGroB,GAAyBA,EAAEgkB,GAAGxoB,EAA1BwE,EAAEokB,GAAG3oB,GAAGsoB,GAAGF,GAAE3Y,SAAmB,IAAIkf,EAAE3uB,EAAEswB,0BAA0BhiB,EAAE,oBAAoBqgB,GAAG,oBAAoB1tB,EAAEsvB,0BAC9e,oBAAoBtvB,EAAEmvB,kCAAkC,oBAAoBnvB,EAAEkvB,4BAA4B7rB,IAAImqB,GAAGC,IAAInqB,IAAI2rB,GAAGnwB,EAAEkB,EAAEF,EAAEwD,GAAG8oB,IAAG,EAAGqB,EAAE3uB,EAAEoP,cAAclO,EAAE+uB,MAAMtB,EAAEF,GAAGzuB,EAAEgB,EAAEE,EAAE9N,GAAG,IAAIpC,EAAEgP,EAAEoP,cAAc7K,IAAImqB,GAAGC,IAAI39B,GAAGs3B,GAAG5Y,SAAS4d,IAAI,oBAAoBsB,IAAIM,GAAGlvB,EAAEC,EAAE2uB,EAAE5tB,GAAGhQ,EAAEgP,EAAEoP,gBAAgB9K,EAAEgpB,IAAIsC,GAAG5vB,EAAEC,EAAEqE,EAAEtD,EAAE2tB,EAAE39B,EAAEwT,KAAI,IAAK+J,GAAG,oBAAoBrN,EAAEw5B,4BAA4B,oBAAoBx5B,EAAEy5B,sBAAsB,oBAAoBz5B,EAAEy5B,qBAAqBz5B,EAAEy5B,oBAAoB35B,EAAEhQ,EAAEwT,GAAG,oBAAoBtD,EAAEw5B,4BAC5fx5B,EAAEw5B,2BAA2B15B,EAAEhQ,EAAEwT,IAAI,oBAAoBtD,EAAE05B,qBAAqB56B,EAAEkP,OAAO,GAAG,oBAAoBhO,EAAEsvB,0BAA0BxwB,EAAEkP,OAAO,QAAQ,oBAAoBhO,EAAE05B,oBAAoBr2B,IAAIxE,EAAEyrB,eAAemD,IAAI5uB,EAAEqP,gBAAgBpP,EAAEkP,OAAO,GAAG,oBAAoBhO,EAAEsvB,yBAAyBjsB,IAAIxE,EAAEyrB,eAAemD,IAAI5uB,EAAEqP,gBAAgBpP,EAAEkP,OAAO,MAAMlP,EAAEwrB,cAAcxqB,EAAEhB,EAAEoP,cAAcpe,GAAGkQ,EAAEnO,MAAMiO,EAAEE,EAAE+uB,MAAMj/B,EAAEkQ,EAAE4rB,QAAQtoB,EAAExD,EAAEsD,IAAI,oBAAoBpD,EAAE05B,oBAAoBr2B,IAAIxE,EAAEyrB,eAAemD,IACjf5uB,EAAEqP,gBAAgBpP,EAAEkP,OAAO,GAAG,oBAAoBhO,EAAEsvB,yBAAyBjsB,IAAIxE,EAAEyrB,eAAemD,IAAI5uB,EAAEqP,gBAAgBpP,EAAEkP,OAAO,MAAMlO,GAAE,EAAG,CAAC,OAAO65B,GAAG96B,EAAEC,EAAEC,EAAEe,EAAEC,EAAE7N,EAAE,CACnK,SAASynC,GAAG96B,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,GAAGs5B,GAAGx6B,EAAEC,GAAG,IAAIkB,EAAE,KAAa,IAARlB,EAAEkP,OAAW,IAAIlO,IAAIE,EAAE,OAAO9N,GAAGg2B,GAAGppB,EAAEC,GAAE,GAAI05B,GAAG55B,EAAEC,EAAEiB,GAAGD,EAAEhB,EAAEyN,UAAU8rB,GAAG7pB,QAAQ1P,EAAE,IAAIuE,EAAErD,GAAG,oBAAoBjB,EAAE64B,yBAAyB,KAAK93B,EAAE2D,SAAwI,OAA/H3E,EAAEkP,OAAO,EAAE,OAAOnP,GAAGmB,GAAGlB,EAAEwP,MAAMkiB,GAAG1xB,EAAED,EAAEyP,MAAM,KAAKvO,GAAGjB,EAAEwP,MAAMkiB,GAAG1xB,EAAE,KAAKuE,EAAEtD,IAAIw4B,GAAG15B,EAAEC,EAAEuE,EAAEtD,GAAGjB,EAAEoP,cAAcpO,EAAEivB,MAAM78B,GAAGg2B,GAAGppB,EAAEC,GAAE,GAAWD,EAAEwP,KAAK,CAAC,SAASsrB,GAAG/6B,GAAG,IAAIC,EAAED,EAAE0N,UAAUzN,EAAE+6B,eAAehS,GAAGhpB,EAAEC,EAAE+6B,eAAe/6B,EAAE+6B,iBAAiB/6B,EAAE8sB,SAAS9sB,EAAE8sB,SAAS/D,GAAGhpB,EAAEC,EAAE8sB,SAAQ,GAAImF,GAAGlyB,EAAEC,EAAEwU,cAAc,CAC5e,SAASwmB,GAAGj7B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAuC,OAApCs4B,KAAKC,GAAGv4B,GAAG4M,EAAEkP,OAAO,IAAIuqB,GAAG15B,EAAEC,EAAEC,EAAEe,GAAUhB,EAAEwP,KAAK,CAAC,IAaqLyrB,GAAGC,GAAGC,GAAGC,GAb1LC,GAAG,CAAChsB,WAAW,KAAK4b,YAAY,KAAKC,UAAU,GAAG,SAASoQ,GAAGv7B,GAAG,MAAM,CAACm6B,UAAUn6B,EAAEo6B,UAAU,KAAKC,YAAY,KAAK,CAClM,SAASmB,GAAGx7B,EAAEC,EAAEC,GAAG,IAA0DsE,EAAtDvD,EAAEhB,EAAE+qB,aAAa33B,EAAEk/B,GAAE5iB,QAAQzO,GAAE,EAAGC,EAAE,KAAa,IAARlB,EAAEkP,OAAqJ,IAAvI3K,EAAErD,KAAKqD,GAAE,OAAOxE,GAAG,OAAOA,EAAEqP,gBAAiB,KAAO,EAAFhc,IAASmR,GAAEtD,GAAE,EAAGjB,EAAEkP,QAAQ,KAAY,OAAOnP,GAAG,OAAOA,EAAEqP,gBAAchc,GAAG,GAAE+0B,GAAEmK,GAAI,EAAFl/B,GAAQ,OAAO2M,EAA2B,OAAxBsrB,GAAGrrB,GAAwB,QAArBD,EAAEC,EAAEoP,gBAA2C,QAAfrP,EAAEA,EAAEsP,aAA4B,KAAY,EAAPrP,EAAEorB,MAAQprB,EAAE2sB,MAAM,EAAE,OAAO5sB,EAAEjX,KAAKkX,EAAE2sB,MAAM,EAAE3sB,EAAE2sB,MAAM,WAAW,OAAKzrB,EAAEF,EAAEqG,SAAStH,EAAEiB,EAAEw6B,SAAgBv6B,GAAGD,EAAEhB,EAAEorB,KAAKnqB,EAAEjB,EAAEwP,MAAMtO,EAAE,CAACkqB,KAAK,SAAS/jB,SAASnG,GAAG,KAAO,EAAFF,IAAM,OAAOC,GAAGA,EAAEsrB,WAAW,EAAEtrB,EAAE8pB,aAC7e7pB,GAAGD,EAAEw6B,GAAGv6B,EAAEF,EAAE,EAAE,MAAMjB,EAAEyxB,GAAGzxB,EAAEiB,EAAEf,EAAE,MAAMgB,EAAEgO,OAAOjP,EAAED,EAAEkP,OAAOjP,EAAEiB,EAAEwO,QAAQ1P,EAAEC,EAAEwP,MAAMvO,EAAEjB,EAAEwP,MAAMJ,cAAcksB,GAAGr7B,GAAGD,EAAEoP,cAAcisB,GAAGt7B,GAAG27B,GAAG17B,EAAEkB,IAAqB,GAAG,QAArB9N,EAAE2M,EAAEqP,gBAA2C,QAAf7K,EAAEnR,EAAEic,YAAqB,OAGpM,SAAYtP,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,EAAEC,GAAG,GAAGjB,EAAG,OAAW,IAARD,EAAEkP,OAAiBlP,EAAEkP,QAAQ,IAAwBysB,GAAG57B,EAAEC,EAAEkB,EAA3BF,EAAEq3B,GAAG55B,MAAMqB,EAAE,SAAsB,OAAOE,EAAEoP,eAAqBpP,EAAEwP,MAAMzP,EAAEyP,MAAMxP,EAAEkP,OAAO,IAAI,OAAKjO,EAAED,EAAEw6B,SAASpoC,EAAE4M,EAAEorB,KAAKpqB,EAAEy6B,GAAG,CAACrQ,KAAK,UAAU/jB,SAASrG,EAAEqG,UAAUjU,EAAE,EAAE,OAAM6N,EAAEuwB,GAAGvwB,EAAE7N,EAAE8N,EAAE,OAAQgO,OAAO,EAAElO,EAAEiO,OAAOjP,EAAEiB,EAAEgO,OAAOjP,EAAEgB,EAAEyO,QAAQxO,EAAEjB,EAAEwP,MAAMxO,EAAE,KAAY,EAAPhB,EAAEorB,OAASsG,GAAG1xB,EAAED,EAAEyP,MAAM,KAAKtO,GAAGlB,EAAEwP,MAAMJ,cAAcksB,GAAGp6B,GAAGlB,EAAEoP,cAAcisB,GAAUp6B,GAAE,GAAG,KAAY,EAAPjB,EAAEorB,MAAQ,OAAOuQ,GAAG57B,EAAEC,EAAEkB,EAAE,MAAM,GAAG,OAAO9N,EAAEtK,KAAK,CAChd,GADidkY,EAAE5N,EAAEmtB,aAAantB,EAAEmtB,YAAYqb,QAC3e,IAAIr3B,EAAEvD,EAAE66B,KAA0C,OAArC76B,EAAEuD,EAA0Co3B,GAAG57B,EAAEC,EAAEkB,EAA/BF,EAAEq3B,GAAlBp3B,EAAExC,MAAMqB,EAAE,MAAakB,OAAE,GAA0B,CAAwB,GAAvBuD,EAAE,KAAKrD,EAAEnB,EAAEwsB,YAAeK,IAAIroB,EAAE,CAAK,GAAG,QAAPvD,EAAEm0B,IAAc,CAAC,OAAOj0B,GAAGA,GAAG,KAAK,EAAE9N,EAAE,EAAE,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAASA,EAAE,GAAG,MAAM,KAAK,UAAUA,EAAE,UAAU,MAAM,QAAQA,EAAE,EAChd,KADkdA,EAAE,KAAKA,GAAG4N,EAAEgR,eAAe9Q,IAAI,EAAE9N,IAC5eA,IAAI6N,EAAEiqB,YAAYjqB,EAAEiqB,UAAU93B,EAAEi6B,GAAGttB,EAAE3M,GAAGq8B,GAAGzuB,EAAEjB,EAAE3M,GAAG,GAAG,CAA0B,OAAzB0oC,KAAgCH,GAAG57B,EAAEC,EAAEkB,EAAlCF,EAAEq3B,GAAG55B,MAAMqB,EAAE,OAAyB,CAAC,MAAG,OAAO1M,EAAEtK,MAAYkX,EAAEkP,OAAO,IAAIlP,EAAEwP,MAAMzP,EAAEyP,MAAMxP,EAAE+7B,GAAGhX,KAAK,KAAKhlB,GAAG3M,EAAE4oC,YAAYh8B,EAAE,OAAKD,EAAEkB,EAAEgqB,YAAYT,GAAGjD,GAAGn0B,EAAEmtB,aAAagK,GAAGvqB,EAAEyqB,IAAE,EAAGC,GAAG,KAAK,OAAO3qB,IAAI+pB,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGC,GAAGlqB,EAAE0V,GAAGyU,GAAGnqB,EAAEirB,SAAShB,GAAGhqB,GAAGA,EAAE07B,GAAG17B,EAAEgB,EAAEqG,UAAUrH,EAAEkP,OAAO,KAAYlP,EAAC,CALrKi8B,CAAGl8B,EAAEC,EAAEkB,EAAEF,EAAEuD,EAAEnR,EAAE6M,GAAG,GAAGgB,EAAE,CAACA,EAAED,EAAEw6B,SAASt6B,EAAElB,EAAEorB,KAAe7mB,GAAVnR,EAAE2M,EAAEyP,OAAUC,QAAQ,IAAIjL,EAAE,CAAC4mB,KAAK,SAAS/jB,SAASrG,EAAEqG,UAChF,OAD0F,KAAO,EAAFnG,IAAMlB,EAAEwP,QAAQpc,IAAG4N,EAAEhB,EAAEwP,OAAQ+c,WAAW,EAAEvrB,EAAE+pB,aAAavmB,EAAExE,EAAE6qB,UAAU,OAAO7pB,EAAEmwB,GAAG/9B,EAAEoR,IAAK03B,aAA4B,SAAf9oC,EAAE8oC,aAAuB,OAAO33B,EAAEtD,EAAEkwB,GAAG5sB,EAAEtD,IAAIA,EAAEuwB,GAAGvwB,EAAEC,EAAEjB,EAAE,OAAQiP,OAAO,EAAGjO,EAAEgO,OACnfjP,EAAEgB,EAAEiO,OAAOjP,EAAEgB,EAAEyO,QAAQxO,EAAEjB,EAAEwP,MAAMxO,EAAEA,EAAEC,EAAEA,EAAEjB,EAAEwP,MAA8BtO,EAAE,QAA1BA,EAAEnB,EAAEyP,MAAMJ,eAAyBksB,GAAGr7B,GAAG,CAACi6B,UAAUh5B,EAAEg5B,UAAUj6B,EAAEk6B,UAAU,KAAKC,YAAYl5B,EAAEk5B,aAAan5B,EAAEmO,cAAclO,EAAED,EAAEsrB,WAAWxsB,EAAEwsB,YAAYtsB,EAAED,EAAEoP,cAAcisB,GAAUr6B,CAAC,CAAoO,OAAzNjB,GAAVkB,EAAElB,EAAEyP,OAAUC,QAAQzO,EAAEmwB,GAAGlwB,EAAE,CAACmqB,KAAK,UAAU/jB,SAASrG,EAAEqG,WAAW,KAAY,EAAPrH,EAAEorB,QAAUpqB,EAAE2rB,MAAM1sB,GAAGe,EAAEiO,OAAOjP,EAAEgB,EAAEyO,QAAQ,KAAK,OAAO1P,IAAkB,QAAdE,EAAED,EAAE6qB,YAAoB7qB,EAAE6qB,UAAU,CAAC9qB,GAAGC,EAAEkP,OAAO,IAAIjP,EAAE9a,KAAK4a,IAAIC,EAAEwP,MAAMxO,EAAEhB,EAAEoP,cAAc,KAAYpO,CAAC,CACnd,SAAS06B,GAAG37B,EAAEC,GAA8D,OAA3DA,EAAEy7B,GAAG,CAACrQ,KAAK,UAAU/jB,SAASrH,GAAGD,EAAEqrB,KAAK,EAAE,OAAQnc,OAAOlP,EAASA,EAAEyP,MAAMxP,CAAC,CAAC,SAAS27B,GAAG57B,EAAEC,EAAEC,EAAEe,GAAwG,OAArG,OAAOA,GAAG2qB,GAAG3qB,GAAG0wB,GAAG1xB,EAAED,EAAEyP,MAAM,KAAKvP,IAAGF,EAAE27B,GAAG17B,EAAEA,EAAE+qB,aAAa1jB,WAAY6H,OAAO,EAAElP,EAAEoP,cAAc,KAAYrP,CAAC,CAGkJ,SAASo8B,GAAGp8B,EAAEC,EAAEC,GAAGF,EAAE4sB,OAAO3sB,EAAE,IAAIgB,EAAEjB,EAAEiP,UAAU,OAAOhO,IAAIA,EAAE2rB,OAAO3sB,GAAGssB,GAAGvsB,EAAEkP,OAAOjP,EAAEC,EAAE,CACxc,SAASm8B,GAAGr8B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,IAAI6N,EAAElB,EAAEqP,cAAc,OAAOnO,EAAElB,EAAEqP,cAAc,CAACitB,YAAYr8B,EAAEs8B,UAAU,KAAKC,mBAAmB,EAAEC,KAAKx7B,EAAEy7B,KAAKx8B,EAAEy8B,SAAStpC,IAAI6N,EAAEo7B,YAAYr8B,EAAEiB,EAAEq7B,UAAU,KAAKr7B,EAAEs7B,mBAAmB,EAAEt7B,EAAEu7B,KAAKx7B,EAAEC,EAAEw7B,KAAKx8B,EAAEgB,EAAEy7B,SAAStpC,EAAE,CAC3O,SAASupC,GAAG58B,EAAEC,EAAEC,GAAG,IAAIe,EAAEhB,EAAE+qB,aAAa33B,EAAE4N,EAAEwxB,YAAYvxB,EAAED,EAAEy7B,KAAsC,GAAjChD,GAAG15B,EAAEC,EAAEgB,EAAEqG,SAASpH,GAAkB,KAAO,GAAtBe,EAAEsxB,GAAE5iB,UAAqB1O,EAAI,EAAFA,EAAI,EAAEhB,EAAEkP,OAAO,QAAQ,CAAC,GAAG,OAAOnP,GAAG,KAAa,IAARA,EAAEmP,OAAWnP,EAAE,IAAIA,EAAEC,EAAEwP,MAAM,OAAOzP,GAAG,CAAC,GAAG,KAAKA,EAAE7L,IAAI,OAAO6L,EAAEqP,eAAe+sB,GAAGp8B,EAAEE,EAAED,QAAQ,GAAG,KAAKD,EAAE7L,IAAIioC,GAAGp8B,EAAEE,EAAED,QAAQ,GAAG,OAAOD,EAAEyP,MAAM,CAACzP,EAAEyP,MAAMP,OAAOlP,EAAEA,EAAEA,EAAEyP,MAAM,QAAQ,CAAC,GAAGzP,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAE0P,SAAS,CAAC,GAAG,OAAO1P,EAAEkP,QAAQlP,EAAEkP,SAASjP,EAAE,MAAMD,EAAEA,EAAEA,EAAEkP,MAAM,CAAClP,EAAE0P,QAAQR,OAAOlP,EAAEkP,OAAOlP,EAAEA,EAAE0P,OAAO,CAACzO,GAAG,CAAC,CAAQ,GAAPmnB,GAAEmK,GAAEtxB,GAAM,KAAY,EAAPhB,EAAEorB,MAAQprB,EAAEoP,cAC/e,UAAU,OAAOhc,GAAG,IAAK,WAAqB,IAAV6M,EAAED,EAAEwP,MAAUpc,EAAE,KAAK,OAAO6M,GAAiB,QAAdF,EAAEE,EAAE+O,YAAoB,OAAOujB,GAAGxyB,KAAK3M,EAAE6M,GAAGA,EAAEA,EAAEwP,QAAY,QAAJxP,EAAE7M,IAAYA,EAAE4M,EAAEwP,MAAMxP,EAAEwP,MAAM,OAAOpc,EAAE6M,EAAEwP,QAAQxP,EAAEwP,QAAQ,MAAM2sB,GAAGp8B,GAAE,EAAG5M,EAAE6M,EAAEgB,GAAG,MAAM,IAAK,YAA6B,IAAjBhB,EAAE,KAAK7M,EAAE4M,EAAEwP,MAAUxP,EAAEwP,MAAM,KAAK,OAAOpc,GAAG,CAAe,GAAG,QAAjB2M,EAAE3M,EAAE4b,YAAuB,OAAOujB,GAAGxyB,GAAG,CAACC,EAAEwP,MAAMpc,EAAE,KAAK,CAAC2M,EAAE3M,EAAEqc,QAAQrc,EAAEqc,QAAQxP,EAAEA,EAAE7M,EAAEA,EAAE2M,CAAC,CAACq8B,GAAGp8B,GAAE,EAAGC,EAAE,KAAKgB,GAAG,MAAM,IAAK,WAAWm7B,GAAGp8B,GAAE,EAAG,KAAK,UAAK,GAAQ,MAAM,QAAQA,EAAEoP,cAAc,KAAK,OAAOpP,EAAEwP,KAAK,CAC7d,SAASirB,GAAG16B,EAAEC,GAAG,KAAY,EAAPA,EAAEorB,OAAS,OAAOrrB,IAAIA,EAAEiP,UAAU,KAAKhP,EAAEgP,UAAU,KAAKhP,EAAEkP,OAAO,EAAE,CAAC,SAASyqB,GAAG55B,EAAEC,EAAEC,GAAyD,GAAtD,OAAOF,IAAIC,EAAEysB,aAAa1sB,EAAE0sB,cAAcoC,IAAI7uB,EAAE2sB,MAAS,KAAK1sB,EAAED,EAAEusB,YAAY,OAAO,KAAK,GAAG,OAAOxsB,GAAGC,EAAEwP,QAAQzP,EAAEyP,MAAM,MAAM/Q,MAAMqB,EAAE,MAAM,GAAG,OAAOE,EAAEwP,MAAM,CAA4C,IAAjCvP,EAAEkxB,GAAZpxB,EAAEC,EAAEwP,MAAazP,EAAEgrB,cAAc/qB,EAAEwP,MAAMvP,EAAMA,EAAEgP,OAAOjP,EAAE,OAAOD,EAAE0P,SAAS1P,EAAEA,EAAE0P,SAAQxP,EAAEA,EAAEwP,QAAQ0hB,GAAGpxB,EAAEA,EAAEgrB,eAAgB9b,OAAOjP,EAAEC,EAAEwP,QAAQ,IAAI,CAAC,OAAOzP,EAAEwP,KAAK,CAO9a,SAASotB,GAAG78B,EAAEC,GAAG,IAAIyqB,GAAE,OAAO1qB,EAAE28B,UAAU,IAAK,SAAS18B,EAAED,EAAE08B,KAAK,IAAI,IAAIx8B,EAAE,KAAK,OAAOD,GAAG,OAAOA,EAAEgP,YAAY/O,EAAED,GAAGA,EAAEA,EAAEyP,QAAQ,OAAOxP,EAAEF,EAAE08B,KAAK,KAAKx8B,EAAEwP,QAAQ,KAAK,MAAM,IAAK,YAAYxP,EAAEF,EAAE08B,KAAK,IAAI,IAAIz7B,EAAE,KAAK,OAAOf,GAAG,OAAOA,EAAE+O,YAAYhO,EAAEf,GAAGA,EAAEA,EAAEwP,QAAQ,OAAOzO,EAAEhB,GAAG,OAAOD,EAAE08B,KAAK18B,EAAE08B,KAAK,KAAK18B,EAAE08B,KAAKhtB,QAAQ,KAAKzO,EAAEyO,QAAQ,KAAK,CAC5U,SAASotB,GAAE98B,GAAG,IAAIC,EAAE,OAAOD,EAAEiP,WAAWjP,EAAEiP,UAAUQ,QAAQzP,EAAEyP,MAAMvP,EAAE,EAAEe,EAAE,EAAE,GAAGhB,EAAE,IAAI,IAAI5M,EAAE2M,EAAEyP,MAAM,OAAOpc,GAAG6M,GAAG7M,EAAEu5B,MAAMv5B,EAAEm5B,WAAWvrB,GAAkB,SAAf5N,EAAE8oC,aAAsBl7B,GAAW,SAAR5N,EAAE8b,MAAe9b,EAAE6b,OAAOlP,EAAE3M,EAAEA,EAAEqc,aAAa,IAAIrc,EAAE2M,EAAEyP,MAAM,OAAOpc,GAAG6M,GAAG7M,EAAEu5B,MAAMv5B,EAAEm5B,WAAWvrB,GAAG5N,EAAE8oC,aAAal7B,GAAG5N,EAAE8b,MAAM9b,EAAE6b,OAAOlP,EAAE3M,EAAEA,EAAEqc,QAAyC,OAAjC1P,EAAEm8B,cAAcl7B,EAAEjB,EAAEwsB,WAAWtsB,EAASD,CAAC,CAC7V,SAAS88B,GAAG/8B,EAAEC,EAAEC,GAAG,IAAIe,EAAEhB,EAAE+qB,aAAmB,OAANT,GAAGtqB,GAAUA,EAAE9L,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO2oC,GAAE78B,GAAG,KAAK,KAAK,EAUtD,KAAK,GAAG,OAAO4oB,GAAG5oB,EAAE1I,OAAOwxB,KAAK+T,GAAE78B,GAAG,KAVqD,KAAK,EAA2Q,OAAzQgB,EAAEhB,EAAEyN,UAAU0kB,KAAKjK,GAAEI,IAAIJ,GAAEG,IAAGqK,KAAK1xB,EAAE+5B,iBAAiB/5B,EAAE8rB,QAAQ9rB,EAAE+5B,eAAe/5B,EAAE+5B,eAAe,MAAS,OAAOh7B,GAAG,OAAOA,EAAEyP,QAAM+b,GAAGvrB,GAAGA,EAAEkP,OAAO,EAAE,OAAOnP,GAAGA,EAAEqP,cAAcmF,cAAc,KAAa,IAARvU,EAAEkP,SAAalP,EAAEkP,OAAO,KAAK,OAAOwb,KAAKqS,GAAGrS,IAAIA,GAAG,QAAOwQ,GAAGn7B,EAAEC,GAAG68B,GAAE78B,GAAU,KAAK,KAAK,EAAEqyB,GAAGryB,GAAG,IAAI5M,EAAE4+B,GAAGD,GAAGriB,SAC7e,GAATzP,EAAED,EAAE1I,KAAQ,OAAOyI,GAAG,MAAMC,EAAEyN,UAAU0tB,GAAGp7B,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG2M,EAAE8wB,MAAM7wB,EAAE6wB,MAAM7wB,EAAEkP,OAAO,IAAIlP,EAAEkP,OAAO,aAAa,CAAC,IAAIlO,EAAE,CAAC,GAAG,OAAOhB,EAAEyN,UAAU,MAAMhP,MAAMqB,EAAE,MAAW,OAAL+8B,GAAE78B,GAAU,IAAI,CAAkB,GAAjBD,EAAEiyB,GAAGH,GAAGniB,SAAY6b,GAAGvrB,GAAG,CAACgB,EAAEhB,EAAEyN,UAAUxN,EAAED,EAAE1I,KAAK,IAAI2J,EAAEjB,EAAEwrB,cAA+C,OAAjCxqB,EAAE2mB,IAAI3nB,EAAEgB,EAAE4mB,IAAI3mB,EAAElB,EAAE,KAAY,EAAPC,EAAEorB,MAAenrB,GAAG,IAAK,SAASukB,GAAE,SAASxjB,GAAGwjB,GAAE,QAAQxjB,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQwjB,GAAE,OAAOxjB,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI5N,EAAE,EAAEA,EAAE6wB,GAAGj/B,OAAOoO,IAAIoxB,GAAEP,GAAG7wB,GAAG4N,GAAG,MAAM,IAAK,SAASwjB,GAAE,QAAQxjB,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOwjB,GAAE,QACnhBxjB,GAAGwjB,GAAE,OAAOxjB,GAAG,MAAM,IAAK,UAAUwjB,GAAE,SAASxjB,GAAG,MAAM,IAAK,QAAQsF,EAAGtF,EAAEC,GAAGujB,GAAE,UAAUxjB,GAAG,MAAM,IAAK,SAASA,EAAEoF,cAAc,CAAC42B,cAAc/7B,EAAEg8B,UAAUzY,GAAE,UAAUxjB,GAAG,MAAM,IAAK,WAAWsG,GAAGtG,EAAEC,GAAGujB,GAAE,UAAUxjB,GAAkB,IAAI,IAAIE,KAAvByL,GAAG1M,EAAEgB,GAAG7N,EAAE,KAAkB6N,EAAE,GAAGA,EAAEtc,eAAeuc,GAAG,CAAC,IAAIqD,EAAEtD,EAAEC,GAAG,aAAaA,EAAE,kBAAkBqD,EAAEvD,EAAEyG,cAAclD,KAAI,IAAKtD,EAAEi8B,0BAA0B1W,GAAGxlB,EAAEyG,YAAYlD,EAAExE,GAAG3M,EAAE,CAAC,WAAWmR,IAAI,kBAAkBA,GAAGvD,EAAEyG,cAAc,GAAGlD,KAAI,IAAKtD,EAAEi8B,0BAA0B1W,GAAGxlB,EAAEyG,YAC1elD,EAAExE,GAAG3M,EAAE,CAAC,WAAW,GAAGmR,IAAInE,EAAGzb,eAAeuc,IAAI,MAAMqD,GAAG,aAAarD,GAAGsjB,GAAE,SAASxjB,EAAE,CAAC,OAAOf,GAAG,IAAK,QAAQoF,EAAGrE,GAAG4F,EAAG5F,EAAEC,GAAE,GAAI,MAAM,IAAK,WAAWoE,EAAGrE,GAAGwG,GAAGxG,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBC,EAAEk8B,UAAUn8B,EAAEo8B,QAAQ3W,IAAIzlB,EAAE5N,EAAE4M,EAAEwtB,YAAYxsB,EAAE,OAAOA,IAAIhB,EAAEkP,OAAO,EAAE,KAAK,CAAChO,EAAE,IAAI9N,EAAEiF,SAASjF,EAAEA,EAAEyT,cAAc,iCAAiC9G,IAAIA,EAAE2H,GAAGzH,IAAI,iCAAiCF,EAAE,WAAWE,IAAGF,EAAEmB,EAAER,cAAc,QAASqH,UAAU,qBAAuBhI,EAAEA,EAAEkI,YAAYlI,EAAEiI,aAC/f,kBAAkBhH,EAAE6L,GAAG9M,EAAEmB,EAAER,cAAcT,EAAE,CAAC4M,GAAG7L,EAAE6L,MAAM9M,EAAEmB,EAAER,cAAcT,GAAG,WAAWA,IAAIiB,EAAEnB,EAAEiB,EAAEi8B,SAAS/7B,EAAE+7B,UAAS,EAAGj8B,EAAEjY,OAAOmY,EAAEnY,KAAKiY,EAAEjY,QAAQgX,EAAEmB,EAAEm8B,gBAAgBt9B,EAAEE,GAAGF,EAAE4nB,IAAI3nB,EAAED,EAAE6nB,IAAI5mB,EAAEi6B,GAAGl7B,EAAEC,GAAE,GAAG,GAAIA,EAAEyN,UAAU1N,EAAEA,EAAE,CAAW,OAAVmB,EAAE0L,GAAG3M,EAAEe,GAAUf,GAAG,IAAK,SAASukB,GAAE,SAASzkB,GAAGykB,GAAE,QAAQzkB,GAAG3M,EAAE4N,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQwjB,GAAE,OAAOzkB,GAAG3M,EAAE4N,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI5N,EAAE,EAAEA,EAAE6wB,GAAGj/B,OAAOoO,IAAIoxB,GAAEP,GAAG7wB,GAAG2M,GAAG3M,EAAE4N,EAAE,MAAM,IAAK,SAASwjB,GAAE,QAAQzkB,GAAG3M,EAAE4N,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOwjB,GAAE,QAClfzkB,GAAGykB,GAAE,OAAOzkB,GAAG3M,EAAE4N,EAAE,MAAM,IAAK,UAAUwjB,GAAE,SAASzkB,GAAG3M,EAAE4N,EAAE,MAAM,IAAK,QAAQsF,EAAGvG,EAAEiB,GAAG5N,EAAE8S,EAAGnG,EAAEiB,GAAGwjB,GAAE,UAAUzkB,GAAG,MAAM,IAAK,SAAiL,QAAQ3M,EAAE4N,QAAxK,IAAK,SAASjB,EAAEqG,cAAc,CAAC42B,cAAch8B,EAAEi8B,UAAU7pC,EAAEyQ,EAAE,CAAC,EAAE7C,EAAE,CAACzX,WAAM,IAASi7B,GAAE,UAAUzkB,GAAG,MAAM,IAAK,WAAWuH,GAAGvH,EAAEiB,GAAG5N,EAAE+T,GAAGpH,EAAEiB,GAAGwjB,GAAE,UAAUzkB,GAAiC,IAAIkB,KAAhB0L,GAAG1M,EAAE7M,GAAGmR,EAAEnR,EAAa,GAAGmR,EAAE5f,eAAesc,GAAG,CAAC,IAAIuD,EAAED,EAAEtD,GAAG,UAAUA,EAAEqK,GAAGvL,EAAEyE,GAAG,4BAA4BvD,EAAuB,OAApBuD,EAAEA,EAAEA,EAAEqiB,YAAO,IAAgBhf,GAAG9H,EAAEyE,GAAI,aAAavD,EAAE,kBAAkBuD,GAAG,aAC7evE,GAAG,KAAKuE,IAAI6D,GAAGtI,EAAEyE,GAAG,kBAAkBA,GAAG6D,GAAGtI,EAAE,GAAGyE,GAAG,mCAAmCvD,GAAG,6BAA6BA,GAAG,cAAcA,IAAIb,EAAGzb,eAAesc,GAAG,MAAMuD,GAAG,aAAavD,GAAGujB,GAAE,SAASzkB,GAAG,MAAMyE,GAAGxC,EAAGjC,EAAEkB,EAAEuD,EAAEtD,GAAG,CAAC,OAAOjB,GAAG,IAAK,QAAQoF,EAAGtF,GAAG6G,EAAG7G,EAAEiB,GAAE,GAAI,MAAM,IAAK,WAAWqE,EAAGtF,GAAGyH,GAAGzH,GAAG,MAAM,IAAK,SAAS,MAAMiB,EAAEzX,OAAOwW,EAAEuC,aAAa,QAAQ,GAAG4C,EAAGlE,EAAEzX,QAAQ,MAAM,IAAK,SAASwW,EAAEk9B,WAAWj8B,EAAEi8B,SAAmB,OAAVh8B,EAAED,EAAEzX,OAAcwd,GAAGhH,IAAIiB,EAAEi8B,SAASh8B,GAAE,GAAI,MAAMD,EAAEnF,cAAckL,GAAGhH,IAAIiB,EAAEi8B,SAASj8B,EAAEnF,cAClf,GAAI,MAAM,QAAQ,oBAAoBzI,EAAE+pC,UAAUp9B,EAAEq9B,QAAQ3W,IAAI,OAAOxmB,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWe,IAAIA,EAAEs8B,UAAU,MAAMv9B,EAAE,IAAK,MAAMiB,GAAE,EAAG,MAAMjB,EAAE,QAAQiB,GAAE,EAAG,CAACA,IAAIhB,EAAEkP,OAAO,EAAE,CAAC,OAAOlP,EAAE6wB,MAAM7wB,EAAEkP,OAAO,IAAIlP,EAAEkP,OAAO,QAAQ,CAAM,OAAL2tB,GAAE78B,GAAU,KAAK,KAAK,EAAE,GAAGD,GAAG,MAAMC,EAAEyN,UAAU2tB,GAAGr7B,EAAEC,EAAED,EAAEyrB,cAAcxqB,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOhB,EAAEyN,UAAU,MAAMhP,MAAMqB,EAAE,MAAsC,GAAhCG,EAAE+xB,GAAGD,GAAGriB,SAASsiB,GAAGH,GAAGniB,SAAY6b,GAAGvrB,GAAG,CAAyC,GAAxCgB,EAAEhB,EAAEyN,UAAUxN,EAAED,EAAEwrB,cAAcxqB,EAAE2mB,IAAI3nB,GAAKiB,EAAED,EAAEuH,YAAYtI,IAC/e,QADofF,EACvfwqB,IAAY,OAAOxqB,EAAE7L,KAAK,KAAK,EAAEsyB,GAAGxlB,EAAEuH,UAAUtI,EAAE,KAAY,EAAPF,EAAEqrB,OAAS,MAAM,KAAK,GAAE,IAAKrrB,EAAEyrB,cAAc0R,0BAA0B1W,GAAGxlB,EAAEuH,UAAUtI,EAAE,KAAY,EAAPF,EAAEqrB,OAASnqB,IAAIjB,EAAEkP,OAAO,EAAE,MAAMlO,GAAG,IAAIf,EAAE5H,SAAS4H,EAAEA,EAAE4G,eAAe02B,eAAev8B,IAAK2mB,IAAI3nB,EAAEA,EAAEyN,UAAUzM,CAAC,CAAM,OAAL67B,GAAE78B,GAAU,KAAK,KAAK,GAA0B,GAAvBkoB,GAAEoK,IAAGtxB,EAAEhB,EAAEoP,cAAiB,OAAOrP,GAAG,OAAOA,EAAEqP,eAAe,OAAOrP,EAAEqP,cAAcC,WAAW,CAAC,GAAGob,IAAG,OAAOD,IAAI,KAAY,EAAPxqB,EAAEorB,OAAS,KAAa,IAARprB,EAAEkP,OAAWuc,KAAKC,KAAK1rB,EAAEkP,OAAO,MAAMjO,GAAE,OAAQ,GAAGA,EAAEsqB,GAAGvrB,GAAG,OAAOgB,GAAG,OAAOA,EAAEqO,WAAW,CAAC,GAAG,OAC5ftP,EAAE,CAAC,IAAIkB,EAAE,MAAMxC,MAAMqB,EAAE,MAAqD,KAA7BmB,EAAE,QAApBA,EAAEjB,EAAEoP,eAAyBnO,EAAEoO,WAAW,MAAW,MAAM5Q,MAAMqB,EAAE,MAAMmB,EAAE0mB,IAAI3nB,CAAC,MAAM0rB,KAAK,KAAa,IAAR1rB,EAAEkP,SAAalP,EAAEoP,cAAc,MAAMpP,EAAEkP,OAAO,EAAE2tB,GAAE78B,GAAGiB,GAAE,CAAE,MAAM,OAAOypB,KAAKqS,GAAGrS,IAAIA,GAAG,MAAMzpB,GAAE,EAAG,IAAIA,EAAE,OAAe,MAARjB,EAAEkP,MAAYlP,EAAE,IAAI,CAAC,OAAG,KAAa,IAARA,EAAEkP,QAAkBlP,EAAE2sB,MAAM1sB,EAAED,KAAEgB,EAAE,OAAOA,MAAO,OAAOjB,GAAG,OAAOA,EAAEqP,gBAAgBpO,IAAIhB,EAAEwP,MAAMN,OAAO,KAAK,KAAY,EAAPlP,EAAEorB,QAAU,OAAOrrB,GAAG,KAAe,EAAVuyB,GAAE5iB,SAAW,IAAI8tB,KAAIA,GAAE,GAAG1B,OAAO,OAAO97B,EAAEwtB,cAAcxtB,EAAEkP,OAAO,GAAG2tB,GAAE78B,GAAU,MAAK,KAAK,EAAE,OAAOmyB,KACrf+I,GAAGn7B,EAAEC,GAAG,OAAOD,GAAG+kB,GAAG9kB,EAAEyN,UAAU+G,eAAeqoB,GAAE78B,GAAG,KAAK,KAAK,GAAG,OAAOosB,GAAGpsB,EAAE1I,KAAKwN,UAAU+3B,GAAE78B,GAAG,KAA+C,KAAK,GAA0B,GAAvBkoB,GAAEoK,IAAwB,QAArBrxB,EAAEjB,EAAEoP,eAA0B,OAAOytB,GAAE78B,GAAG,KAAuC,GAAlCgB,EAAE,KAAa,IAARhB,EAAEkP,OAA4B,QAAjBhO,EAAED,EAAEq7B,WAAsB,GAAGt7B,EAAE47B,GAAG37B,GAAE,OAAQ,CAAC,GAAG,IAAIu8B,IAAG,OAAOz9B,GAAG,KAAa,IAARA,EAAEmP,OAAW,IAAInP,EAAEC,EAAEwP,MAAM,OAAOzP,GAAG,CAAS,GAAG,QAAXmB,EAAEqxB,GAAGxyB,IAAe,CAAmG,IAAlGC,EAAEkP,OAAO,IAAI0tB,GAAG37B,GAAE,GAAoB,QAAhBD,EAAEE,EAAEssB,eAAuBxtB,EAAEwtB,YAAYxsB,EAAEhB,EAAEkP,OAAO,GAAGlP,EAAEk8B,aAAa,EAAEl7B,EAAEf,EAAMA,EAAED,EAAEwP,MAAM,OAAOvP,GAAOF,EAAEiB,GAANC,EAAEhB,GAAQiP,OAAO,SAC/d,QAAdhO,EAAED,EAAE+N,YAAoB/N,EAAEsrB,WAAW,EAAEtrB,EAAE0rB,MAAM5sB,EAAEkB,EAAEuO,MAAM,KAAKvO,EAAEi7B,aAAa,EAAEj7B,EAAEuqB,cAAc,KAAKvqB,EAAEmO,cAAc,KAAKnO,EAAEusB,YAAY,KAAKvsB,EAAEwrB,aAAa,KAAKxrB,EAAEwM,UAAU,OAAOxM,EAAEsrB,WAAWrrB,EAAEqrB,WAAWtrB,EAAE0rB,MAAMzrB,EAAEyrB,MAAM1rB,EAAEuO,MAAMtO,EAAEsO,MAAMvO,EAAEi7B,aAAa,EAAEj7B,EAAE4pB,UAAU,KAAK5pB,EAAEuqB,cAActqB,EAAEsqB,cAAcvqB,EAAEmO,cAAclO,EAAEkO,cAAcnO,EAAEusB,YAAYtsB,EAAEssB,YAAYvsB,EAAE3J,KAAK4J,EAAE5J,KAAKyI,EAAEmB,EAAEurB,aAAaxrB,EAAEwrB,aAAa,OAAO1sB,EAAE,KAAK,CAAC4sB,MAAM5sB,EAAE4sB,MAAMD,aAAa3sB,EAAE2sB,eAAezsB,EAAEA,EAAEwP,QAA2B,OAAnB0Y,GAAEmK,GAAY,EAAVA,GAAE5iB,QAAU,GAAU1P,EAAEwP,KAAK,CAACzP,EAClgBA,EAAE0P,OAAO,CAAC,OAAOxO,EAAEw7B,MAAMpsB,KAAIotB,KAAKz9B,EAAEkP,OAAO,IAAIlO,GAAE,EAAG47B,GAAG37B,GAAE,GAAIjB,EAAE2sB,MAAM,QAAQ,KAAK,CAAC,IAAI3rB,EAAE,GAAW,QAARjB,EAAEwyB,GAAGrxB,KAAa,GAAGlB,EAAEkP,OAAO,IAAIlO,GAAE,EAAmB,QAAhBf,EAAEF,EAAEytB,eAAuBxtB,EAAEwtB,YAAYvtB,EAAED,EAAEkP,OAAO,GAAG0tB,GAAG37B,GAAE,GAAI,OAAOA,EAAEw7B,MAAM,WAAWx7B,EAAEy7B,WAAWx7B,EAAE8N,YAAYyb,GAAE,OAAOoS,GAAE78B,GAAG,UAAU,EAAEqQ,KAAIpP,EAAEs7B,mBAAmBkB,IAAI,aAAax9B,IAAID,EAAEkP,OAAO,IAAIlO,GAAE,EAAG47B,GAAG37B,GAAE,GAAIjB,EAAE2sB,MAAM,SAAS1rB,EAAEo7B,aAAan7B,EAAEuO,QAAQzP,EAAEwP,MAAMxP,EAAEwP,MAAMtO,IAAa,QAATjB,EAAEgB,EAAEu7B,MAAcv8B,EAAEwP,QAAQvO,EAAElB,EAAEwP,MAAMtO,EAAED,EAAEu7B,KAAKt7B,EAAE,CAAC,OAAG,OAAOD,EAAEw7B,MAAYz8B,EAAEiB,EAAEw7B,KAAKx7B,EAAEq7B,UAC9et8B,EAAEiB,EAAEw7B,KAAKz8B,EAAEyP,QAAQxO,EAAEs7B,mBAAmBlsB,KAAIrQ,EAAEyP,QAAQ,KAAKxP,EAAEqyB,GAAE5iB,QAAQyY,GAAEmK,GAAEtxB,EAAI,EAAFf,EAAI,EAAI,EAAFA,GAAKD,IAAE68B,GAAE78B,GAAU,MAAK,KAAK,GAAG,KAAK,GAAG,OAAO09B,KAAK18B,EAAE,OAAOhB,EAAEoP,cAAc,OAAOrP,GAAG,OAAOA,EAAEqP,gBAAgBpO,IAAIhB,EAAEkP,OAAO,MAAMlO,GAAG,KAAY,EAAPhB,EAAEorB,MAAQ,KAAQ,WAAHkP,MAAiBuC,GAAE78B,GAAkB,EAAfA,EAAEk8B,eAAiBl8B,EAAEkP,OAAO,OAAO2tB,GAAE78B,GAAG,KAAK,KAAK,GAAe,KAAK,GAAG,OAAO,KAAK,MAAMvB,MAAMqB,EAAE,IAAIE,EAAE9L,KAAM,CAClX,SAASypC,GAAG59B,EAAEC,GAAS,OAANsqB,GAAGtqB,GAAUA,EAAE9L,KAAK,KAAK,EAAE,OAAO00B,GAAG5oB,EAAE1I,OAAOwxB,KAAiB,OAAZ/oB,EAAEC,EAAEkP,QAAelP,EAAEkP,OAAS,MAAHnP,EAAS,IAAIC,GAAG,KAAK,KAAK,EAAE,OAAOmyB,KAAKjK,GAAEI,IAAIJ,GAAEG,IAAGqK,KAAe,KAAO,OAAjB3yB,EAAEC,EAAEkP,SAAqB,KAAO,IAAFnP,IAAQC,EAAEkP,OAAS,MAAHnP,EAAS,IAAIC,GAAG,KAAK,KAAK,EAAE,OAAOqyB,GAAGryB,GAAG,KAAK,KAAK,GAA0B,GAAvBkoB,GAAEoK,IAAwB,QAArBvyB,EAAEC,EAAEoP,gBAA2B,OAAOrP,EAAEsP,WAAW,CAAC,GAAG,OAAOrP,EAAEgP,UAAU,MAAMvQ,MAAMqB,EAAE,MAAM4rB,IAAI,CAAW,OAAS,OAAnB3rB,EAAEC,EAAEkP,QAAsBlP,EAAEkP,OAAS,MAAHnP,EAAS,IAAIC,GAAG,KAAK,KAAK,GAAG,OAAOkoB,GAAEoK,IAAG,KAAK,KAAK,EAAE,OAAOH,KAAK,KAAK,KAAK,GAAG,OAAO/F,GAAGpsB,EAAE1I,KAAKwN,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO44B,KAC1gB,KAAyB,QAAQ,OAAO,KAAK,CArB7CzC,GAAG,SAASl7B,EAAEC,GAAG,IAAI,IAAIC,EAAED,EAAEwP,MAAM,OAAOvP,GAAG,CAAC,GAAG,IAAIA,EAAE/L,KAAK,IAAI+L,EAAE/L,IAAI6L,EAAEmI,YAAYjI,EAAEwN,gBAAgB,GAAG,IAAIxN,EAAE/L,KAAK,OAAO+L,EAAEuP,MAAM,CAACvP,EAAEuP,MAAMP,OAAOhP,EAAEA,EAAEA,EAAEuP,MAAM,QAAQ,CAAC,GAAGvP,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAEwP,SAAS,CAAC,GAAG,OAAOxP,EAAEgP,QAAQhP,EAAEgP,SAASjP,EAAE,OAAOC,EAAEA,EAAEgP,MAAM,CAAChP,EAAEwP,QAAQR,OAAOhP,EAAEgP,OAAOhP,EAAEA,EAAEwP,OAAO,CAAC,EAAEyrB,GAAG,WAAW,EACxTC,GAAG,SAASp7B,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAE2M,EAAEyrB,cAAc,GAAGp4B,IAAI4N,EAAE,CAACjB,EAAEC,EAAEyN,UAAUukB,GAAGH,GAAGniB,SAAS,IAA4RxO,EAAxRD,EAAE,KAAK,OAAOhB,GAAG,IAAK,QAAQ7M,EAAE8S,EAAGnG,EAAE3M,GAAG4N,EAAEkF,EAAGnG,EAAEiB,GAAGC,EAAE,GAAG,MAAM,IAAK,SAAS7N,EAAEyQ,EAAE,CAAC,EAAEzQ,EAAE,CAAC7J,WAAM,IAASyX,EAAE6C,EAAE,CAAC,EAAE7C,EAAE,CAACzX,WAAM,IAAS0X,EAAE,GAAG,MAAM,IAAK,WAAW7N,EAAE+T,GAAGpH,EAAE3M,GAAG4N,EAAEmG,GAAGpH,EAAEiB,GAAGC,EAAE,GAAG,MAAM,QAAQ,oBAAoB7N,EAAE+pC,SAAS,oBAAoBn8B,EAAEm8B,UAAUp9B,EAAEq9B,QAAQ3W,IAAyB,IAAIniB,KAAzBqI,GAAG1M,EAAEe,GAASf,EAAE,KAAc7M,EAAE,IAAI4N,EAAErc,eAAe2f,IAAIlR,EAAEzO,eAAe2f,IAAI,MAAMlR,EAAEkR,GAAG,GAAG,UAAUA,EAAE,CAAC,IAAIC,EAAEnR,EAAEkR,GAAG,IAAIpD,KAAKqD,EAAEA,EAAE5f,eAAeuc,KACjfjB,IAAIA,EAAE,CAAC,GAAGA,EAAEiB,GAAG,GAAG,KAAK,4BAA4BoD,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIlE,EAAGzb,eAAe2f,GAAGrD,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAI9b,KAAKmf,EAAE,OAAO,IAAIA,KAAKtD,EAAE,CAAC,IAAIwD,EAAExD,EAAEsD,GAAyB,GAAtBC,EAAE,MAAMnR,EAAEA,EAAEkR,QAAG,EAAUtD,EAAErc,eAAe2f,IAAIE,IAAID,IAAI,MAAMC,GAAG,MAAMD,GAAG,GAAG,UAAUD,EAAE,GAAGC,EAAE,CAAC,IAAIrD,KAAKqD,GAAGA,EAAE5f,eAAeuc,IAAIsD,GAAGA,EAAE7f,eAAeuc,KAAKjB,IAAIA,EAAE,CAAC,GAAGA,EAAEiB,GAAG,IAAI,IAAIA,KAAKsD,EAAEA,EAAE7f,eAAeuc,IAAIqD,EAAErD,KAAKsD,EAAEtD,KAAKjB,IAAIA,EAAE,CAAC,GAAGA,EAAEiB,GAAGsD,EAAEtD,GAAG,MAAMjB,IAAIgB,IAAIA,EAAE,IAAIA,EAAE9b,KAAKmf,EACpfrE,IAAIA,EAAEuE,MAAM,4BAA4BF,GAAGE,EAAEA,EAAEA,EAAEqiB,YAAO,EAAOtiB,EAAEA,EAAEA,EAAEsiB,YAAO,EAAO,MAAMriB,GAAGD,IAAIC,IAAIvD,EAAEA,GAAG,IAAI9b,KAAKmf,EAAEE,IAAI,aAAaF,EAAE,kBAAkBE,GAAG,kBAAkBA,IAAIvD,EAAEA,GAAG,IAAI9b,KAAKmf,EAAE,GAAGE,GAAG,mCAAmCF,GAAG,6BAA6BA,IAAIlE,EAAGzb,eAAe2f,IAAI,MAAME,GAAG,aAAaF,GAAGkgB,GAAE,SAASzkB,GAAGkB,GAAGsD,IAAIC,IAAIvD,EAAE,MAAMA,EAAEA,GAAG,IAAI9b,KAAKmf,EAAEE,GAAG,CAACvE,IAAIgB,EAAEA,GAAG,IAAI9b,KAAK,QAAQ8a,GAAG,IAAIqE,EAAErD,GAAKjB,EAAEwtB,YAAYlpB,KAAEtE,EAAEkP,OAAO,EAAC,CAAC,EAAEksB,GAAG,SAASr7B,EAAEC,EAAEC,EAAEe,GAAGf,IAAIe,IAAIhB,EAAEkP,OAAO,EAAE,EAkBlb,IAAI0uB,IAAG,EAAGC,IAAE,EAAGC,GAAG,oBAAoBC,QAAQA,QAAQ91C,IAAI+1C,GAAE,KAAK,SAASC,GAAGl+B,EAAEC,GAAG,IAAIC,EAAEF,EAAE8wB,IAAI,GAAG,OAAO5wB,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAMe,GAAGk9B,GAAEn+B,EAAEC,EAAEgB,EAAE,MAAMf,EAAEyP,QAAQ,IAAI,CAAC,SAASyuB,GAAGp+B,EAAEC,EAAEC,GAAG,IAAIA,GAAG,CAAC,MAAMe,GAAGk9B,GAAEn+B,EAAEC,EAAEgB,EAAE,CAAC,CAAC,IAAIo9B,IAAG,EAIxR,SAASC,GAAGt+B,EAAEC,EAAEC,GAAG,IAAIe,EAAEhB,EAAEwtB,YAAyC,GAAG,QAAhCxsB,EAAE,OAAOA,EAAEA,EAAEq0B,WAAW,MAAiB,CAAC,IAAIjiC,EAAE4N,EAAEA,EAAEgsB,KAAK,EAAE,CAAC,IAAI55B,EAAEc,IAAI6L,KAAKA,EAAE,CAAC,IAAIkB,EAAE7N,EAAEwiC,QAAQxiC,EAAEwiC,aAAQ,OAAO,IAAS30B,GAAGk9B,GAAGn+B,EAAEC,EAAEgB,EAAE,CAAC7N,EAAEA,EAAE45B,IAAI,OAAO55B,IAAI4N,EAAE,CAAC,CAAC,SAASs9B,GAAGv+B,EAAEC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEwtB,aAAuBxtB,EAAEq1B,WAAW,MAAiB,CAAC,IAAIp1B,EAAED,EAAEA,EAAEgtB,KAAK,EAAE,CAAC,IAAI/sB,EAAE/L,IAAI6L,KAAKA,EAAE,CAAC,IAAIiB,EAAEf,EAAE01B,OAAO11B,EAAE21B,QAAQ50B,GAAG,CAACf,EAAEA,EAAE+sB,IAAI,OAAO/sB,IAAID,EAAE,CAAC,CAAC,SAASu+B,GAAGx+B,GAAG,IAAIC,EAAED,EAAE8wB,IAAI,GAAG,OAAO7wB,EAAE,CAAC,IAAIC,EAAEF,EAAE0N,UAAiB1N,EAAE7L,IAA8B6L,EAAEE,EAAE,oBAAoBD,EAAEA,EAAED,GAAGC,EAAE0P,QAAQ3P,CAAC,CAAC,CAClf,SAASy+B,GAAGz+B,GAAG,IAAIC,EAAED,EAAEiP,UAAU,OAAOhP,IAAID,EAAEiP,UAAU,KAAKwvB,GAAGx+B,IAAID,EAAEyP,MAAM,KAAKzP,EAAE8qB,UAAU,KAAK9qB,EAAE0P,QAAQ,KAAK,IAAI1P,EAAE7L,MAAoB,QAAd8L,EAAED,EAAE0N,oBAA4BzN,EAAE2nB,WAAW3nB,EAAE4nB,WAAW5nB,EAAEykB,WAAWzkB,EAAE6nB,WAAW7nB,EAAE8nB,MAAM/nB,EAAE0N,UAAU,KAAK1N,EAAEkP,OAAO,KAAKlP,EAAE0sB,aAAa,KAAK1sB,EAAEyrB,cAAc,KAAKzrB,EAAEqP,cAAc,KAAKrP,EAAEgrB,aAAa,KAAKhrB,EAAE0N,UAAU,KAAK1N,EAAEytB,YAAY,IAAI,CAAC,SAASiR,GAAG1+B,GAAG,OAAO,IAAIA,EAAE7L,KAAK,IAAI6L,EAAE7L,KAAK,IAAI6L,EAAE7L,GAAG,CACna,SAASwqC,GAAG3+B,GAAGA,EAAE,OAAO,CAAC,KAAK,OAAOA,EAAE0P,SAAS,CAAC,GAAG,OAAO1P,EAAEkP,QAAQwvB,GAAG1+B,EAAEkP,QAAQ,OAAO,KAAKlP,EAAEA,EAAEkP,MAAM,CAA2B,IAA1BlP,EAAE0P,QAAQR,OAAOlP,EAAEkP,OAAWlP,EAAEA,EAAE0P,QAAQ,IAAI1P,EAAE7L,KAAK,IAAI6L,EAAE7L,KAAK,KAAK6L,EAAE7L,KAAK,CAAC,GAAW,EAAR6L,EAAEmP,MAAQ,SAASnP,EAAE,GAAG,OAAOA,EAAEyP,OAAO,IAAIzP,EAAE7L,IAAI,SAAS6L,EAAOA,EAAEyP,MAAMP,OAAOlP,EAAEA,EAAEA,EAAEyP,KAAK,CAAC,KAAa,EAARzP,EAAEmP,OAAS,OAAOnP,EAAE0N,SAAS,CAAC,CACzT,SAASkxB,GAAG5+B,EAAEC,EAAEC,GAAG,IAAIe,EAAEjB,EAAE7L,IAAI,GAAG,IAAI8M,GAAG,IAAIA,EAAEjB,EAAEA,EAAE0N,UAAUzN,EAAE,IAAIC,EAAE5H,SAAS4H,EAAEkN,WAAWyxB,aAAa7+B,EAAEC,GAAGC,EAAE2+B,aAAa7+B,EAAEC,IAAI,IAAIC,EAAE5H,UAAU2H,EAAEC,EAAEkN,YAAayxB,aAAa7+B,EAAEE,IAAKD,EAAEC,GAAIiI,YAAYnI,GAA4B,QAAxBE,EAAEA,EAAE4+B,2BAA8B,IAAS5+B,GAAG,OAAOD,EAAEo9B,UAAUp9B,EAAEo9B,QAAQ3W,UAAU,GAAG,IAAIzlB,GAAc,QAAVjB,EAAEA,EAAEyP,OAAgB,IAAImvB,GAAG5+B,EAAEC,EAAEC,GAAGF,EAAEA,EAAE0P,QAAQ,OAAO1P,GAAG4+B,GAAG5+B,EAAEC,EAAEC,GAAGF,EAAEA,EAAE0P,OAAO,CAC1X,SAASqvB,GAAG/+B,EAAEC,EAAEC,GAAG,IAAIe,EAAEjB,EAAE7L,IAAI,GAAG,IAAI8M,GAAG,IAAIA,EAAEjB,EAAEA,EAAE0N,UAAUzN,EAAEC,EAAE2+B,aAAa7+B,EAAEC,GAAGC,EAAEiI,YAAYnI,QAAQ,GAAG,IAAIiB,GAAc,QAAVjB,EAAEA,EAAEyP,OAAgB,IAAIsvB,GAAG/+B,EAAEC,EAAEC,GAAGF,EAAEA,EAAE0P,QAAQ,OAAO1P,GAAG++B,GAAG/+B,EAAEC,EAAEC,GAAGF,EAAEA,EAAE0P,OAAO,CAAC,IAAIsvB,GAAE,KAAKC,IAAG,EAAG,SAASC,GAAGl/B,EAAEC,EAAEC,GAAG,IAAIA,EAAEA,EAAEuP,MAAM,OAAOvP,GAAGi/B,GAAGn/B,EAAEC,EAAEC,GAAGA,EAAEA,EAAEwP,OAAO,CACnR,SAASyvB,GAAGn/B,EAAEC,EAAEC,GAAG,GAAGmR,IAAI,oBAAoBA,GAAG+tB,qBAAqB,IAAI/tB,GAAG+tB,qBAAqBhuB,GAAGlR,EAAE,CAAC,MAAMsE,GAAG,CAAC,OAAOtE,EAAE/L,KAAK,KAAK,EAAE2pC,IAAGI,GAAGh+B,EAAED,GAAG,KAAK,EAAE,IAAIgB,EAAE+9B,GAAE3rC,EAAE4rC,GAAGD,GAAE,KAAKE,GAAGl/B,EAAEC,EAAEC,GAAO++B,GAAG5rC,EAAE,QAAT2rC,GAAE/9B,KAAkBg+B,IAAIj/B,EAAEg/B,GAAE9+B,EAAEA,EAAEwN,UAAU,IAAI1N,EAAE1H,SAAS0H,EAAEoN,WAAWlF,YAAYhI,GAAGF,EAAEkI,YAAYhI,IAAI8+B,GAAE92B,YAAYhI,EAAEwN,YAAY,MAAM,KAAK,GAAG,OAAOsxB,KAAIC,IAAIj/B,EAAEg/B,GAAE9+B,EAAEA,EAAEwN,UAAU,IAAI1N,EAAE1H,SAASivB,GAAGvnB,EAAEoN,WAAWlN,GAAG,IAAIF,EAAE1H,UAAUivB,GAAGvnB,EAAEE,GAAG+U,GAAGjV,IAAIunB,GAAGyX,GAAE9+B,EAAEwN,YAAY,MAAM,KAAK,EAAEzM,EAAE+9B,GAAE3rC,EAAE4rC,GAAGD,GAAE9+B,EAAEwN,UAAU+G,cAAcwqB,IAAG,EAClfC,GAAGl/B,EAAEC,EAAEC,GAAG8+B,GAAE/9B,EAAEg+B,GAAG5rC,EAAE,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIyqC,KAAoB,QAAhB78B,EAAEf,EAAEutB,cAAsC,QAAfxsB,EAAEA,EAAEq0B,aAAsB,CAACjiC,EAAE4N,EAAEA,EAAEgsB,KAAK,EAAE,CAAC,IAAI/rB,EAAE7N,EAAE8N,EAAED,EAAE20B,QAAQ30B,EAAEA,EAAE/M,SAAI,IAASgN,IAAI,KAAO,EAAFD,IAAe,KAAO,EAAFA,KAAfk9B,GAAGl+B,EAAED,EAAEkB,GAAyB9N,EAAEA,EAAE45B,IAAI,OAAO55B,IAAI4N,EAAE,CAACi+B,GAAGl/B,EAAEC,EAAEC,GAAG,MAAM,KAAK,EAAE,IAAI49B,KAAII,GAAGh+B,EAAED,GAAiB,oBAAdgB,EAAEf,EAAEwN,WAAgC2xB,sBAAsB,IAAIp+B,EAAEjO,MAAMkN,EAAEurB,cAAcxqB,EAAEivB,MAAMhwB,EAAEmP,cAAcpO,EAAEo+B,sBAAsB,CAAC,MAAM76B,GAAG25B,GAAEj+B,EAAED,EAAEuE,EAAE,CAAC06B,GAAGl/B,EAAEC,EAAEC,GAAG,MAAM,KAAK,GAAGg/B,GAAGl/B,EAAEC,EAAEC,GAAG,MAAM,KAAK,GAAU,EAAPA,EAAEmrB,MAAQyS,IAAG78B,EAAE68B,KAAI,OAChf59B,EAAEmP,cAAc6vB,GAAGl/B,EAAEC,EAAEC,GAAG49B,GAAE78B,GAAGi+B,GAAGl/B,EAAEC,EAAEC,GAAG,MAAM,QAAQg/B,GAAGl/B,EAAEC,EAAEC,GAAG,CAAC,SAASo/B,GAAGt/B,GAAG,IAAIC,EAAED,EAAEytB,YAAY,GAAG,OAAOxtB,EAAE,CAACD,EAAEytB,YAAY,KAAK,IAAIvtB,EAAEF,EAAE0N,UAAU,OAAOxN,IAAIA,EAAEF,EAAE0N,UAAU,IAAIqwB,IAAI99B,EAAE/H,SAAQ,SAAS+H,GAAG,IAAIgB,EAAEs+B,GAAGva,KAAK,KAAKhlB,EAAEC,GAAGC,EAAE/Y,IAAI8Y,KAAKC,EAAE1X,IAAIyX,GAAGA,EAAEmnB,KAAKnmB,EAAEA,GAAG,GAAE,CAAC,CACzQ,SAASu+B,GAAGx/B,EAAEC,GAAG,IAAIC,EAAED,EAAE6qB,UAAU,GAAG,OAAO5qB,EAAE,IAAI,IAAIe,EAAE,EAAEA,EAAEf,EAAEjb,OAAOgc,IAAI,CAAC,IAAI5N,EAAE6M,EAAEe,GAAG,IAAI,IAAIC,EAAElB,EAAEmB,EAAElB,EAAEuE,EAAErD,EAAEnB,EAAE,KAAK,OAAOwE,GAAG,CAAC,OAAOA,EAAErQ,KAAK,KAAK,EAAE6qC,GAAEx6B,EAAEkJ,UAAUuxB,IAAG,EAAG,MAAMj/B,EAAE,KAAK,EAA4C,KAAK,EAAEg/B,GAAEx6B,EAAEkJ,UAAU+G,cAAcwqB,IAAG,EAAG,MAAMj/B,EAAEwE,EAAEA,EAAE0K,MAAM,CAAC,GAAG,OAAO8vB,GAAE,MAAMtgC,MAAMqB,EAAE,MAAMo/B,GAAGj+B,EAAEC,EAAE9N,GAAG2rC,GAAE,KAAKC,IAAG,EAAG,IAAIx6B,EAAEpR,EAAE4b,UAAU,OAAOxK,IAAIA,EAAEyK,OAAO,MAAM7b,EAAE6b,OAAO,IAAI,CAAC,MAAM3K,GAAG45B,GAAE9qC,EAAE4M,EAAEsE,EAAE,CAAC,CAAC,GAAkB,MAAftE,EAAEk8B,aAAmB,IAAIl8B,EAAEA,EAAEwP,MAAM,OAAOxP,GAAGw/B,GAAGx/B,EAAED,GAAGC,EAAEA,EAAEyP,OAAO,CACje,SAAS+vB,GAAGz/B,EAAEC,GAAG,IAAIC,EAAEF,EAAEiP,UAAUhO,EAAEjB,EAAEmP,MAAM,OAAOnP,EAAE7L,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAiB,GAAdqrC,GAAGv/B,EAAED,GAAG0/B,GAAG1/B,GAAQ,EAAFiB,EAAI,CAAC,IAAIq9B,GAAG,EAAEt+B,EAAEA,EAAEkP,QAAQqvB,GAAG,EAAEv+B,EAAE,CAAC,MAAMmlB,GAAGgZ,GAAEn+B,EAAEA,EAAEkP,OAAOiW,EAAE,CAAC,IAAImZ,GAAG,EAAEt+B,EAAEA,EAAEkP,OAAO,CAAC,MAAMiW,GAAGgZ,GAAEn+B,EAAEA,EAAEkP,OAAOiW,EAAE,CAAC,CAAC,MAAM,KAAK,EAAEqa,GAAGv/B,EAAED,GAAG0/B,GAAG1/B,GAAK,IAAFiB,GAAO,OAAOf,GAAGg+B,GAAGh+B,EAAEA,EAAEgP,QAAQ,MAAM,KAAK,EAAgD,GAA9CswB,GAAGv/B,EAAED,GAAG0/B,GAAG1/B,GAAK,IAAFiB,GAAO,OAAOf,GAAGg+B,GAAGh+B,EAAEA,EAAEgP,QAAmB,GAARlP,EAAEmP,MAAS,CAAC,IAAI9b,EAAE2M,EAAE0N,UAAU,IAAIpF,GAAGjV,EAAE,GAAG,CAAC,MAAM8xB,GAAGgZ,GAAEn+B,EAAEA,EAAEkP,OAAOiW,EAAE,CAAC,CAAC,GAAK,EAAFlkB,GAAoB,OAAd5N,EAAE2M,EAAE0N,WAAmB,CAAC,IAAIxM,EAAElB,EAAEyrB,cAActqB,EAAE,OAAOjB,EAAEA,EAAEurB,cAAcvqB,EAAEsD,EAAExE,EAAEzI,KAAKkN,EAAEzE,EAAEytB,YACje,GAAnBztB,EAAEytB,YAAY,KAAQ,OAAOhpB,EAAE,IAAI,UAAUD,GAAG,UAAUtD,EAAE3J,MAAM,MAAM2J,EAAE3M,MAAMmS,EAAGrT,EAAE6N,GAAG2L,GAAGrI,EAAErD,GAAG,IAAIoD,EAAEsI,GAAGrI,EAAEtD,GAAG,IAAIC,EAAE,EAAEA,EAAEsD,EAAExf,OAAOkc,GAAG,EAAE,CAAC,IAAIqN,EAAE/J,EAAEtD,GAAGwtB,EAAElqB,EAAEtD,EAAE,GAAG,UAAUqN,EAAEjD,GAAGlY,EAAEs7B,GAAG,4BAA4BngB,EAAE1G,GAAGzU,EAAEs7B,GAAG,aAAangB,EAAElG,GAAGjV,EAAEs7B,GAAG1sB,EAAG5O,EAAEmb,EAAEmgB,EAAEpqB,EAAE,CAAC,OAAOC,GAAG,IAAK,QAAQmC,EAAGtT,EAAE6N,GAAG,MAAM,IAAK,WAAWsG,GAAGnU,EAAE6N,GAAG,MAAM,IAAK,SAAS,IAAI0tB,EAAEv7B,EAAEgT,cAAc42B,YAAY5pC,EAAEgT,cAAc42B,cAAc/7B,EAAEg8B,SAAS,IAAIrO,EAAE3tB,EAAE1X,MAAM,MAAMqlC,EAAE7nB,GAAG3T,IAAI6N,EAAEg8B,SAASrO,GAAE,GAAID,MAAM1tB,EAAEg8B,WAAW,MAAMh8B,EAAEpF,aAAakL,GAAG3T,IAAI6N,EAAEg8B,SACnfh8B,EAAEpF,cAAa,GAAIkL,GAAG3T,IAAI6N,EAAEg8B,SAASh8B,EAAEg8B,SAAS,GAAG,IAAG,IAAK7pC,EAAEw0B,IAAI3mB,CAAC,CAAC,MAAMikB,GAAGgZ,GAAEn+B,EAAEA,EAAEkP,OAAOiW,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdqa,GAAGv/B,EAAED,GAAG0/B,GAAG1/B,GAAQ,EAAFiB,EAAI,CAAC,GAAG,OAAOjB,EAAE0N,UAAU,MAAMhP,MAAMqB,EAAE,MAAM1M,EAAE2M,EAAE0N,UAAUxM,EAAElB,EAAEyrB,cAAc,IAAIp4B,EAAEmV,UAAUtH,CAAC,CAAC,MAAMikB,GAAGgZ,GAAEn+B,EAAEA,EAAEkP,OAAOiW,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdqa,GAAGv/B,EAAED,GAAG0/B,GAAG1/B,GAAQ,EAAFiB,GAAK,OAAOf,GAAGA,EAAEmP,cAAcmF,aAAa,IAAIS,GAAGhV,EAAEwU,cAAc,CAAC,MAAM0Q,GAAGgZ,GAAEn+B,EAAEA,EAAEkP,OAAOiW,EAAE,CAAC,MAAM,KAAK,EAG4G,QAAQqa,GAAGv/B,EACnfD,GAAG0/B,GAAG1/B,SAJ4Y,KAAK,GAAGw/B,GAAGv/B,EAAED,GAAG0/B,GAAG1/B,GAAqB,MAAlB3M,EAAE2M,EAAEyP,OAAQN,QAAajO,EAAE,OAAO7N,EAAEgc,cAAchc,EAAEqa,UAAUiyB,SAASz+B,GAAGA,GAClf,OAAO7N,EAAE4b,WAAW,OAAO5b,EAAE4b,UAAUI,gBAAgBuwB,GAAGtvB,OAAQ,EAAFrP,GAAKq+B,GAAGt/B,GAAG,MAAM,KAAK,GAAsF,GAAnFwO,EAAE,OAAOtO,GAAG,OAAOA,EAAEmP,cAAqB,EAAPrP,EAAEqrB,MAAQyS,IAAGv5B,EAAEu5B,KAAItvB,EAAEgxB,GAAGv/B,EAAED,GAAG89B,GAAEv5B,GAAGi7B,GAAGv/B,EAAED,GAAG0/B,GAAG1/B,GAAQ,KAAFiB,EAAO,CAA0B,GAAzBsD,EAAE,OAAOvE,EAAEqP,eAAkBrP,EAAE0N,UAAUiyB,SAASp7B,KAAKiK,GAAG,KAAY,EAAPxO,EAAEqrB,MAAQ,IAAI4S,GAAEj+B,EAAEwO,EAAExO,EAAEyP,MAAM,OAAOjB,GAAG,CAAC,IAAImgB,EAAEsP,GAAEzvB,EAAE,OAAOyvB,IAAG,CAAe,OAAVpP,GAAJD,EAAEqP,IAAMxuB,MAAamf,EAAEz6B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAGmqC,GAAG,EAAE1P,EAAEA,EAAE1f,QAAQ,MAAM,KAAK,EAAEgvB,GAAGtP,EAAEA,EAAE1f,QAAQ,IAAIje,EAAE29B,EAAElhB,UAAU,GAAG,oBAAoBzc,EAAEouC,qBAAqB,CAACp+B,EAAE2tB,EAAE1uB,EAAE0uB,EAAE1f,OAAO,IAAIjP,EAAEgB,EAAEhQ,EAAE+B,MACpfiN,EAAEwrB,cAAcx6B,EAAEi/B,MAAMjwB,EAAEoP,cAAcpe,EAAEouC,sBAAsB,CAAC,MAAMla,GAAGgZ,GAAEl9B,EAAEf,EAAEilB,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE+Y,GAAGtP,EAAEA,EAAE1f,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAO0f,EAAEvf,cAAc,CAACwwB,GAAGlR,GAAG,QAAQ,EAAE,OAAOE,GAAGA,EAAE3f,OAAO0f,EAAEqP,GAAEpP,GAAGgR,GAAGlR,EAAE,CAACngB,EAAEA,EAAEkB,OAAO,CAAC1P,EAAE,IAAIwO,EAAE,KAAKmgB,EAAE3uB,IAAI,CAAC,GAAG,IAAI2uB,EAAEx6B,KAAK,GAAG,OAAOqa,EAAE,CAACA,EAAEmgB,EAAE,IAAIt7B,EAAEs7B,EAAEjhB,UAAUnJ,EAAa,oBAAVrD,EAAE7N,EAAEmY,OAA4BE,YAAYxK,EAAEwK,YAAY,UAAU,OAAO,aAAaxK,EAAE4+B,QAAQ,QAASt7B,EAAEmqB,EAAEjhB,UAAkCvM,OAAE,KAA1BsD,EAAEkqB,EAAElD,cAAcjgB,QAAoB,OAAO/G,GAAGA,EAAE7f,eAAe,WAAW6f,EAAEq7B,QAAQ,KAAKt7B,EAAEgH,MAAMs0B,QACzfx0B,GAAG,UAAUnK,GAAG,CAAC,MAAMgkB,GAAGgZ,GAAEn+B,EAAEA,EAAEkP,OAAOiW,EAAE,CAAC,OAAO,GAAG,IAAIwJ,EAAEx6B,KAAK,GAAG,OAAOqa,EAAE,IAAImgB,EAAEjhB,UAAUlF,UAAUjE,EAAE,GAAGoqB,EAAElD,aAAa,CAAC,MAAMtG,GAAGgZ,GAAEn+B,EAAEA,EAAEkP,OAAOiW,EAAE,OAAO,IAAI,KAAKwJ,EAAEx6B,KAAK,KAAKw6B,EAAEx6B,KAAK,OAAOw6B,EAAEtf,eAAesf,IAAI3uB,IAAI,OAAO2uB,EAAElf,MAAM,CAACkf,EAAElf,MAAMP,OAAOyf,EAAEA,EAAEA,EAAElf,MAAM,QAAQ,CAAC,GAAGkf,IAAI3uB,EAAE,MAAMA,EAAE,KAAK,OAAO2uB,EAAEjf,SAAS,CAAC,GAAG,OAAOif,EAAEzf,QAAQyf,EAAEzf,SAASlP,EAAE,MAAMA,EAAEwO,IAAImgB,IAAIngB,EAAE,MAAMmgB,EAAEA,EAAEzf,MAAM,CAACV,IAAImgB,IAAIngB,EAAE,MAAMmgB,EAAEjf,QAAQR,OAAOyf,EAAEzf,OAAOyf,EAAEA,EAAEjf,OAAO,CAAC,CAAC,MAAM,KAAK,GAAG8vB,GAAGv/B,EAAED,GAAG0/B,GAAG1/B,GAAK,EAAFiB,GAAKq+B,GAAGt/B,GAAS,KAAK,IACtd,CAAC,SAAS0/B,GAAG1/B,GAAG,IAAIC,EAAED,EAAEmP,MAAM,GAAK,EAAFlP,EAAI,CAAC,IAAID,EAAE,CAAC,IAAI,IAAIE,EAAEF,EAAEkP,OAAO,OAAOhP,GAAG,CAAC,GAAGw+B,GAAGx+B,GAAG,CAAC,IAAIe,EAAEf,EAAE,MAAMF,CAAC,CAACE,EAAEA,EAAEgP,MAAM,CAAC,MAAMxQ,MAAMqB,EAAE,KAAM,CAAC,OAAOkB,EAAE9M,KAAK,KAAK,EAAE,IAAId,EAAE4N,EAAEyM,UAAkB,GAARzM,EAAEkO,QAAW7G,GAAGjV,EAAE,IAAI4N,EAAEkO,QAAQ,IAAgB4vB,GAAG/+B,EAAT2+B,GAAG3+B,GAAU3M,GAAG,MAAM,KAAK,EAAE,KAAK,EAAE,IAAI8N,EAAEF,EAAEyM,UAAU+G,cAAsBmqB,GAAG5+B,EAAT2+B,GAAG3+B,GAAUmB,GAAG,MAAM,QAAQ,MAAMzC,MAAMqB,EAAE,MAAO,CAAC,MAAM0E,GAAG05B,GAAEn+B,EAAEA,EAAEkP,OAAOzK,EAAE,CAACzE,EAAEmP,QAAQ,CAAC,CAAG,KAAFlP,IAASD,EAAEmP,QAAQ,KAAK,CAAC,SAAS4wB,GAAG//B,EAAEC,EAAEC,GAAG+9B,GAAEj+B,EAAEggC,GAAGhgC,EAAEC,EAAEC,EAAE,CACvb,SAAS8/B,GAAGhgC,EAAEC,EAAEC,GAAG,IAAI,IAAIe,EAAE,KAAY,EAAPjB,EAAEqrB,MAAQ,OAAO4S,IAAG,CAAC,IAAI5qC,EAAE4qC,GAAE/8B,EAAE7N,EAAEoc,MAAM,GAAG,KAAKpc,EAAEc,KAAK8M,EAAE,CAAC,IAAIE,EAAE,OAAO9N,EAAEgc,eAAewuB,GAAG,IAAI18B,EAAE,CAAC,IAAIqD,EAAEnR,EAAE4b,UAAUxK,EAAE,OAAOD,GAAG,OAAOA,EAAE6K,eAAeyuB,GAAEt5B,EAAEq5B,GAAG,IAAIt5B,EAAEu5B,GAAO,GAALD,GAAG18B,GAAM28B,GAAEr5B,KAAKF,EAAE,IAAI05B,GAAE5qC,EAAE,OAAO4qC,IAAOx5B,GAAJtD,EAAE88B,IAAMxuB,MAAM,KAAKtO,EAAEhN,KAAK,OAAOgN,EAAEkO,cAAc4wB,GAAG5sC,GAAG,OAAOoR,GAAGA,EAAEyK,OAAO/N,EAAE88B,GAAEx5B,GAAGw7B,GAAG5sC,GAAG,KAAK,OAAO6N,GAAG+8B,GAAE/8B,EAAE8+B,GAAG9+B,EAAEjB,EAAEC,GAAGgB,EAAEA,EAAEwO,QAAQuuB,GAAE5qC,EAAEwqC,GAAGr5B,EAAEs5B,GAAEv5B,CAAC,CAAC27B,GAAGlgC,EAAM,MAAM,KAAoB,KAAf3M,EAAE8oC,eAAoB,OAAOj7B,GAAGA,EAAEgO,OAAO7b,EAAE4qC,GAAE/8B,GAAGg/B,GAAGlgC,EAAM,CAAC,CACvc,SAASkgC,GAAGlgC,GAAG,KAAK,OAAOi+B,IAAG,CAAC,IAAIh+B,EAAEg+B,GAAE,GAAG,KAAa,KAARh+B,EAAEkP,OAAY,CAAC,IAAIjP,EAAED,EAAEgP,UAAU,IAAI,GAAG,KAAa,KAARhP,EAAEkP,OAAY,OAAOlP,EAAE9L,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG2pC,IAAGS,GAAG,EAAEt+B,GAAG,MAAM,KAAK,EAAE,IAAIgB,EAAEhB,EAAEyN,UAAU,GAAW,EAARzN,EAAEkP,QAAU2uB,GAAE,GAAG,OAAO59B,EAAEe,EAAE2vB,wBAAwB,CAAC,IAAIv9B,EAAE4M,EAAEd,cAAcc,EAAE1I,KAAK2I,EAAEurB,cAAcK,GAAG7rB,EAAE1I,KAAK2I,EAAEurB,eAAexqB,EAAE45B,mBAAmBxnC,EAAE6M,EAAEmP,cAAcpO,EAAEk/B,oCAAoC,CAAC,IAAIj/B,EAAEjB,EAAEwtB,YAAY,OAAOvsB,GAAG6tB,GAAG9uB,EAAEiB,EAAED,GAAG,MAAM,KAAK,EAAE,IAAIE,EAAElB,EAAEwtB,YAAY,GAAG,OAAOtsB,EAAE,CAAQ,GAAPjB,EAAE,KAAQ,OAAOD,EAAEwP,MAAM,OAAOxP,EAAEwP,MAAMtb,KAAK,KAAK,EACvf,KAAK,EAAE+L,EAAED,EAAEwP,MAAM/B,UAAUqhB,GAAG9uB,EAAEkB,EAAEjB,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIsE,EAAEvE,EAAEyN,UAAU,GAAG,OAAOxN,GAAW,EAARD,EAAEkP,MAAQ,CAACjP,EAAEsE,EAAE,IAAIC,EAAExE,EAAEwrB,cAAc,OAAOxrB,EAAE1I,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWkN,EAAE84B,WAAWr9B,EAAEsiB,QAAQ,MAAM,IAAK,MAAM/d,EAAE27B,MAAMlgC,EAAEkgC,IAAI37B,EAAE27B,KAAK,CAAC,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAyJ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAhM,KAAK,GAAG,GAAG,OAAOngC,EAAEoP,cAAc,CAAC,IAAI9K,EAAEtE,EAAEgP,UAAU,GAAG,OAAO1K,EAAE,CAAC,IAAIiK,EAAEjK,EAAE8K,cAAc,GAAG,OAAOb,EAAE,CAAC,IAAImgB,EAAEngB,EAAEc,WAAW,OAAOqf,GAAG1Z,GAAG0Z,EAAE,CAAC,CAAC,CAAC,MAC5c,QAAQ,MAAMjwB,MAAMqB,EAAE,MAAO+9B,IAAW,IAAR79B,EAAEkP,OAAWqvB,GAAGv+B,EAAE,CAAC,MAAM2uB,GAAGuP,GAAEl+B,EAAEA,EAAEiP,OAAO0f,EAAE,CAAC,CAAC,GAAG3uB,IAAID,EAAE,CAACi+B,GAAE,KAAK,KAAK,CAAa,GAAG,QAAf/9B,EAAED,EAAEyP,SAAoB,CAACxP,EAAEgP,OAAOjP,EAAEiP,OAAO+uB,GAAE/9B,EAAE,KAAK,CAAC+9B,GAAEh+B,EAAEiP,MAAM,CAAC,CAAC,SAAS2wB,GAAG7/B,GAAG,KAAK,OAAOi+B,IAAG,CAAC,IAAIh+B,EAAEg+B,GAAE,GAAGh+B,IAAID,EAAE,CAACi+B,GAAE,KAAK,KAAK,CAAC,IAAI/9B,EAAED,EAAEyP,QAAQ,GAAG,OAAOxP,EAAE,CAACA,EAAEgP,OAAOjP,EAAEiP,OAAO+uB,GAAE/9B,EAAE,KAAK,CAAC+9B,GAAEh+B,EAAEiP,MAAM,CAAC,CACvS,SAAS+wB,GAAGjgC,GAAG,KAAK,OAAOi+B,IAAG,CAAC,IAAIh+B,EAAEg+B,GAAE,IAAI,OAAOh+B,EAAE9L,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI+L,EAAED,EAAEiP,OAAO,IAAIqvB,GAAG,EAAEt+B,EAAE,CAAC,MAAMwE,GAAG05B,GAAEl+B,EAAEC,EAAEuE,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIxD,EAAEhB,EAAEyN,UAAU,GAAG,oBAAoBzM,EAAE2vB,kBAAkB,CAAC,IAAIv9B,EAAE4M,EAAEiP,OAAO,IAAIjO,EAAE2vB,mBAAmB,CAAC,MAAMnsB,GAAG05B,GAAEl+B,EAAE5M,EAAEoR,EAAE,CAAC,CAAC,IAAIvD,EAAEjB,EAAEiP,OAAO,IAAIsvB,GAAGv+B,EAAE,CAAC,MAAMwE,GAAG05B,GAAEl+B,EAAEiB,EAAEuD,EAAE,CAAC,MAAM,KAAK,EAAE,IAAItD,EAAElB,EAAEiP,OAAO,IAAIsvB,GAAGv+B,EAAE,CAAC,MAAMwE,GAAG05B,GAAEl+B,EAAEkB,EAAEsD,EAAE,EAAE,CAAC,MAAMA,GAAG05B,GAAEl+B,EAAEA,EAAEiP,OAAOzK,EAAE,CAAC,GAAGxE,IAAID,EAAE,CAACi+B,GAAE,KAAK,KAAK,CAAC,IAAIz5B,EAAEvE,EAAEyP,QAAQ,GAAG,OAAOlL,EAAE,CAACA,EAAE0K,OAAOjP,EAAEiP,OAAO+uB,GAAEz5B,EAAE,KAAK,CAACy5B,GAAEh+B,EAAEiP,MAAM,CAAC,CAC7d,IAwBkNmxB,GAxB9MC,GAAG5vC,KAAKC,KAAK4vC,GAAG79B,EAAGowB,uBAAuB0N,GAAG99B,EAAG+2B,kBAAkBgH,GAAG/9B,EAAGyS,wBAAwBoZ,GAAE,EAAE6G,GAAE,KAAKsL,GAAE,KAAKC,GAAE,EAAEpG,GAAG,EAAED,GAAGpS,GAAG,GAAGuV,GAAE,EAAEmD,GAAG,KAAK9R,GAAG,EAAE+R,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,GAAG,KAAKpB,GAAG,EAAElC,GAAGuD,IAASC,GAAG,KAAKtI,IAAG,EAAGC,GAAG,KAAKI,GAAG,KAAKkI,IAAG,EAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAE,SAASjS,KAAI,OAAO,KAAO,EAAFjB,IAAKje,MAAK,IAAIkxB,GAAGA,GAAGA,GAAGlxB,IAAG,CAChU,SAASmf,GAAGzvB,GAAG,OAAG,KAAY,EAAPA,EAAEqrB,MAAe,EAAK,KAAO,EAAFkD,KAAM,IAAIoS,GAASA,IAAGA,GAAK,OAAO9U,GAAGvW,YAAkB,IAAImsB,KAAKA,GAAGlvB,MAAMkvB,IAAU,KAAPzhC,EAAE4S,IAAkB5S,EAAiBA,OAAE,KAAjBA,EAAES,OAAOqe,OAAmB,GAAGjJ,GAAG7V,EAAEzI,KAAc,CAAC,SAASm4B,GAAG1vB,EAAEC,EAAEC,EAAEe,GAAG,GAAG,GAAGqgC,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAK7iC,MAAMqB,EAAE,MAAM0S,GAAGzS,EAAEE,EAAEe,GAAM,KAAO,EAAFstB,KAAMvuB,IAAIo1B,KAAEp1B,IAAIo1B,KAAI,KAAO,EAAF7G,MAAOsS,IAAI3gC,GAAG,IAAIu9B,IAAGiE,GAAG1hC,EAAE2gC,KAAIgB,GAAG3hC,EAAEiB,GAAG,IAAIf,GAAG,IAAIquB,IAAG,KAAY,EAAPtuB,EAAEorB,QAAUqS,GAAGptB,KAAI,IAAIiZ,IAAIG,MAAK,CAC1Y,SAASiY,GAAG3hC,EAAEC,GAAG,IAAIC,EAAEF,EAAE4hC,cA5MzB,SAAY5hC,EAAEC,GAAG,IAAI,IAAIC,EAAEF,EAAEiS,eAAehR,EAAEjB,EAAEkS,YAAY7e,EAAE2M,EAAE6hC,gBAAgB3gC,EAAElB,EAAEgS,aAAa,EAAE9Q,GAAG,CAAC,IAAIC,EAAE,GAAGmQ,GAAGpQ,GAAGsD,EAAE,GAAGrD,EAAEsD,EAAEpR,EAAE8N,IAAO,IAAIsD,EAAM,KAAKD,EAAEtE,IAAI,KAAKsE,EAAEvD,KAAG5N,EAAE8N,GAAGkR,GAAG7N,EAAEvE,IAAQwE,GAAGxE,IAAID,EAAE8hC,cAAct9B,GAAGtD,IAAIsD,CAAC,CAAC,CA4MnLu9B,CAAG/hC,EAAEC,GAAG,IAAIgB,EAAE8Q,GAAG/R,EAAEA,IAAIo1B,GAAEuL,GAAE,GAAG,GAAG,IAAI1/B,EAAE,OAAOf,GAAG8P,GAAG9P,GAAGF,EAAE4hC,aAAa,KAAK5hC,EAAEgiC,iBAAiB,OAAO,GAAG/hC,EAAEgB,GAAGA,EAAEjB,EAAEgiC,mBAAmB/hC,EAAE,CAAgB,GAAf,MAAMC,GAAG8P,GAAG9P,GAAM,IAAID,EAAE,IAAID,EAAE7L,IA7IsJ,SAAY6L,GAAGupB,IAAG,EAAGE,GAAGzpB,EAAE,CA6I5KiiC,CAAGC,GAAGld,KAAK,KAAKhlB,IAAIypB,GAAGyY,GAAGld,KAAK,KAAKhlB,IAAIknB,IAAG,WAAW,KAAO,EAAFqH,KAAM7E,IAAI,IAAGxpB,EAAE,SAAS,CAAC,OAAO2S,GAAG5R,IAAI,KAAK,EAAEf,EAAEwQ,GAAG,MAAM,KAAK,EAAExQ,EAAE0Q,GAAG,MAAM,KAAK,GAAwC,QAAQ1Q,EAAE4Q,SAApC,KAAK,UAAU5Q,EAAEgR,GAAsBhR,EAAEiiC,GAAGjiC,EAAEkiC,GAAGpd,KAAK,KAAKhlB,GAAG,CAACA,EAAEgiC,iBAAiB/hC,EAAED,EAAE4hC,aAAa1hC,CAAC,CAAC,CAC7c,SAASkiC,GAAGpiC,EAAEC,GAAc,GAAXuhC,IAAI,EAAEC,GAAG,EAAK,KAAO,EAAFlT,IAAK,MAAM7vB,MAAMqB,EAAE,MAAM,IAAIG,EAAEF,EAAE4hC,aAAa,GAAGS,MAAMriC,EAAE4hC,eAAe1hC,EAAE,OAAO,KAAK,IAAIe,EAAE8Q,GAAG/R,EAAEA,IAAIo1B,GAAEuL,GAAE,GAAG,GAAG,IAAI1/B,EAAE,OAAO,KAAK,GAAG,KAAO,GAAFA,IAAO,KAAKA,EAAEjB,EAAE8hC,eAAe7hC,EAAEA,EAAEqiC,GAAGtiC,EAAEiB,OAAO,CAAChB,EAAEgB,EAAE,IAAI5N,EAAEk7B,GAAEA,IAAG,EAAE,IAAIrtB,EAAEqhC,KAAgD,IAAxCnN,KAAIp1B,GAAG2gC,KAAI1gC,IAAEihC,GAAG,KAAKxD,GAAGptB,KAAI,IAAIkyB,GAAGxiC,EAAEC,UAAUwiC,KAAK,KAAK,CAAC,MAAMj+B,GAAGk+B,GAAG1iC,EAAEwE,EAAE,CAAU4nB,KAAKmU,GAAG5wB,QAAQzO,EAAEqtB,GAAEl7B,EAAE,OAAOqtC,GAAEzgC,EAAE,GAAGm1B,GAAE,KAAKuL,GAAE,EAAE1gC,EAAEw9B,GAAE,CAAC,GAAG,IAAIx9B,EAAE,CAAyC,GAAxC,IAAIA,IAAY,KAAR5M,EAAEif,GAAGtS,MAAWiB,EAAE5N,EAAE4M,EAAE0iC,GAAG3iC,EAAE3M,KAAQ,IAAI4M,EAAE,MAAMC,EAAE0gC,GAAG4B,GAAGxiC,EAAE,GAAG0hC,GAAG1hC,EAAEiB,GAAG0gC,GAAG3hC,EAAEsQ,MAAKpQ,EAAE,GAAG,IAAID,EAAEyhC,GAAG1hC,EAAEiB,OAChf,CAAuB,GAAtB5N,EAAE2M,EAAE2P,QAAQV,UAAa,KAAO,GAAFhO,KAGnC,SAAYjB,GAAG,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAW,MAARC,EAAEkP,MAAY,CAAC,IAAIjP,EAAED,EAAEwtB,YAAY,GAAG,OAAOvtB,GAAe,QAAXA,EAAEA,EAAEq1B,QAAiB,IAAI,IAAIt0B,EAAE,EAAEA,EAAEf,EAAEjb,OAAOgc,IAAI,CAAC,IAAI5N,EAAE6M,EAAEe,GAAGC,EAAE7N,EAAE4hC,YAAY5hC,EAAEA,EAAE7J,MAAM,IAAI,IAAI42B,GAAGlf,IAAI7N,GAAG,OAAM,CAAE,CAAC,MAAM8N,GAAG,OAAM,CAAE,CAAC,CAAC,CAAW,GAAVjB,EAAED,EAAEwP,MAAwB,MAAfxP,EAAEk8B,cAAoB,OAAOj8B,EAAEA,EAAEgP,OAAOjP,EAAEA,EAAEC,MAAM,CAAC,GAAGD,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAEyP,SAAS,CAAC,GAAG,OAAOzP,EAAEiP,QAAQjP,EAAEiP,SAASlP,EAAE,OAAM,EAAGC,EAAEA,EAAEiP,MAAM,CAACjP,EAAEyP,QAAQR,OAAOjP,EAAEiP,OAAOjP,EAAEA,EAAEyP,OAAO,CAAC,CAAC,OAAM,CAAE,CAHvXkzB,CAAGvvC,KAAe,KAAV4M,EAAEqiC,GAAGtiC,EAAEiB,MAAmB,KAARC,EAAEoR,GAAGtS,MAAWiB,EAAEC,EAAEjB,EAAE0iC,GAAG3iC,EAAEkB,KAAK,IAAIjB,GAAG,MAAMC,EAAE0gC,GAAG4B,GAAGxiC,EAAE,GAAG0hC,GAAG1hC,EAAEiB,GAAG0gC,GAAG3hC,EAAEsQ,MAAKpQ,EAAqC,OAAnCF,EAAE6iC,aAAaxvC,EAAE2M,EAAE8iC,cAAc7hC,EAAShB,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMvB,MAAMqB,EAAE,MAAM,KAAK,EAC8B,KAAK,EAAEgjC,GAAG/iC,EAAEghC,GAAGE,IAAI,MAD7B,KAAK,EAAU,GAARQ,GAAG1hC,EAAEiB,IAAS,UAAFA,KAAeA,GAAiB,IAAbhB,EAAE2/B,GAAG,IAAItvB,MAAU,CAAC,GAAG,IAAIyB,GAAG/R,EAAE,GAAG,MAAyB,KAAnB3M,EAAE2M,EAAEiS,gBAAqBhR,KAAKA,EAAE,CAACuuB,KAAIxvB,EAAEkS,aAAalS,EAAEiS,eAAe5e,EAAE,KAAK,CAAC2M,EAAEgjC,cAAcjc,GAAGgc,GAAG/d,KAAK,KAAKhlB,EAAEghC,GAAGE,IAAIjhC,GAAG,KAAK,CAAC8iC,GAAG/iC,EAAEghC,GAAGE,IAAI,MAAM,KAAK,EAAU,GAARQ,GAAG1hC,EAAEiB,IAAS,QAAFA,KAC9eA,EAAE,MAAqB,IAAfhB,EAAED,EAAE0S,WAAerf,GAAG,EAAE,EAAE4N,GAAG,CAAC,IAAIE,EAAE,GAAGmQ,GAAGrQ,GAAGC,EAAE,GAAGC,GAAEA,EAAElB,EAAEkB,IAAK9N,IAAIA,EAAE8N,GAAGF,IAAIC,CAAC,CAAqG,GAApGD,EAAE5N,EAAqG,IAA3F4N,GAAG,KAAXA,EAAEqP,KAAIrP,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKq/B,GAAGr/B,EAAE,OAAOA,GAAU,CAACjB,EAAEgjC,cAAcjc,GAAGgc,GAAG/d,KAAK,KAAKhlB,EAAEghC,GAAGE,IAAIjgC,GAAG,KAAK,CAAC8hC,GAAG/iC,EAAEghC,GAAGE,IAAI,MAA+B,QAAQ,MAAMxiC,MAAMqB,EAAE,MAAO,CAAC,CAAW,OAAV4hC,GAAG3hC,EAAEsQ,MAAYtQ,EAAE4hC,eAAe1hC,EAAEkiC,GAAGpd,KAAK,KAAKhlB,GAAG,IAAI,CACrX,SAAS2iC,GAAG3iC,EAAEC,GAAG,IAAIC,EAAE6gC,GAA2G,OAAxG/gC,EAAE2P,QAAQN,cAAcmF,eAAeguB,GAAGxiC,EAAEC,GAAGkP,OAAO,KAAe,KAAVnP,EAAEsiC,GAAGtiC,EAAEC,MAAWA,EAAE+gC,GAAGA,GAAG9gC,EAAE,OAAOD,GAAG+8B,GAAG/8B,IAAWD,CAAC,CAAC,SAASg9B,GAAGh9B,GAAG,OAAOghC,GAAGA,GAAGhhC,EAAEghC,GAAG57C,KAAKI,MAAMw7C,GAAGhhC,EAAE,CAE5L,SAAS0hC,GAAG1hC,EAAEC,GAAuD,IAApDA,IAAI6gC,GAAG7gC,IAAI4gC,GAAG7gC,EAAEiS,gBAAgBhS,EAAED,EAAEkS,cAAcjS,EAAMD,EAAEA,EAAE6hC,gBAAgB,EAAE5hC,GAAG,CAAC,IAAIC,EAAE,GAAGoR,GAAGrR,GAAGgB,EAAE,GAAGf,EAAEF,EAAEE,IAAI,EAAED,IAAIgB,CAAC,CAAC,CAAC,SAASihC,GAAGliC,GAAG,GAAG,KAAO,EAAFuuB,IAAK,MAAM7vB,MAAMqB,EAAE,MAAMsiC,KAAK,IAAIpiC,EAAE8R,GAAG/R,EAAE,GAAG,GAAG,KAAO,EAAFC,GAAK,OAAO0hC,GAAG3hC,EAAEsQ,MAAK,KAAK,IAAIpQ,EAAEoiC,GAAGtiC,EAAEC,GAAG,GAAG,IAAID,EAAE7L,KAAK,IAAI+L,EAAE,CAAC,IAAIe,EAAEqR,GAAGtS,GAAG,IAAIiB,IAAIhB,EAAEgB,EAAEf,EAAEyiC,GAAG3iC,EAAEiB,GAAG,CAAC,GAAG,IAAIf,EAAE,MAAMA,EAAE0gC,GAAG4B,GAAGxiC,EAAE,GAAG0hC,GAAG1hC,EAAEC,GAAG0hC,GAAG3hC,EAAEsQ,MAAKpQ,EAAE,GAAG,IAAIA,EAAE,MAAMxB,MAAMqB,EAAE,MAAiF,OAA3EC,EAAE6iC,aAAa7iC,EAAE2P,QAAQV,UAAUjP,EAAE8iC,cAAc7iC,EAAE8iC,GAAG/iC,EAAEghC,GAAGE,IAAIS,GAAG3hC,EAAEsQ,MAAY,IAAI,CACvd,SAAS2yB,GAAGjjC,EAAEC,GAAG,IAAIC,EAAEquB,GAAEA,IAAG,EAAE,IAAI,OAAOvuB,EAAEC,EAAE,CAAC,QAAY,KAAJsuB,GAAEruB,KAAUw9B,GAAGptB,KAAI,IAAIiZ,IAAIG,KAAK,CAAC,CAAC,SAASwZ,GAAGljC,GAAG,OAAOohC,IAAI,IAAIA,GAAGjtC,KAAK,KAAO,EAAFo6B,KAAM8T,KAAK,IAAIpiC,EAAEsuB,GAAEA,IAAG,EAAE,IAAIruB,EAAEugC,GAAGnrB,WAAWrU,EAAE2R,GAAE,IAAI,GAAG6tB,GAAGnrB,WAAW,KAAK1C,GAAE,EAAE5S,EAAE,OAAOA,GAAG,CAAC,QAAQ4S,GAAE3R,EAAEw/B,GAAGnrB,WAAWpV,EAAM,KAAO,GAAXquB,GAAEtuB,KAAaypB,IAAI,CAAC,CAAC,SAASiU,KAAKpD,GAAGD,GAAG3qB,QAAQwY,GAAEmS,GAAG,CAChT,SAASkI,GAAGxiC,EAAEC,GAAGD,EAAE6iC,aAAa,KAAK7iC,EAAE8iC,cAAc,EAAE,IAAI5iC,EAAEF,EAAEgjC,cAAiD,IAAlC,IAAI9iC,IAAIF,EAAEgjC,eAAe,EAAEhc,GAAG9mB,IAAO,OAAOwgC,GAAE,IAAIxgC,EAAEwgC,GAAExxB,OAAO,OAAOhP,GAAG,CAAC,IAAIe,EAAEf,EAAQ,OAANqqB,GAAGtpB,GAAUA,EAAE9M,KAAK,KAAK,EAA6B,QAA3B8M,EAAEA,EAAE1J,KAAKuxB,yBAA4B,IAAS7nB,GAAG8nB,KAAK,MAAM,KAAK,EAAEqJ,KAAKjK,GAAEI,IAAIJ,GAAEG,IAAGqK,KAAK,MAAM,KAAK,EAAEL,GAAGrxB,GAAG,MAAM,KAAK,EAAEmxB,KAAK,MAAM,KAAK,GAAc,KAAK,GAAGjK,GAAEoK,IAAG,MAAM,KAAK,GAAGlG,GAAGprB,EAAE1J,KAAKwN,UAAU,MAAM,KAAK,GAAG,KAAK,GAAG44B,KAAKz9B,EAAEA,EAAEgP,MAAM,CAAqE,GAApEkmB,GAAEp1B,EAAE0gC,GAAE1gC,EAAEoxB,GAAGpxB,EAAE2P,QAAQ,MAAMgxB,GAAEpG,GAAGt6B,EAAEw9B,GAAE,EAAEmD,GAAG,KAAKE,GAAGD,GAAG/R,GAAG,EAAEkS,GAAGD,GAAG,KAAQ,OAAO7T,GAAG,CAAC,IAAIjtB,EAC1f,EAAEA,EAAEitB,GAAGjoC,OAAOgb,IAAI,GAA2B,QAAhBgB,GAARf,EAAEgtB,GAAGjtB,IAAOotB,aAAqB,CAACntB,EAAEmtB,YAAY,KAAK,IAAIh6B,EAAE4N,EAAEgsB,KAAK/rB,EAAEhB,EAAE4tB,QAAQ,GAAG,OAAO5sB,EAAE,CAAC,IAAIC,EAAED,EAAE+rB,KAAK/rB,EAAE+rB,KAAK55B,EAAE4N,EAAEgsB,KAAK9rB,CAAC,CAACjB,EAAE4tB,QAAQ7sB,CAAC,CAACisB,GAAG,IAAI,CAAC,OAAOltB,CAAC,CAC3K,SAAS0iC,GAAG1iC,EAAEC,GAAG,OAAE,CAAC,IAAIC,EAAEwgC,GAAE,IAAuB,GAAnBtU,KAAKyG,GAAGljB,QAAQmkB,GAAMV,GAAG,CAAC,IAAI,IAAInyB,EAAEgyB,GAAE5jB,cAAc,OAAOpO,GAAG,CAAC,IAAI5N,EAAE4N,EAAEizB,MAAM,OAAO7gC,IAAIA,EAAEy6B,QAAQ,MAAM7sB,EAAEA,EAAEgsB,IAAI,CAACmG,IAAG,CAAE,CAA4C,GAA3CJ,GAAG,EAAEG,GAAED,GAAED,GAAE,KAAKI,IAAG,EAAGC,GAAG,EAAEkN,GAAG7wB,QAAQ,KAAQ,OAAOzP,GAAG,OAAOA,EAAEgP,OAAO,CAACuuB,GAAE,EAAEmD,GAAG3gC,EAAEygC,GAAE,KAAK,KAAK,CAAC1gC,EAAE,CAAC,IAAIkB,EAAElB,EAAEmB,EAAEjB,EAAEgP,OAAO1K,EAAEtE,EAAEuE,EAAExE,EAAqB,GAAnBA,EAAE0gC,GAAEn8B,EAAE2K,OAAO,MAAS,OAAO1K,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE2iB,KAAK,CAAC,IAAI7iB,EAAEE,EAAE+J,EAAEhK,EAAEmqB,EAAEngB,EAAEra,IAAI,GAAG,KAAY,EAAPqa,EAAE6c,QAAU,IAAIsD,GAAG,KAAKA,GAAG,KAAKA,GAAG,CAAC,IAAIC,EAAEpgB,EAAES,UAAU2f,GAAGpgB,EAAEif,YAAYmB,EAAEnB,YAAYjf,EAAEa,cAAcuf,EAAEvf,cACxeb,EAAEoe,MAAMgC,EAAEhC,QAAQpe,EAAEif,YAAY,KAAKjf,EAAEa,cAAc,KAAK,CAAC,IAAIwf,EAAEyK,GAAGn4B,GAAG,GAAG,OAAO0tB,EAAE,CAACA,EAAE1f,QAAQ,IAAIoqB,GAAG1K,EAAE1tB,EAAEqD,EAAEtD,EAAEjB,GAAU,EAAP4uB,EAAExD,MAAQ8N,GAAGj4B,EAAEqD,EAAEtE,GAAOwE,EAAEF,EAAE,IAAItT,GAAZgP,EAAE4uB,GAAcpB,YAAY,GAAG,OAAOx8B,EAAE,CAAC,IAAIk0B,EAAE,IAAIj9B,IAAIi9B,EAAE38B,IAAIic,GAAGxE,EAAEwtB,YAAYtI,CAAC,MAAMl0B,EAAEzI,IAAIic,GAAG,MAAMzE,CAAC,CAAM,GAAG,KAAO,EAAFC,GAAK,CAACk5B,GAAGj4B,EAAEqD,EAAEtE,GAAG87B,KAAK,MAAM/7B,CAAC,CAACyE,EAAE/F,MAAMqB,EAAE,KAAM,MAAM,GAAG2qB,IAAU,EAAPlmB,EAAE6mB,KAAO,CAAC,IAAIjG,EAAEkU,GAAGn4B,GAAG,GAAG,OAAOikB,EAAE,CAAC,KAAa,MAARA,EAAEjW,SAAeiW,EAAEjW,OAAO,KAAKoqB,GAAGnU,EAAEjkB,EAAEqD,EAAEtD,EAAEjB,GAAG2rB,GAAGwM,GAAG3zB,EAAED,IAAI,MAAMxE,CAAC,CAAC,CAACkB,EAAEuD,EAAE2zB,GAAG3zB,EAAED,GAAG,IAAIi5B,KAAIA,GAAE,GAAG,OAAOsD,GAAGA,GAAG,CAAC7/B,GAAG6/B,GAAG37C,KAAK8b,GAAGA,EAAEC,EAAE,EAAE,CAAC,OAAOD,EAAE/M,KAAK,KAAK,EAAE+M,EAAEiO,OAAO,MACpflP,IAAIA,EAAEiB,EAAE0rB,OAAO3sB,EAAkBwuB,GAAGvtB,EAAby3B,GAAGz3B,EAAEuD,EAAExE,IAAW,MAAMD,EAAE,KAAK,EAAEwE,EAAEC,EAAE,IAAI8gB,EAAErkB,EAAE3J,KAAK+tB,EAAEpkB,EAAEwM,UAAU,GAAG,KAAa,IAARxM,EAAEiO,SAAa,oBAAoBoW,EAAEwT,0BAA0B,OAAOzT,GAAG,oBAAoBA,EAAE0T,oBAAoB,OAAOC,KAAKA,GAAG9xC,IAAIm+B,KAAK,CAACpkB,EAAEiO,OAAO,MAAMlP,IAAIA,EAAEiB,EAAE0rB,OAAO3sB,EAAkBwuB,GAAGvtB,EAAb43B,GAAG53B,EAAEsD,EAAEvE,IAAW,MAAMD,CAAC,EAAEkB,EAAEA,EAAEgO,MAAM,OAAO,OAAOhO,EAAE,CAACiiC,GAAGjjC,EAAE,CAAC,MAAM4lB,GAAI7lB,EAAE6lB,EAAG4a,KAAIxgC,GAAG,OAAOA,IAAIwgC,GAAExgC,EAAEA,EAAEgP,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAAC,SAASqzB,KAAK,IAAIviC,EAAEugC,GAAG5wB,QAAsB,OAAd4wB,GAAG5wB,QAAQmkB,GAAU,OAAO9zB,EAAE8zB,GAAG9zB,CAAC,CACrd,SAAS+7B,KAAQ,IAAI0B,IAAG,IAAIA,IAAG,IAAIA,KAAEA,GAAE,GAAE,OAAOrI,IAAG,KAAQ,UAAHtG,KAAe,KAAQ,UAAH+R,KAAea,GAAGtM,GAAEuL,GAAE,CAAC,SAAS2B,GAAGtiC,EAAEC,GAAG,IAAIC,EAAEquB,GAAEA,IAAG,EAAE,IAAIttB,EAAEshC,KAAqC,IAA7BnN,KAAIp1B,GAAG2gC,KAAI1gC,IAAEihC,GAAG,KAAKsB,GAAGxiC,EAAEC,UAAUmjC,KAAK,KAAK,CAAC,MAAM/vC,GAAGqvC,GAAG1iC,EAAE3M,EAAE,CAAgC,GAAtB+4B,KAAKmC,GAAEruB,EAAEqgC,GAAG5wB,QAAQ1O,EAAK,OAAOy/B,GAAE,MAAMhiC,MAAMqB,EAAE,MAAiB,OAAXq1B,GAAE,KAAKuL,GAAE,EAASlD,EAAC,CAAC,SAAS2F,KAAK,KAAK,OAAO1C,IAAG2C,GAAG3C,GAAE,CAAC,SAAS+B,KAAK,KAAK,OAAO/B,KAAIxwB,MAAMmzB,GAAG3C,GAAE,CAAC,SAAS2C,GAAGrjC,GAAG,IAAIC,EAAEogC,GAAGrgC,EAAEiP,UAAUjP,EAAEu6B,IAAIv6B,EAAEyrB,cAAczrB,EAAEgrB,aAAa,OAAO/qB,EAAEkjC,GAAGnjC,GAAG0gC,GAAEzgC,EAAEugC,GAAG7wB,QAAQ,IAAI,CAC1d,SAASwzB,GAAGnjC,GAAG,IAAIC,EAAED,EAAE,EAAE,CAAC,IAAIE,EAAED,EAAEgP,UAAqB,GAAXjP,EAAEC,EAAEiP,OAAU,KAAa,MAARjP,EAAEkP,QAAc,GAAgB,QAAbjP,EAAE68B,GAAG78B,EAAED,EAAEs6B,KAAkB,YAAJmG,GAAExgC,OAAc,CAAW,GAAG,QAAbA,EAAE09B,GAAG19B,EAAED,IAAmC,OAAnBC,EAAEiP,OAAO,WAAMuxB,GAAExgC,GAAS,GAAG,OAAOF,EAAmE,OAAXy9B,GAAE,OAAEiD,GAAE,MAA5D1gC,EAAEmP,OAAO,MAAMnP,EAAEm8B,aAAa,EAAEn8B,EAAE8qB,UAAU,IAA4B,CAAa,GAAG,QAAf7qB,EAAEA,EAAEyP,SAAyB,YAAJgxB,GAAEzgC,GAASygC,GAAEzgC,EAAED,CAAC,OAAO,OAAOC,GAAG,IAAIw9B,KAAIA,GAAE,EAAE,CAAC,SAASsF,GAAG/iC,EAAEC,EAAEC,GAAG,IAAIe,EAAE2R,GAAEvf,EAAEotC,GAAGnrB,WAAW,IAAImrB,GAAGnrB,WAAW,KAAK1C,GAAE,EAC3Y,SAAY5S,EAAEC,EAAEC,EAAEe,GAAG,GAAGohC,WAAW,OAAOjB,IAAI,GAAG,KAAO,EAAF7S,IAAK,MAAM7vB,MAAMqB,EAAE,MAAMG,EAAEF,EAAE6iC,aAAa,IAAIxvC,EAAE2M,EAAE8iC,cAAc,GAAG,OAAO5iC,EAAE,OAAO,KAA2C,GAAtCF,EAAE6iC,aAAa,KAAK7iC,EAAE8iC,cAAc,EAAK5iC,IAAIF,EAAE2P,QAAQ,MAAMjR,MAAMqB,EAAE,MAAMC,EAAE4hC,aAAa,KAAK5hC,EAAEgiC,iBAAiB,EAAE,IAAI9gC,EAAEhB,EAAE0sB,MAAM1sB,EAAEssB,WAA8J,GA1NtT,SAAYxsB,EAAEC,GAAG,IAAIC,EAAEF,EAAEgS,cAAc/R,EAAED,EAAEgS,aAAa/R,EAAED,EAAEiS,eAAe,EAAEjS,EAAEkS,YAAY,EAAElS,EAAE8hC,cAAc7hC,EAAED,EAAEsjC,kBAAkBrjC,EAAED,EAAEmS,gBAAgBlS,EAAEA,EAAED,EAAEoS,cAAc,IAAInR,EAAEjB,EAAE0S,WAAW,IAAI1S,EAAEA,EAAE6hC,gBAAgB,EAAE3hC,GAAG,CAAC,IAAI7M,EAAE,GAAGie,GAAGpR,GAAGgB,EAAE,GAAG7N,EAAE4M,EAAE5M,GAAG,EAAE4N,EAAE5N,IAAI,EAAE2M,EAAE3M,IAAI,EAAE6M,IAAIgB,CAAC,CAAC,CA0N5GqiC,CAAGvjC,EAAEkB,GAAGlB,IAAIo1B,KAAIsL,GAAEtL,GAAE,KAAKuL,GAAE,GAAG,KAAoB,KAAfzgC,EAAEi8B,eAAoB,KAAa,KAARj8B,EAAEiP,QAAagyB,KAAKA,IAAG,EAAGgB,GAAGrxB,IAAG,WAAgB,OAALuxB,KAAY,IAAI,KAAInhC,EAAE,KAAa,MAARhB,EAAEiP,OAAgB,KAAoB,MAAfjP,EAAEi8B,eAAqBj7B,EAAE,CAACA,EAAEu/B,GAAGnrB,WAAWmrB,GAAGnrB,WAAW,KAChf,IAAInU,EAAEyR,GAAEA,GAAE,EAAE,IAAIpO,EAAE+pB,GAAEA,IAAG,EAAEiS,GAAG7wB,QAAQ,KA1CpC,SAAY3P,EAAEC,GAAgB,GAAb0mB,GAAGvR,GAAa4L,GAAVhhB,EAAE4gB,MAAc,CAAC,GAAG,mBAAmB5gB,EAAE,IAAIE,EAAE,CAACpP,MAAMkP,EAAEshB,eAAevwB,IAAIiP,EAAEuhB,mBAAmBvhB,EAAE,CAA8C,IAAIiB,GAAjDf,GAAGA,EAAEF,EAAE8G,gBAAgB5G,EAAEshB,aAAa/gB,QAAeghB,cAAcvhB,EAAEuhB,eAAe,GAAGxgB,GAAG,IAAIA,EAAE0gB,WAAW,CAACzhB,EAAEe,EAAE2gB,WAAW,IAAIvuB,EAAE4N,EAAE4gB,aAAa3gB,EAAED,EAAE6gB,UAAU7gB,EAAEA,EAAE8gB,YAAY,IAAI7hB,EAAE5H,SAAS4I,EAAE5I,QAAQ,CAAC,MAAMktB,GAAGtlB,EAAE,KAAK,MAAMF,CAAC,CAAC,IAAImB,EAAE,EAAEqD,GAAG,EAAEC,GAAG,EAAEF,EAAE,EAAEiK,EAAE,EAAEmgB,EAAE3uB,EAAE4uB,EAAE,KAAK3uB,EAAE,OAAO,CAAC,IAAI,IAAI4uB,EAAKF,IAAIzuB,GAAG,IAAI7M,GAAG,IAAIs7B,EAAEr2B,WAAWkM,EAAErD,EAAE9N,GAAGs7B,IAAIztB,GAAG,IAAID,GAAG,IAAI0tB,EAAEr2B,WAAWmM,EAAEtD,EAAEF,GAAG,IAAI0tB,EAAEr2B,WAAW6I,GACnfwtB,EAAEnmB,UAAUvjB,QAAW,QAAQ4pC,EAAEF,EAAE1mB,aAAkB2mB,EAAED,EAAEA,EAAEE,EAAE,OAAO,CAAC,GAAGF,IAAI3uB,EAAE,MAAMC,EAA8C,GAA5C2uB,IAAI1uB,KAAKqE,IAAIlR,IAAImR,EAAErD,GAAGytB,IAAI1tB,KAAKsN,IAAIvN,IAAIwD,EAAEtD,GAAM,QAAQ0tB,EAAEF,EAAEnO,aAAa,MAAUoO,GAAJD,EAAEC,GAAMxhB,UAAU,CAACuhB,EAAEE,CAAC,CAAC3uB,GAAG,IAAIsE,IAAI,IAAIC,EAAE,KAAK,CAAC3T,MAAM0T,EAAEzT,IAAI0T,EAAE,MAAMvE,EAAE,IAAI,CAACA,EAAEA,GAAG,CAACpP,MAAM,EAAEC,IAAI,EAAE,MAAMmP,EAAE,KAA+C,IAA1C0mB,GAAG,CAACzF,YAAYnhB,EAAEohB,eAAelhB,GAAGkV,IAAG,EAAO6oB,GAAEh+B,EAAE,OAAOg+B,IAAG,GAAOj+B,GAAJC,EAAEg+B,IAAMxuB,MAAM,KAAoB,KAAfxP,EAAEk8B,eAAoB,OAAOn8B,EAAEA,EAAEkP,OAAOjP,EAAEg+B,GAAEj+B,OAAO,KAAK,OAAOi+B,IAAG,CAACh+B,EAAEg+B,GAAE,IAAI,IAAIhtC,EAAEgP,EAAEgP,UAAU,GAAG,KAAa,KAARhP,EAAEkP,OAAY,OAAOlP,EAAE9L,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GACvK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAA3W,KAAK,EAAE,GAAG,OAAOlD,EAAE,CAAC,IAAIk0B,EAAEl0B,EAAEw6B,cAAcrG,EAAEn0B,EAAEoe,cAAcgW,EAAEplB,EAAEyN,UAAU6X,EAAEF,EAAEoL,wBAAwBxwB,EAAEd,cAAcc,EAAE1I,KAAK4tB,EAAE2G,GAAG7rB,EAAE1I,KAAK4tB,GAAGC,GAAGC,EAAE8a,oCAAoC5a,CAAC,CAAC,MAAM,KAAK,EAAE,IAAID,EAAErlB,EAAEyN,UAAU+G,cAAc,IAAI6Q,EAAEhtB,SAASgtB,EAAE5d,YAAY,GAAG,IAAI4d,EAAEhtB,UAAUgtB,EAAEjE,iBAAiBiE,EAAEpd,YAAYod,EAAEjE,iBAAiB,MAAyC,QAAQ,MAAM3iB,MAAMqB,EAAE,MAAO,CAAC,MAAMylB,GAAG2Y,GAAEl+B,EAAEA,EAAEiP,OAAOsW,EAAE,CAAa,GAAG,QAAfxlB,EAAEC,EAAEyP,SAAoB,CAAC1P,EAAEkP,OAAOjP,EAAEiP,OAAO+uB,GAAEj+B,EAAE,KAAK,CAACi+B,GAAEh+B,EAAEiP,MAAM,CAACje,EAAEotC,GAAGA,IAAG,CAAW,CAwCldmF,CAAGxjC,EAAEE,GAAGu/B,GAAGv/B,EAAEF,GAAGkhB,GAAG0F,IAAIxR,KAAKuR,GAAGC,GAAGD,GAAG,KAAK3mB,EAAE2P,QAAQzP,EAAE6/B,GAAG7/B,EAAEF,EAAE3M,GAAG+c,KAAKme,GAAE/pB,EAAEoO,GAAEzR,EAAEs/B,GAAGnrB,WAAWpU,CAAC,MAAMlB,EAAE2P,QAAQzP,EAAsF,GAApFihC,KAAKA,IAAG,EAAGC,GAAGphC,EAAEqhC,GAAGhuC,GAAG6N,EAAElB,EAAEgS,aAAa,IAAI9Q,IAAI+3B,GAAG,MAjOmJ,SAAYj5B,GAAG,GAAGqR,IAAI,oBAAoBA,GAAGoyB,kBAAkB,IAAIpyB,GAAGoyB,kBAAkBryB,GAAGpR,OAAE,EAAO,OAAuB,IAAhBA,EAAE2P,QAAQR,OAAW,CAAC,MAAMlP,GAAG,CAAC,CAiOxRyjC,CAAGxjC,EAAEwN,WAAai0B,GAAG3hC,EAAEsQ,MAAQ,OAAOrQ,EAAE,IAAIgB,EAAEjB,EAAE2jC,mBAAmBzjC,EAAE,EAAEA,EAAED,EAAEhb,OAAOib,IAAI7M,EAAE4M,EAAEC,GAAGe,EAAE5N,EAAE7J,MAAM,CAAC0vC,eAAe7lC,EAAElG,MAAMkrC,OAAOhlC,EAAEglC,SAAS,GAAGO,GAAG,MAAMA,IAAG,EAAG54B,EAAE64B,GAAGA,GAAG,KAAK74B,EAAE,KAAQ,EAAHqhC,KAAO,IAAIrhC,EAAE7L,KAAKkuC,KAAKnhC,EAAElB,EAAEgS,aAAa,KAAO,EAAF9Q,GAAKlB,IAAIuhC,GAAGD,MAAMA,GAAG,EAAEC,GAAGvhC,GAAGshC,GAAG,EAAE5X,IAAgB,CAFxFka,CAAG5jC,EAAEC,EAAEC,EAAEe,EAAE,CAAC,QAAQw/B,GAAGnrB,WAAWjiB,EAAEuf,GAAE3R,CAAC,CAAC,OAAO,IAAI,CAGhc,SAASohC,KAAK,GAAG,OAAOjB,GAAG,CAAC,IAAIphC,EAAE6S,GAAGwuB,IAAIphC,EAAEwgC,GAAGnrB,WAAWpV,EAAE0S,GAAE,IAAmC,GAA/B6tB,GAAGnrB,WAAW,KAAK1C,GAAE,GAAG5S,EAAE,GAAGA,EAAK,OAAOohC,GAAG,IAAIngC,GAAE,MAAO,CAAmB,GAAlBjB,EAAEohC,GAAGA,GAAG,KAAKC,GAAG,EAAK,KAAO,EAAF9S,IAAK,MAAM7vB,MAAMqB,EAAE,MAAM,IAAI1M,EAAEk7B,GAAO,IAALA,IAAG,EAAM0P,GAAEj+B,EAAE2P,QAAQ,OAAOsuB,IAAG,CAAC,IAAI/8B,EAAE+8B,GAAE98B,EAAED,EAAEuO,MAAM,GAAG,KAAa,GAARwuB,GAAE9uB,OAAU,CAAC,IAAI3K,EAAEtD,EAAE4pB,UAAU,GAAG,OAAOtmB,EAAE,CAAC,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEvf,OAAOwf,IAAI,CAAC,IAAIF,EAAEC,EAAEC,GAAG,IAAIw5B,GAAE15B,EAAE,OAAO05B,IAAG,CAAC,IAAIzvB,EAAEyvB,GAAE,OAAOzvB,EAAEra,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGmqC,GAAG,EAAE9vB,EAAEtN,GAAG,IAAIytB,EAAEngB,EAAEiB,MAAM,GAAG,OAAOkf,EAAEA,EAAEzf,OAAOV,EAAEyvB,GAAEtP,OAAO,KAAK,OAAOsP,IAAG,CAAK,IAAIrP,GAARpgB,EAAEyvB,IAAUvuB,QAAQmf,EAAErgB,EAAEU,OAAa,GAANuvB,GAAGjwB,GAAMA,IACnfjK,EAAE,CAAC05B,GAAE,KAAK,KAAK,CAAC,GAAG,OAAOrP,EAAE,CAACA,EAAE1f,OAAO2f,EAAEoP,GAAErP,EAAE,KAAK,CAACqP,GAAEpP,CAAC,CAAC,CAAC,CAAC,IAAI59B,EAAEiQ,EAAE+N,UAAU,GAAG,OAAOhe,EAAE,CAAC,IAAIk0B,EAAEl0B,EAAEwe,MAAM,GAAG,OAAO0V,EAAE,CAACl0B,EAAEwe,MAAM,KAAK,EAAE,CAAC,IAAI2V,EAAED,EAAEzV,QAAQyV,EAAEzV,QAAQ,KAAKyV,EAAEC,CAAC,OAAO,OAAOD,EAAE,CAAC,CAAC8Y,GAAE/8B,CAAC,CAAC,CAAC,GAAG,KAAoB,KAAfA,EAAEi7B,eAAoB,OAAOh7B,EAAEA,EAAE+N,OAAOhO,EAAE+8B,GAAE98B,OAAOlB,EAAE,KAAK,OAAOg+B,IAAG,CAAK,GAAG,KAAa,MAApB/8B,EAAE+8B,IAAY9uB,OAAY,OAAOjO,EAAE/M,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGmqC,GAAG,EAAEp9B,EAAEA,EAAEgO,QAAQ,IAAImW,EAAEnkB,EAAEwO,QAAQ,GAAG,OAAO2V,EAAE,CAACA,EAAEnW,OAAOhO,EAAEgO,OAAO+uB,GAAE5Y,EAAE,MAAMplB,CAAC,CAACg+B,GAAE/8B,EAAEgO,MAAM,CAAC,CAAC,IAAIqW,EAAEvlB,EAAE2P,QAAQ,IAAIsuB,GAAE1Y,EAAE,OAAO0Y,IAAG,CAAK,IAAI3Y,GAARnkB,EAAE88B,IAAUxuB,MAAM,GAAG,KAAoB,KAAftO,EAAEg7B,eAAoB,OAClf7W,EAAEA,EAAEpW,OAAO/N,EAAE88B,GAAE3Y,OAAOrlB,EAAE,IAAIkB,EAAEokB,EAAE,OAAO0Y,IAAG,CAAK,GAAG,KAAa,MAApBz5B,EAAEy5B,IAAY9uB,OAAY,IAAI,OAAO3K,EAAErQ,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGoqC,GAAG,EAAE/5B,GAAG,CAAC,MAAMshB,GAAIqY,GAAE35B,EAAEA,EAAE0K,OAAO4W,EAAG,CAAC,GAAGthB,IAAIrD,EAAE,CAAC88B,GAAE,KAAK,MAAMh+B,CAAC,CAAC,IAAIulB,EAAEhhB,EAAEkL,QAAQ,GAAG,OAAO8V,EAAE,CAACA,EAAEtW,OAAO1K,EAAE0K,OAAO+uB,GAAEzY,EAAE,MAAMvlB,CAAC,CAACg+B,GAAEz5B,EAAE0K,MAAM,CAAC,CAAU,GAATqf,GAAEl7B,EAAEq2B,KAAQrY,IAAI,oBAAoBA,GAAGwyB,sBAAsB,IAAIxyB,GAAGwyB,sBAAsBzyB,GAAGpR,EAAE,CAAC,MAAM8lB,GAAI,CAAC7kB,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQ2R,GAAE1S,EAAEugC,GAAGnrB,WAAWrV,CAAC,CAAC,CAAC,OAAM,CAAE,CAAC,SAAS6jC,GAAG9jC,EAAEC,EAAEC,GAAyBF,EAAEsuB,GAAGtuB,EAAjBC,EAAE04B,GAAG34B,EAAfC,EAAEm4B,GAAGl4B,EAAED,GAAY,GAAY,GAAGA,EAAEuvB,KAAI,OAAOxvB,IAAIyS,GAAGzS,EAAE,EAAEC,GAAG0hC,GAAG3hC,EAAEC,GAAG,CACze,SAASk+B,GAAEn+B,EAAEC,EAAEC,GAAG,GAAG,IAAIF,EAAE7L,IAAI2vC,GAAG9jC,EAAEA,EAAEE,QAAQ,KAAK,OAAOD,GAAG,CAAC,GAAG,IAAIA,EAAE9L,IAAI,CAAC2vC,GAAG7jC,EAAED,EAAEE,GAAG,KAAK,CAAM,GAAG,IAAID,EAAE9L,IAAI,CAAC,IAAI8M,EAAEhB,EAAEyN,UAAU,GAAG,oBAAoBzN,EAAE1I,KAAKwhC,0BAA0B,oBAAoB93B,EAAE+3B,oBAAoB,OAAOC,KAAKA,GAAG9xC,IAAI8Z,IAAI,CAAuBhB,EAAEquB,GAAGruB,EAAjBD,EAAE84B,GAAG74B,EAAfD,EAAEo4B,GAAGl4B,EAAEF,GAAY,GAAY,GAAGA,EAAEwvB,KAAI,OAAOvvB,IAAIwS,GAAGxS,EAAE,EAAED,GAAG2hC,GAAG1hC,EAAED,IAAI,KAAK,CAAC,CAACC,EAAEA,EAAEiP,MAAM,CAAC,CACnV,SAASmqB,GAAGr5B,EAAEC,EAAEC,GAAG,IAAIe,EAAEjB,EAAEo5B,UAAU,OAAOn4B,GAAGA,EAAE4S,OAAO5T,GAAGA,EAAEuvB,KAAIxvB,EAAEkS,aAAalS,EAAEiS,eAAe/R,EAAEk1B,KAAIp1B,IAAI2gC,GAAEzgC,KAAKA,IAAI,IAAIu9B,IAAG,IAAIA,KAAM,UAAFkD,MAAeA,IAAG,IAAIrwB,KAAIsvB,GAAG4C,GAAGxiC,EAAE,GAAG8gC,IAAI5gC,GAAGyhC,GAAG3hC,EAAEC,EAAE,CAAC,SAAS8jC,GAAG/jC,EAAEC,GAAG,IAAIA,IAAI,KAAY,EAAPD,EAAEqrB,MAAQprB,EAAE,GAAGA,EAAE4R,GAAU,KAAQ,WAAfA,KAAK,MAAuBA,GAAG,WAAW,IAAI3R,EAAEsvB,KAAc,QAAVxvB,EAAEstB,GAAGttB,EAAEC,MAAcwS,GAAGzS,EAAEC,EAAEC,GAAGyhC,GAAG3hC,EAAEE,GAAG,CAAC,SAAS87B,GAAGh8B,GAAG,IAAIC,EAAED,EAAEqP,cAAcnP,EAAE,EAAE,OAAOD,IAAIC,EAAED,EAAEkrB,WAAW4Y,GAAG/jC,EAAEE,EAAE,CACjZ,SAASq/B,GAAGv/B,EAAEC,GAAG,IAAIC,EAAE,EAAE,OAAOF,EAAE7L,KAAK,KAAK,GAAG,IAAI8M,EAAEjB,EAAE0N,UAAcra,EAAE2M,EAAEqP,cAAc,OAAOhc,IAAI6M,EAAE7M,EAAE83B,WAAW,MAAM,KAAK,GAAGlqB,EAAEjB,EAAE0N,UAAU,MAAM,QAAQ,MAAMhP,MAAMqB,EAAE,MAAO,OAAOkB,GAAGA,EAAE4S,OAAO5T,GAAG8jC,GAAG/jC,EAAEE,EAAE,CAQqK,SAASiiC,GAAGniC,EAAEC,GAAG,OAAO6P,GAAG9P,EAAEC,EAAE,CACjZ,SAAS+jC,GAAGhkC,EAAEC,EAAEC,EAAEe,GAAGna,KAAKqN,IAAI6L,EAAElZ,KAAKjB,IAAIqa,EAAEpZ,KAAK4oB,QAAQ5oB,KAAK2oB,MAAM3oB,KAAKooB,OAAOpoB,KAAK4mB,UAAU5mB,KAAKyQ,KAAKzQ,KAAKqY,YAAY,KAAKrY,KAAKD,MAAM,EAAEC,KAAKgqC,IAAI,KAAKhqC,KAAKkkC,aAAa/qB,EAAEnZ,KAAK4lC,aAAa5lC,KAAKuoB,cAAcvoB,KAAK2mC,YAAY3mC,KAAK2kC,cAAc,KAAK3kC,KAAKukC,KAAKpqB,EAAEna,KAAKq1C,aAAar1C,KAAKqoB,MAAM,EAAEroB,KAAKgkC,UAAU,KAAKhkC,KAAK0lC,WAAW1lC,KAAK8lC,MAAM,EAAE9lC,KAAKmoB,UAAU,IAAI,CAAC,SAAS4b,GAAG7qB,EAAEC,EAAEC,EAAEe,GAAG,OAAO,IAAI+iC,GAAGhkC,EAAEC,EAAEC,EAAEe,EAAE,CAAC,SAAS64B,GAAG95B,GAAiB,UAAdA,EAAEA,EAAEra,aAAuBqa,EAAEikC,iBAAiB,CAEpd,SAAS7S,GAAGpxB,EAAEC,GAAG,IAAIC,EAAEF,EAAEiP,UACuB,OADb,OAAO/O,IAAGA,EAAE2qB,GAAG7qB,EAAE7L,IAAI8L,EAAED,EAAEna,IAAIma,EAAEqrB,OAAQlsB,YAAYa,EAAEb,YAAYe,EAAE3I,KAAKyI,EAAEzI,KAAK2I,EAAEwN,UAAU1N,EAAE0N,UAAUxN,EAAE+O,UAAUjP,EAAEA,EAAEiP,UAAU/O,IAAIA,EAAE8qB,aAAa/qB,EAAEC,EAAE3I,KAAKyI,EAAEzI,KAAK2I,EAAEiP,MAAM,EAAEjP,EAAEi8B,aAAa,EAAEj8B,EAAE4qB,UAAU,MAAM5qB,EAAEiP,MAAc,SAARnP,EAAEmP,MAAejP,EAAEssB,WAAWxsB,EAAEwsB,WAAWtsB,EAAE0sB,MAAM5sB,EAAE4sB,MAAM1sB,EAAEuP,MAAMzP,EAAEyP,MAAMvP,EAAEurB,cAAczrB,EAAEyrB,cAAcvrB,EAAEmP,cAAcrP,EAAEqP,cAAcnP,EAAEutB,YAAYztB,EAAEytB,YAAYxtB,EAAED,EAAE0sB,aAAaxsB,EAAEwsB,aAAa,OAAOzsB,EAAE,KAAK,CAAC2sB,MAAM3sB,EAAE2sB,MAAMD,aAAa1sB,EAAE0sB,cAC/ezsB,EAAEwP,QAAQ1P,EAAE0P,QAAQxP,EAAErZ,MAAMmZ,EAAEnZ,MAAMqZ,EAAE4wB,IAAI9wB,EAAE8wB,IAAW5wB,CAAC,CACxD,SAASoxB,GAAGtxB,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,GAAG,IAAIC,EAAE,EAAM,GAAJF,EAAEjB,EAAK,oBAAoBA,EAAE85B,GAAG95B,KAAKmB,EAAE,QAAQ,GAAG,kBAAkBnB,EAAEmB,EAAE,OAAOnB,EAAE,OAAOA,GAAG,KAAK+C,EAAG,OAAO0uB,GAAGvxB,EAAEoH,SAASjU,EAAE6N,EAAEjB,GAAG,KAAK+C,EAAG7B,EAAE,EAAE9N,GAAG,EAAE,MAAM,KAAK4P,EAAG,OAAOjD,EAAE6qB,GAAG,GAAG3qB,EAAED,EAAI,EAAF5M,IAAO8L,YAAY8D,EAAGjD,EAAE4sB,MAAM1rB,EAAElB,EAAE,KAAKqD,EAAG,OAAOrD,EAAE6qB,GAAG,GAAG3qB,EAAED,EAAE5M,IAAK8L,YAAYkE,EAAGrD,EAAE4sB,MAAM1rB,EAAElB,EAAE,KAAKsD,EAAG,OAAOtD,EAAE6qB,GAAG,GAAG3qB,EAAED,EAAE5M,IAAK8L,YAAYmE,EAAGtD,EAAE4sB,MAAM1rB,EAAElB,EAAE,KAAKyD,EAAG,OAAOi4B,GAAGx7B,EAAE7M,EAAE6N,EAAEjB,GAAG,QAAQ,GAAG,kBAAkBD,GAAG,OAAOA,EAAE,OAAOA,EAAE8E,UAAU,KAAK5B,EAAG/B,EAAE,GAAG,MAAMnB,EAAE,KAAKmD,EAAGhC,EAAE,EAAE,MAAMnB,EAAE,KAAKoD,EAAGjC,EAAE,GACpf,MAAMnB,EAAE,KAAKuD,EAAGpC,EAAE,GAAG,MAAMnB,EAAE,KAAKwD,EAAGrC,EAAE,GAAGF,EAAE,KAAK,MAAMjB,EAAE,MAAMtB,MAAMqB,EAAE,IAAI,MAAMC,EAAEA,SAASA,EAAE,KAAuD,OAAjDC,EAAE4qB,GAAG1pB,EAAEjB,EAAED,EAAE5M,IAAK8L,YAAYa,EAAEC,EAAE1I,KAAK0J,EAAEhB,EAAE2sB,MAAM1rB,EAASjB,CAAC,CAAC,SAASwxB,GAAGzxB,EAAEC,EAAEC,EAAEe,GAA2B,OAAxBjB,EAAE6qB,GAAG,EAAE7qB,EAAEiB,EAAEhB,IAAK2sB,MAAM1sB,EAASF,CAAC,CAAC,SAAS07B,GAAG17B,EAAEC,EAAEC,EAAEe,GAAuE,OAApEjB,EAAE6qB,GAAG,GAAG7qB,EAAEiB,EAAEhB,IAAKd,YAAYsE,EAAGzD,EAAE4sB,MAAM1sB,EAAEF,EAAE0N,UAAU,CAACiyB,UAAS,GAAW3/B,CAAC,CAAC,SAASqxB,GAAGrxB,EAAEC,EAAEC,GAA8B,OAA3BF,EAAE6qB,GAAG,EAAE7qB,EAAE,KAAKC,IAAK2sB,MAAM1sB,EAASF,CAAC,CAC5W,SAASwxB,GAAGxxB,EAAEC,EAAEC,GAA8J,OAA3JD,EAAE4qB,GAAG,EAAE,OAAO7qB,EAAEsH,SAAStH,EAAEsH,SAAS,GAAGtH,EAAEna,IAAIoa,IAAK2sB,MAAM1sB,EAAED,EAAEyN,UAAU,CAAC+G,cAAczU,EAAEyU,cAAcyvB,gBAAgB,KAAK3S,eAAevxB,EAAEuxB,gBAAuBtxB,CAAC,CACtL,SAASkkC,GAAGnkC,EAAEC,EAAEC,EAAEe,EAAE5N,GAAGvM,KAAKqN,IAAI8L,EAAEnZ,KAAK2tB,cAAczU,EAAElZ,KAAK+7C,aAAa/7C,KAAKsyC,UAAUtyC,KAAK6oB,QAAQ7oB,KAAKo9C,gBAAgB,KAAKp9C,KAAKk8C,eAAe,EAAEl8C,KAAK86C,aAAa96C,KAAKk0C,eAAel0C,KAAKimC,QAAQ,KAAKjmC,KAAKk7C,iBAAiB,EAAEl7C,KAAK4rB,WAAWF,GAAG,GAAG1rB,KAAK+6C,gBAAgBrvB,IAAI,GAAG1rB,KAAKqrB,eAAerrB,KAAKg8C,cAAch8C,KAAKw8C,iBAAiBx8C,KAAKg7C,aAAah7C,KAAKorB,YAAYprB,KAAKmrB,eAAenrB,KAAKkrB,aAAa,EAAElrB,KAAKsrB,cAAcI,GAAG,GAAG1rB,KAAKqxC,iBAAiBl3B,EAAEna,KAAK68C,mBAAmBtwC,EAAEvM,KAAKs9C,gCAC/e,IAAI,CAAC,SAASC,GAAGrkC,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,EAAEC,EAAEqD,EAAEC,GAAgN,OAA7MzE,EAAE,IAAImkC,GAAGnkC,EAAEC,EAAEC,EAAEsE,EAAEC,GAAG,IAAIxE,GAAGA,EAAE,GAAE,IAAKiB,IAAIjB,GAAG,IAAIA,EAAE,EAAEiB,EAAE2pB,GAAG,EAAE,KAAK,KAAK5qB,GAAGD,EAAE2P,QAAQzO,EAAEA,EAAEwM,UAAU1N,EAAEkB,EAAEmO,cAAc,CAACnQ,QAAQ+B,EAAEuT,aAAatU,EAAE5N,MAAM,KAAK+nC,YAAY,KAAKiK,0BAA0B,MAAM9W,GAAGtsB,GAAUlB,CAAC,CACzP,SAASukC,GAAGvkC,GAAG,IAAIA,EAAE,OAAOqoB,GAAuBroB,EAAE,CAAC,GAAGgP,GAA1BhP,EAAEA,EAAEsvB,mBAA8BtvB,GAAG,IAAIA,EAAE7L,IAAI,MAAMuK,MAAMqB,EAAE,MAAM,IAAIE,EAAED,EAAE,EAAE,CAAC,OAAOC,EAAE9L,KAAK,KAAK,EAAE8L,EAAEA,EAAEyN,UAAUqf,QAAQ,MAAM/sB,EAAE,KAAK,EAAE,GAAG6oB,GAAG5oB,EAAE1I,MAAM,CAAC0I,EAAEA,EAAEyN,UAAU0b,0CAA0C,MAAMppB,CAAC,EAAEC,EAAEA,EAAEiP,MAAM,OAAO,OAAOjP,GAAG,MAAMvB,MAAMqB,EAAE,KAAM,CAAC,GAAG,IAAIC,EAAE7L,IAAI,CAAC,IAAI+L,EAAEF,EAAEzI,KAAK,GAAGsxB,GAAG3oB,GAAG,OAAO+oB,GAAGjpB,EAAEE,EAAED,EAAE,CAAC,OAAOA,CAAC,CACpW,SAASukC,GAAGxkC,EAAEC,EAAEC,EAAEe,EAAE5N,EAAE6N,EAAEC,EAAEqD,EAAEC,GAAwK,OAArKzE,EAAEqkC,GAAGnkC,EAAEe,GAAE,EAAGjB,EAAE3M,EAAE6N,EAAEC,EAAEqD,EAAEC,IAAKsoB,QAAQwX,GAAG,MAAMrkC,EAAEF,EAAE2P,SAAsBzO,EAAE+sB,GAAhBhtB,EAAEuuB,KAAIn8B,EAAEo8B,GAAGvvB,KAAemuB,cAAS,IAASpuB,GAAG,OAAOA,EAAEA,EAAE,KAAKquB,GAAGpuB,EAAEgB,EAAE7N,GAAG2M,EAAE2P,QAAQid,MAAMv5B,EAAEof,GAAGzS,EAAE3M,EAAE4N,GAAG0gC,GAAG3hC,EAAEiB,GAAUjB,CAAC,CAAC,SAASykC,GAAGzkC,EAAEC,EAAEC,EAAEe,GAAG,IAAI5N,EAAE4M,EAAE0P,QAAQzO,EAAEsuB,KAAIruB,EAAEsuB,GAAGp8B,GAAsL,OAAnL6M,EAAEqkC,GAAGrkC,GAAG,OAAOD,EAAE8sB,QAAQ9sB,EAAE8sB,QAAQ7sB,EAAED,EAAE+6B,eAAe96B,GAAED,EAAEguB,GAAG/sB,EAAEC,IAAKitB,QAAQ,CAAClvB,QAAQc,GAAuB,QAApBiB,OAAE,IAASA,EAAE,KAAKA,KAAahB,EAAEouB,SAASptB,GAAe,QAAZjB,EAAEsuB,GAAGj7B,EAAE4M,EAAEkB,MAAcuuB,GAAG1vB,EAAE3M,EAAE8N,EAAED,GAAGstB,GAAGxuB,EAAE3M,EAAE8N,IAAWA,CAAC,CAC3b,SAASujC,GAAG1kC,GAAe,OAAZA,EAAEA,EAAE2P,SAAcF,OAAyBzP,EAAEyP,MAAMtb,IAAoD6L,EAAEyP,MAAM/B,WAAhF,IAA0F,CAAC,SAASi3B,GAAG3kC,EAAEC,GAAqB,GAAG,QAArBD,EAAEA,EAAEqP,gBAA2B,OAAOrP,EAAEsP,WAAW,CAAC,IAAIpP,EAAEF,EAAEmrB,UAAUnrB,EAAEmrB,UAAU,IAAIjrB,GAAGA,EAAED,EAAEC,EAAED,CAAC,CAAC,CAAC,SAAS2kC,GAAG5kC,EAAEC,GAAG0kC,GAAG3kC,EAAEC,IAAID,EAAEA,EAAEiP,YAAY01B,GAAG3kC,EAAEC,EAAE,CAnB7SogC,GAAG,SAASrgC,EAAEC,EAAEC,GAAG,GAAG,OAAOF,EAAE,GAAGA,EAAEyrB,gBAAgBxrB,EAAE+qB,cAAczC,GAAG5Y,QAAQkd,IAAG,MAAO,CAAC,GAAG,KAAK7sB,EAAE4sB,MAAM1sB,IAAI,KAAa,IAARD,EAAEkP,OAAW,OAAO0d,IAAG,EAzE1I,SAAY7sB,EAAEC,EAAEC,GAAG,OAAOD,EAAE9L,KAAK,KAAK,EAAE4mC,GAAG96B,GAAG0rB,KAAK,MAAM,KAAK,EAAE0G,GAAGpyB,GAAG,MAAM,KAAK,EAAE4oB,GAAG5oB,EAAE1I,OAAO4xB,GAAGlpB,GAAG,MAAM,KAAK,EAAEiyB,GAAGjyB,EAAEA,EAAEyN,UAAU+G,eAAe,MAAM,KAAK,GAAG,IAAIxT,EAAEhB,EAAE1I,KAAKwN,SAAS1R,EAAE4M,EAAEwrB,cAAcjiC,MAAM4+B,GAAE4D,GAAG/qB,EAAEqrB,eAAerrB,EAAEqrB,cAAcj5B,EAAE,MAAM,KAAK,GAAqB,GAAG,QAArB4N,EAAEhB,EAAEoP,eAA2B,OAAG,OAAOpO,EAAEqO,YAAkB8Y,GAAEmK,GAAY,EAAVA,GAAE5iB,SAAW1P,EAAEkP,OAAO,IAAI,MAAQ,KAAKjP,EAAED,EAAEwP,MAAM+c,YAAmBgP,GAAGx7B,EAAEC,EAAEC,IAAGkoB,GAAEmK,GAAY,EAAVA,GAAE5iB,SAA8B,QAAnB3P,EAAE45B,GAAG55B,EAAEC,EAAEC,IAAmBF,EAAE0P,QAAQ,MAAK0Y,GAAEmK,GAAY,EAAVA,GAAE5iB,SAAW,MAAM,KAAK,GAC7d,GADge1O,EAAE,KAAKf,EACrfD,EAAEusB,YAAe,KAAa,IAARxsB,EAAEmP,OAAW,CAAC,GAAGlO,EAAE,OAAO27B,GAAG58B,EAAEC,EAAEC,GAAGD,EAAEkP,OAAO,GAAG,CAA6F,GAA1E,QAAlB9b,EAAE4M,EAAEoP,iBAAyBhc,EAAEkpC,UAAU,KAAKlpC,EAAEqpC,KAAK,KAAKrpC,EAAEiiC,WAAW,MAAMlN,GAAEmK,GAAEA,GAAE5iB,SAAY1O,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOhB,EAAE2sB,MAAM,EAAEsN,GAAGl6B,EAAEC,EAAEC,GAAG,OAAO05B,GAAG55B,EAAEC,EAAEC,EAAE,CAwE7G2kC,CAAG7kC,EAAEC,EAAEC,GAAG2sB,GAAG,KAAa,OAAR7sB,EAAEmP,MAAmB,MAAM0d,IAAG,EAAGnC,IAAG,KAAa,QAARzqB,EAAEkP,QAAgBkb,GAAGpqB,EAAE6pB,GAAG7pB,EAAEpZ,OAAiB,OAAVoZ,EAAE2sB,MAAM,EAAS3sB,EAAE9L,KAAK,KAAK,EAAE,IAAI8M,EAAEhB,EAAE1I,KAAKmjC,GAAG16B,EAAEC,GAAGD,EAAEC,EAAE+qB,aAAa,IAAI33B,EAAEo1B,GAAGxoB,EAAEqoB,GAAE3Y,SAAS8c,GAAGxsB,EAAEC,GAAG7M,EAAEqgC,GAAG,KAAKzzB,EAAEgB,EAAEjB,EAAE3M,EAAE6M,GAAG,IAAIgB,EAAE6yB,KACvI,OAD4I9zB,EAAEkP,OAAO,EAAE,kBAAkB9b,GAAG,OAAOA,GAAG,oBAAoBA,EAAEuR,aAAQ,IAASvR,EAAEyR,UAAU7E,EAAE9L,IAAI,EAAE8L,EAAEoP,cAAc,KAAKpP,EAAEwtB,YAC1e,KAAK5E,GAAG5nB,IAAIC,GAAE,EAAGioB,GAAGlpB,IAAIiB,GAAE,EAAGjB,EAAEoP,cAAc,OAAOhc,EAAE68B,YAAO,IAAS78B,EAAE68B,MAAM78B,EAAE68B,MAAM,KAAK1C,GAAGvtB,GAAG5M,EAAE88B,QAAQf,GAAGnvB,EAAEyN,UAAUra,EAAEA,EAAEi8B,gBAAgBrvB,EAAEswB,GAAGtwB,EAAEgB,EAAEjB,EAAEE,GAAGD,EAAE66B,GAAG,KAAK76B,EAAEgB,GAAE,EAAGC,EAAEhB,KAAKD,EAAE9L,IAAI,EAAEu2B,IAAGxpB,GAAGopB,GAAGrqB,GAAGy5B,GAAG,KAAKz5B,EAAE5M,EAAE6M,GAAGD,EAAEA,EAAEwP,OAAcxP,EAAE,KAAK,GAAGgB,EAAEhB,EAAEd,YAAYa,EAAE,CAAqF,OAApF06B,GAAG16B,EAAEC,GAAGD,EAAEC,EAAE+qB,aAAuB/pB,GAAV5N,EAAE4N,EAAEgE,OAAUhE,EAAE+D,UAAU/E,EAAE1I,KAAK0J,EAAE5N,EAAE4M,EAAE9L,IAQtU,SAAY6L,GAAG,GAAG,oBAAoBA,EAAE,OAAO85B,GAAG95B,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAE8E,YAAgB1B,EAAG,OAAO,GAAG,GAAGpD,IAAIuD,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAR2LuhC,CAAG7jC,GAAGjB,EAAE8rB,GAAG7qB,EAAEjB,GAAU3M,GAAG,KAAK,EAAE4M,EAAEg6B,GAAG,KAAKh6B,EAAEgB,EAAEjB,EAAEE,GAAG,MAAMF,EAAE,KAAK,EAAEC,EAAEw6B,GAAG,KAAKx6B,EAAEgB,EAAEjB,EAAEE,GAAG,MAAMF,EAAE,KAAK,GAAGC,EAAE05B,GAAG,KAAK15B,EAAEgB,EAAEjB,EAAEE,GAAG,MAAMF,EAAE,KAAK,GAAGC,EAAE45B,GAAG,KAAK55B,EAAEgB,EAAE6qB,GAAG7qB,EAAE1J,KAAKyI,GAAGE,GAAG,MAAMF,EAAE,MAAMtB,MAAMqB,EAAE,IACvgBkB,EAAE,IAAK,CAAC,OAAOhB,EAAE,KAAK,EAAE,OAAOgB,EAAEhB,EAAE1I,KAAKlE,EAAE4M,EAAE+qB,aAA2CiP,GAAGj6B,EAAEC,EAAEgB,EAArC5N,EAAE4M,EAAEd,cAAc8B,EAAE5N,EAAEy4B,GAAG7qB,EAAE5N,GAAc6M,GAAG,KAAK,EAAE,OAAOe,EAAEhB,EAAE1I,KAAKlE,EAAE4M,EAAE+qB,aAA2CyP,GAAGz6B,EAAEC,EAAEgB,EAArC5N,EAAE4M,EAAEd,cAAc8B,EAAE5N,EAAEy4B,GAAG7qB,EAAE5N,GAAc6M,GAAG,KAAK,EAAEF,EAAE,CAAO,GAAN+6B,GAAG96B,GAAM,OAAOD,EAAE,MAAMtB,MAAMqB,EAAE,MAAMkB,EAAEhB,EAAE+qB,aAA+B33B,GAAlB6N,EAAEjB,EAAEoP,eAAkBnQ,QAAQ8uB,GAAGhuB,EAAEC,GAAGyuB,GAAGzuB,EAAEgB,EAAE,KAAKf,GAAG,IAAIiB,EAAElB,EAAEoP,cAA0B,GAAZpO,EAAEE,EAAEjC,QAAWgC,EAAEsT,aAAY,CAAC,GAAGtT,EAAE,CAAChC,QAAQ+B,EAAEuT,cAAa,EAAGliB,MAAM6O,EAAE7O,MAAMgyC,0BAA0BnjC,EAAEmjC,0BAA0BjK,YAAYl5B,EAAEk5B,aAAap6B,EAAEwtB,YAAYC,UAChfxsB,EAAEjB,EAAEoP,cAAcnO,EAAU,IAARjB,EAAEkP,MAAU,CAAuBlP,EAAEg7B,GAAGj7B,EAAEC,EAAEgB,EAAEf,EAAjC7M,EAAE+kC,GAAG15B,MAAMqB,EAAE,MAAME,IAAmB,MAAMD,CAAC,CAAM,GAAGiB,IAAI5N,EAAE,CAAuB4M,EAAEg7B,GAAGj7B,EAAEC,EAAEgB,EAAEf,EAAjC7M,EAAE+kC,GAAG15B,MAAMqB,EAAE,MAAME,IAAmB,MAAMD,CAAC,CAAM,IAAIyqB,GAAGjD,GAAGvnB,EAAEyN,UAAU+G,cAAcxM,YAAYuiB,GAAGvqB,EAAEyqB,IAAE,EAAGC,GAAG,KAAKzqB,EAAE0xB,GAAG3xB,EAAE,KAAKgB,EAAEf,GAAGD,EAAEwP,MAAMvP,EAAEA,GAAGA,EAAEiP,OAAe,EAATjP,EAAEiP,MAAS,KAAKjP,EAAEA,EAAEwP,OAAQ,KAAI,CAAM,GAALic,KAAQ1qB,IAAI5N,EAAE,CAAC4M,EAAE25B,GAAG55B,EAAEC,EAAEC,GAAG,MAAMF,CAAC,CAAC05B,GAAG15B,EAAEC,EAAEgB,EAAEf,EAAE,CAACD,EAAEA,EAAEwP,KAAK,CAAC,OAAOxP,EAAE,KAAK,EAAE,OAAOoyB,GAAGpyB,GAAG,OAAOD,GAAGsrB,GAAGrrB,GAAGgB,EAAEhB,EAAE1I,KAAKlE,EAAE4M,EAAE+qB,aAAa9pB,EAAE,OAAOlB,EAAEA,EAAEyrB,cAAc,KAAKtqB,EAAE9N,EAAEiU,SAASuf,GAAG5lB,EAAE5N,GAAG8N,EAAE,KAAK,OAAOD,GAAG2lB,GAAG5lB,EAAEC,KAAKjB,EAAEkP,OAAO,IACnfqrB,GAAGx6B,EAAEC,GAAGy5B,GAAG15B,EAAEC,EAAEkB,EAAEjB,GAAGD,EAAEwP,MAAM,KAAK,EAAE,OAAO,OAAOzP,GAAGsrB,GAAGrrB,GAAG,KAAK,KAAK,GAAG,OAAOu7B,GAAGx7B,EAAEC,EAAEC,GAAG,KAAK,EAAE,OAAOgyB,GAAGjyB,EAAEA,EAAEyN,UAAU+G,eAAexT,EAAEhB,EAAE+qB,aAAa,OAAOhrB,EAAEC,EAAEwP,MAAMkiB,GAAG1xB,EAAE,KAAKgB,EAAEf,GAAGw5B,GAAG15B,EAAEC,EAAEgB,EAAEf,GAAGD,EAAEwP,MAAM,KAAK,GAAG,OAAOxO,EAAEhB,EAAE1I,KAAKlE,EAAE4M,EAAE+qB,aAA2C2O,GAAG35B,EAAEC,EAAEgB,EAArC5N,EAAE4M,EAAEd,cAAc8B,EAAE5N,EAAEy4B,GAAG7qB,EAAE5N,GAAc6M,GAAG,KAAK,EAAE,OAAOw5B,GAAG15B,EAAEC,EAAEA,EAAE+qB,aAAa9qB,GAAGD,EAAEwP,MAAM,KAAK,EAAmD,KAAK,GAAG,OAAOiqB,GAAG15B,EAAEC,EAAEA,EAAE+qB,aAAa1jB,SAASpH,GAAGD,EAAEwP,MAAM,KAAK,GAAGzP,EAAE,CACxZ,GADyZiB,EAAEhB,EAAE1I,KAAKwN,SAAS1R,EAAE4M,EAAE+qB,aAAa9pB,EAAEjB,EAAEwrB,cAClftqB,EAAE9N,EAAE7J,MAAM4+B,GAAE4D,GAAG/qB,EAAEqrB,eAAerrB,EAAEqrB,cAAcnrB,EAAK,OAAOD,EAAE,GAAGkf,GAAGlf,EAAE1X,MAAM2X,IAAI,GAAGD,EAAEoG,WAAWjU,EAAEiU,WAAWihB,GAAG5Y,QAAQ,CAAC1P,EAAE25B,GAAG55B,EAAEC,EAAEC,GAAG,MAAMF,CAAC,OAAO,IAAc,QAAVkB,EAAEjB,EAAEwP,SAAiBvO,EAAEgO,OAAOjP,GAAG,OAAOiB,GAAG,CAAC,IAAIsD,EAAEtD,EAAEwrB,aAAa,GAAG,OAAOloB,EAAE,CAACrD,EAAED,EAAEuO,MAAM,IAAI,IAAIhL,EAAED,EAAEmoB,aAAa,OAAOloB,GAAG,CAAC,GAAGA,EAAEsoB,UAAU9rB,EAAE,CAAC,GAAG,IAAIC,EAAE/M,IAAI,EAACsQ,EAAEwpB,IAAI,EAAE/tB,GAAGA,IAAK/L,IAAI,EAAE,IAAIoQ,EAAErD,EAAEusB,YAAY,GAAG,OAAOlpB,EAAE,CAAY,IAAIiK,GAAfjK,EAAEA,EAAEspB,QAAeC,QAAQ,OAAOtf,EAAE/J,EAAEwoB,KAAKxoB,GAAGA,EAAEwoB,KAAKze,EAAEye,KAAKze,EAAEye,KAAKxoB,GAAGF,EAAEupB,QAAQrpB,CAAC,CAAC,CAACvD,EAAE0rB,OAAO1sB,EAAgB,QAAduE,EAAEvD,EAAE+N,aAAqBxK,EAAEmoB,OAAO1sB,GAAGqsB,GAAGrrB,EAAEgO,OAClfhP,EAAED,GAAGuE,EAAEooB,OAAO1sB,EAAE,KAAK,CAACuE,EAAEA,EAAEwoB,IAAI,CAAC,MAAM,GAAG,KAAK/rB,EAAE/M,IAAIgN,EAAED,EAAE3J,OAAO0I,EAAE1I,KAAK,KAAK2J,EAAEuO,WAAW,GAAG,KAAKvO,EAAE/M,IAAI,CAAY,GAAG,QAAdgN,EAAED,EAAEgO,QAAmB,MAAMxQ,MAAMqB,EAAE,MAAMoB,EAAEyrB,OAAO1sB,EAAgB,QAAdsE,EAAErD,EAAE8N,aAAqBzK,EAAEooB,OAAO1sB,GAAGqsB,GAAGprB,EAAEjB,EAAED,GAAGkB,EAAED,EAAEwO,OAAO,MAAMvO,EAAED,EAAEuO,MAAM,GAAG,OAAOtO,EAAEA,EAAE+N,OAAOhO,OAAO,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAGA,IAAIlB,EAAE,CAACkB,EAAE,KAAK,KAAK,CAAa,GAAG,QAAfD,EAAEC,EAAEuO,SAAoB,CAACxO,EAAEgO,OAAO/N,EAAE+N,OAAO/N,EAAED,EAAE,KAAK,CAACC,EAAEA,EAAE+N,MAAM,CAAChO,EAAEC,CAAC,CAACu4B,GAAG15B,EAAEC,EAAE5M,EAAEiU,SAASpH,GAAGD,EAAEA,EAAEwP,KAAK,CAAC,OAAOxP,EAAE,KAAK,EAAE,OAAO5M,EAAE4M,EAAE1I,KAAK0J,EAAEhB,EAAE+qB,aAAa1jB,SAASmlB,GAAGxsB,EAAEC,GAAWe,EAAEA,EAAV5N,EAAEy5B,GAAGz5B,IAAU4M,EAAEkP,OAAO,EAAEuqB,GAAG15B,EAAEC,EAAEgB,EAAEf,GACpfD,EAAEwP,MAAM,KAAK,GAAG,OAAgBpc,EAAEy4B,GAAX7qB,EAAEhB,EAAE1I,KAAY0I,EAAE+qB,cAA6B6O,GAAG75B,EAAEC,EAAEgB,EAAtB5N,EAAEy4B,GAAG7qB,EAAE1J,KAAKlE,GAAc6M,GAAG,KAAK,GAAG,OAAO85B,GAAGh6B,EAAEC,EAAEA,EAAE1I,KAAK0I,EAAE+qB,aAAa9qB,GAAG,KAAK,GAAG,OAAOe,EAAEhB,EAAE1I,KAAKlE,EAAE4M,EAAE+qB,aAAa33B,EAAE4M,EAAEd,cAAc8B,EAAE5N,EAAEy4B,GAAG7qB,EAAE5N,GAAGqnC,GAAG16B,EAAEC,GAAGA,EAAE9L,IAAI,EAAE00B,GAAG5nB,IAAIjB,GAAE,EAAGmpB,GAAGlpB,IAAID,GAAE,EAAGysB,GAAGxsB,EAAEC,GAAG8vB,GAAG/vB,EAAEgB,EAAE5N,GAAGk9B,GAAGtwB,EAAEgB,EAAE5N,EAAE6M,GAAG46B,GAAG,KAAK76B,EAAEgB,GAAE,EAAGjB,EAAEE,GAAG,KAAK,GAAG,OAAO08B,GAAG58B,EAAEC,EAAEC,GAAG,KAAK,GAAG,OAAOg6B,GAAGl6B,EAAEC,EAAEC,GAAG,MAAMxB,MAAMqB,EAAE,IAAIE,EAAE9L,KAAM,EAYxC,IAAI4wC,GAAG,oBAAoBC,YAAYA,YAAY,SAAShlC,GAAGw4B,QAAQC,MAAMz4B,EAAE,EAAE,SAASilC,GAAGjlC,GAAGlZ,KAAKo+C,cAAcllC,CAAC,CACjI,SAASmlC,GAAGnlC,GAAGlZ,KAAKo+C,cAAcllC,CAAC,CAC5J,SAASolC,GAAGplC,GAAG,SAASA,GAAG,IAAIA,EAAE1H,UAAU,IAAI0H,EAAE1H,UAAU,KAAK0H,EAAE1H,SAAS,CAAC,SAAS+sC,GAAGrlC,GAAG,SAASA,GAAG,IAAIA,EAAE1H,UAAU,IAAI0H,EAAE1H,UAAU,KAAK0H,EAAE1H,WAAW,IAAI0H,EAAE1H,UAAU,iCAAiC0H,EAAEwI,WAAW,CAAC,SAAS88B,KAAK,CAExa,SAASC,GAAGvlC,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,IAAI6N,EAAEhB,EAAE4+B,oBAAoB,GAAG59B,EAAE,CAAC,IAAIC,EAAED,EAAE,GAAG,oBAAoB7N,EAAE,CAAC,IAAImR,EAAEnR,EAAEA,EAAE,WAAW,IAAI2M,EAAE0kC,GAAGvjC,GAAGqD,EAAE1e,KAAKka,EAAE,CAAC,CAACykC,GAAGxkC,EAAEkB,EAAEnB,EAAE3M,EAAE,MAAM8N,EADxJ,SAAYnB,EAAEC,EAAEC,EAAEe,EAAE5N,GAAG,GAAGA,EAAE,CAAC,GAAG,oBAAoB4N,EAAE,CAAC,IAAIC,EAAED,EAAEA,EAAE,WAAW,IAAIjB,EAAE0kC,GAAGvjC,GAAGD,EAAEpb,KAAKka,EAAE,CAAC,CAAC,IAAImB,EAAEqjC,GAAGvkC,EAAEgB,EAAEjB,EAAE,EAAE,MAAK,EAAG,EAAG,GAAGslC,IAAmF,OAA/EtlC,EAAE8+B,oBAAoB39B,EAAEnB,EAAE0lB,IAAIvkB,EAAEwO,QAAQoV,GAAG,IAAI/kB,EAAE1H,SAAS0H,EAAEoN,WAAWpN,GAAGkjC,KAAY/hC,CAAC,CAAC,KAAK9N,EAAE2M,EAAEuI,WAAWvI,EAAEkI,YAAY7U,GAAG,GAAG,oBAAoB4N,EAAE,CAAC,IAAIuD,EAAEvD,EAAEA,EAAE,WAAW,IAAIjB,EAAE0kC,GAAGjgC,GAAGD,EAAE1e,KAAKka,EAAE,CAAC,CAAC,IAAIyE,EAAE4/B,GAAGrkC,EAAE,GAAE,EAAG,KAAK,GAAK,EAAG,EAAG,GAAGslC,IAA0G,OAAtGtlC,EAAE8+B,oBAAoBr6B,EAAEzE,EAAE0lB,IAAIjhB,EAAEkL,QAAQoV,GAAG,IAAI/kB,EAAE1H,SAAS0H,EAAEoN,WAAWpN,GAAGkjC,IAAG,WAAWuB,GAAGxkC,EAAEwE,EAAEvE,EAAEe,EAAE,IAAUwD,CAAC,CACpU+gC,CAAGtlC,EAAED,EAAED,EAAE3M,EAAE4N,GAAG,OAAOyjC,GAAGvjC,EAAE,CAHpLgkC,GAAGx/C,UAAUif,OAAOqgC,GAAGt/C,UAAUif,OAAO,SAAS5E,GAAG,IAAIC,EAAEnZ,KAAKo+C,cAAc,GAAG,OAAOjlC,EAAE,MAAMvB,MAAMqB,EAAE,MAAM0kC,GAAGzkC,EAAEC,EAAE,KAAK,KAAK,EAAEklC,GAAGx/C,UAAU8/C,QAAQR,GAAGt/C,UAAU8/C,QAAQ,WAAW,IAAIzlC,EAAElZ,KAAKo+C,cAAc,GAAG,OAAOllC,EAAE,CAAClZ,KAAKo+C,cAAc,KAAK,IAAIjlC,EAAED,EAAEyU,cAAcyuB,IAAG,WAAWuB,GAAG,KAAKzkC,EAAE,KAAK,KAAK,IAAGC,EAAEylB,IAAI,IAAI,CAAC,EACzTyf,GAAGx/C,UAAU+/C,2BAA2B,SAAS1lC,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAEgT,KAAKjT,EAAE,CAACiU,UAAU,KAAKhH,OAAOjN,EAAEuU,SAAStU,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAEwT,GAAGzuB,QAAQ,IAAIgb,GAAGA,EAAEyT,GAAGxT,GAAGqU,SAASrU,KAAKwT,GAAG3b,OAAOmI,EAAE,EAAEF,GAAG,IAAIE,GAAGmU,GAAGrU,EAAE,CAAC,EAEX8S,GAAG,SAAS9S,GAAG,OAAOA,EAAE7L,KAAK,KAAK,EAAE,IAAI8L,EAAED,EAAE0N,UAAU,GAAGzN,EAAE0P,QAAQN,cAAcmF,aAAa,CAAC,IAAItU,EAAE4R,GAAG7R,EAAE+R,cAAc,IAAI9R,IAAIyS,GAAG1S,EAAI,EAAFC,GAAKyhC,GAAG1hC,EAAEqQ,MAAK,KAAO,EAAFie,MAAOmP,GAAGptB,KAAI,IAAIoZ,MAAM,CAAC,MAAM,KAAK,GAAGwZ,IAAG,WAAW,IAAIjjC,EAAEqtB,GAAGttB,EAAE,GAAG,GAAG,OAAOC,EAAE,CAAC,IAAIC,EAAEsvB,KAAIE,GAAGzvB,EAAED,EAAE,EAAEE,EAAE,CAAC,IAAG0kC,GAAG5kC,EAAE,GAAG,EAC/b+S,GAAG,SAAS/S,GAAG,GAAG,KAAKA,EAAE7L,IAAI,CAAC,IAAI8L,EAAEqtB,GAAGttB,EAAE,WAAW,GAAG,OAAOC,EAAayvB,GAAGzvB,EAAED,EAAE,UAAXwvB,MAAwBoV,GAAG5kC,EAAE,UAAU,CAAC,EAAEgT,GAAG,SAAShT,GAAG,GAAG,KAAKA,EAAE7L,IAAI,CAAC,IAAI8L,EAAEwvB,GAAGzvB,GAAGE,EAAEotB,GAAGttB,EAAEC,GAAG,GAAG,OAAOC,EAAawvB,GAAGxvB,EAAEF,EAAEC,EAAXuvB,MAAgBoV,GAAG5kC,EAAEC,EAAE,CAAC,EAAEgT,GAAG,WAAW,OAAOL,EAAC,EAAEM,GAAG,SAASlT,EAAEC,GAAG,IAAIC,EAAE0S,GAAE,IAAI,OAAOA,GAAE5S,EAAEC,GAAG,CAAC,QAAQ2S,GAAE1S,CAAC,CAAC,EAClSmN,GAAG,SAASrN,EAAEC,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAyB,GAAjB0G,EAAG3G,EAAEE,GAAGD,EAAEC,EAAE3L,KAAQ,UAAU2L,EAAE3I,MAAM,MAAM0I,EAAE,CAAC,IAAIC,EAAEF,EAAEE,EAAEkN,YAAYlN,EAAEA,EAAEkN,WAAsF,IAA3ElN,EAAEA,EAAEylC,iBAAiB,cAAcC,KAAKC,UAAU,GAAG5lC,GAAG,mBAAuBA,EAAE,EAAEA,EAAEC,EAAEjb,OAAOgb,IAAI,CAAC,IAAIgB,EAAEf,EAAED,GAAG,GAAGgB,IAAIjB,GAAGiB,EAAE6kC,OAAO9lC,EAAE8lC,KAAK,CAAC,IAAIzyC,EAAEsa,GAAG1M,GAAG,IAAI5N,EAAE,MAAMqL,MAAMqB,EAAE,KAAK+F,EAAG7E,GAAG0F,EAAG1F,EAAE5N,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAWmU,GAAGxH,EAAEE,GAAG,MAAM,IAAK,SAAmB,OAAVD,EAAEC,EAAE1W,QAAewd,GAAGhH,IAAIE,EAAEg9B,SAASj9B,GAAE,GAAI,EAAE6N,GAAGm1B,GAAGl1B,GAAGm1B,GACpa,IAAI6C,GAAG,CAACC,uBAAsB,EAAGC,OAAO,CAACx4B,GAAG4R,GAAG1R,GAAGC,GAAGC,GAAGo1B,KAAKiD,GAAG,CAACC,wBAAwB7xB,GAAG8xB,WAAW,EAAEC,QAAQ,SAASC,oBAAoB,aAC1IC,GAAG,CAACH,WAAWF,GAAGE,WAAWC,QAAQH,GAAGG,QAAQC,oBAAoBJ,GAAGI,oBAAoBE,eAAeN,GAAGM,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,gBAAgB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBxkC,EAAGowB,uBAAuBqU,wBAAwB,SAASnnC,GAAW,OAAO,QAAfA,EAAEwP,GAAGxP,IAAmB,KAAKA,EAAE0N,SAAS,EAAEy4B,wBAAwBD,GAAGC,yBARjN,WAAc,OAAO,IAAI,EASpUiB,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,KAAKC,kBAAkB,kCAAkC,GAAG,qBAAqBC,+BAA+B,CAAC,IAAIC,GAAGD,+BAA+B,IAAIC,GAAGC,YAAYD,GAAGE,cAAc,IAAIz2B,GAAGu2B,GAAGG,OAAOvB,IAAIl1B,GAAGs2B,EAAE,CAAC,MAAM3nC,IAAG,CAAC,CAAC/Z,EAAQ0c,mDAAmDojC,GAC9Y9/C,EAAQ8hD,aAAa,SAAS/nC,EAAEC,GAAG,IAAIC,EAAE,EAAElb,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIogD,GAAGnlC,GAAG,MAAMvB,MAAMqB,EAAE,MAAM,OAbuH,SAAYC,EAAEC,EAAEC,GAAG,IAAIe,EAAE,EAAEjc,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAAC8f,SAAShC,EAAGjd,IAAI,MAAMob,EAAE,KAAK,GAAGA,EAAEqG,SAAStH,EAAEyU,cAAcxU,EAAEsxB,eAAerxB,EAAE,CAa1R8nC,CAAGhoC,EAAEC,EAAE,KAAKC,EAAE,EAAEja,EAAQgiD,WAAW,SAASjoC,EAAEC,GAAG,IAAImlC,GAAGplC,GAAG,MAAMtB,MAAMqB,EAAE,MAAM,IAAIG,GAAE,EAAGe,EAAE,GAAG5N,EAAE0xC,GAA4P,OAAzP,OAAO9kC,QAAG,IAASA,KAAI,IAAKA,EAAEioC,sBAAsBhoC,GAAE,QAAI,IAASD,EAAEk4B,mBAAmBl3B,EAAEhB,EAAEk4B,uBAAkB,IAASl4B,EAAE0jC,qBAAqBtwC,EAAE4M,EAAE0jC,qBAAqB1jC,EAAEokC,GAAGrkC,EAAE,GAAE,EAAG,KAAK,EAAKE,EAAE,EAAGe,EAAE5N,GAAG2M,EAAE0lB,IAAIzlB,EAAE0P,QAAQoV,GAAG,IAAI/kB,EAAE1H,SAAS0H,EAAEoN,WAAWpN,GAAU,IAAIilC,GAAGhlC,EAAE,EACrfha,EAAQkiD,YAAY,SAASnoC,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAE1H,SAAS,OAAO0H,EAAE,IAAIC,EAAED,EAAEsvB,gBAAgB,QAAG,IAASrvB,EAAE,CAAC,GAAG,oBAAoBD,EAAE4E,OAAO,MAAMlG,MAAMqB,EAAE,MAAiC,MAA3BC,EAAEta,OAAOqG,KAAKiU,GAAGja,KAAK,KAAW2Y,MAAMqB,EAAE,IAAIC,GAAI,CAAqC,OAA5BA,EAAE,QAAVA,EAAEwP,GAAGvP,IAAc,KAAKD,EAAE0N,SAAkB,EAAEznB,EAAQmiD,UAAU,SAASpoC,GAAG,OAAOkjC,GAAGljC,EAAE,EAAE/Z,EAAQoiD,QAAQ,SAASroC,EAAEC,EAAEC,GAAG,IAAImlC,GAAGplC,GAAG,MAAMvB,MAAMqB,EAAE,MAAM,OAAOwlC,GAAG,KAAKvlC,EAAEC,GAAE,EAAGC,EAAE,EAC/Yja,EAAQqiD,YAAY,SAAStoC,EAAEC,EAAEC,GAAG,IAAIklC,GAAGplC,GAAG,MAAMtB,MAAMqB,EAAE,MAAM,IAAIkB,EAAE,MAAMf,GAAGA,EAAEqoC,iBAAiB,KAAKl1C,GAAE,EAAG6N,EAAE,GAAGC,EAAE4jC,GAAyO,GAAtO,OAAO7kC,QAAG,IAASA,KAAI,IAAKA,EAAEgoC,sBAAsB70C,GAAE,QAAI,IAAS6M,EAAEi4B,mBAAmBj3B,EAAEhB,EAAEi4B,uBAAkB,IAASj4B,EAAEyjC,qBAAqBxiC,EAAEjB,EAAEyjC,qBAAqB1jC,EAAEukC,GAAGvkC,EAAE,KAAKD,EAAE,EAAE,MAAME,EAAEA,EAAE,KAAK7M,EAAE,EAAG6N,EAAEC,GAAGnB,EAAE0lB,IAAIzlB,EAAE0P,QAAQoV,GAAG/kB,GAAMiB,EAAE,IAAIjB,EAAE,EAAEA,EAAEiB,EAAEhc,OAAO+a,IAA2B3M,GAAhBA,GAAP6M,EAAEe,EAAEjB,IAAOwoC,aAAgBtoC,EAAEuoC,SAAS,MAAMxoC,EAAEmkC,gCAAgCnkC,EAAEmkC,gCAAgC,CAAClkC,EAAE7M,GAAG4M,EAAEmkC,gCAAgCh/C,KAAK8a,EACvhB7M,GAAG,OAAO,IAAI8xC,GAAGllC,EAAE,EAAEha,EAAQ2e,OAAO,SAAS5E,EAAEC,EAAEC,GAAG,IAAImlC,GAAGplC,GAAG,MAAMvB,MAAMqB,EAAE,MAAM,OAAOwlC,GAAG,KAAKvlC,EAAEC,GAAE,EAAGC,EAAE,EAAEja,EAAQyiD,uBAAuB,SAAS1oC,GAAG,IAAIqlC,GAAGrlC,GAAG,MAAMtB,MAAMqB,EAAE,KAAK,QAAOC,EAAE8+B,sBAAqBoE,IAAG,WAAWqC,GAAG,KAAK,KAAKvlC,GAAE,GAAG,WAAWA,EAAE8+B,oBAAoB,KAAK9+B,EAAE0lB,IAAI,IAAI,GAAE,KAAG,EAAM,EAAEz/B,EAAQ0iD,wBAAwB1F,GAC/Uh9C,EAAQ2iD,oCAAoC,SAAS5oC,EAAEC,EAAEC,EAAEe,GAAG,IAAIokC,GAAGnlC,GAAG,MAAMxB,MAAMqB,EAAE,MAAM,GAAG,MAAMC,QAAG,IAASA,EAAEsvB,gBAAgB,MAAM5wB,MAAMqB,EAAE,KAAK,OAAOwlC,GAAGvlC,EAAEC,EAAEC,GAAE,EAAGe,EAAE,EAAEhb,EAAQogD,QAAQ,oEChU7L,IAAI73B,EAAIpoB,EAAQ,MAEdH,EAAQgiD,WAAaz5B,EAAEy5B,WACvBhiD,EAAQqiD,YAAc95B,EAAE85B,gDCH1B,SAASO,IAEP,GAC4C,qBAAnCnB,gCAC4C,oBAA5CA,+BAA+BmB,SAcxC,IAEEnB,+BAA+BmB,SAASA,EAC1C,CAAE,MAAOpqC,GAGP+5B,QAAQC,MAAMh6B,EAChB,CACF,CAKEoqC,GACA7iD,EAAOC,QAAU,EAAjBD,4BClCF,UAEI8iD,EAAO,CAAC,EAAW,SAAkB,EAUhC,SAAU7iD,EAAS8iD,GAC1B,aAEArjD,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAGT,IAAIw/C,EAAeC,EAAuBF,GAE1C,SAASE,EAAuBC,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnChjD,QAASgjD,EAEb,CAEAjjD,EAAQC,QAAU8iD,EAAa9iD,OACjC,OA1BgD,kFCFhD,UAEI4iD,EAAO,CAAC,EAAW,QAAS,SAAe,EAUtC,SAAU7iD,EAASmjD,EAAQC,GAClC,aAEA3jD,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAQqjD,6BAA+BA,EAEvC,IAAIC,EAAUN,EAAuBG,GAEjCI,EAAcP,EAAuBI,GAEzC,SAASJ,EAAuBC,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnChjD,QAASgjD,EAEb,CAEA,IAAIO,EAAW/jD,OAAOqe,QAAU,SAAUkJ,GACxC,IAAK,IAAIloB,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIwJ,EAASvJ,UAAUD,GAEvB,IAAK,IAAIc,KAAO0I,EACV7I,OAAOC,UAAUf,eAAekB,KAAKyI,EAAQ1I,KAC/ConB,EAAOpnB,GAAO0I,EAAO1I,GAG3B,CAEA,OAAOonB,CACT,EAEA,SAASy8B,EAAyBR,EAAKn9C,GACrC,IAAIkhB,EAAS,CAAC,EAEd,IAAK,IAAIloB,KAAKmkD,EACRn9C,EAAK0f,QAAQ1mB,IAAM,GAClBW,OAAOC,UAAUf,eAAekB,KAAKojD,EAAKnkD,KAC/CkoB,EAAOloB,GAAKmkD,EAAInkD,IAGlB,OAAOkoB,CACT,CAEA,SAAS08B,EAAgBplB,EAAUqlB,GACjC,KAAMrlB,aAAoBqlB,GACxB,MAAM,IAAIhvC,UAAU,oCAExB,CAEA,IAAIivC,EAAe,WACjB,SAASC,EAAiB78B,EAAQja,GAChC,IAAK,IAAIjO,EAAI,EAAGA,EAAIiO,EAAM/N,OAAQF,IAAK,CACrC,IAAIglD,EAAa/2C,EAAMjO,GACvBglD,EAAWrkC,WAAaqkC,EAAWrkC,aAAc,EACjDqkC,EAAWtkC,cAAe,EACtB,UAAWskC,IAAYA,EAAWC,UAAW,GACjDtkD,OAAOoF,eAAemiB,EAAQ88B,EAAWlkD,IAAKkkD,EAChD,CACF,CAEA,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYH,EAAiBF,EAAYjkD,UAAWskD,GACpDC,GAAaJ,EAAiBF,EAAaM,GACxCN,CACT,CACF,CAhBmB,GAkBnB,SAASO,EAA2BpxC,EAAMjT,GACxC,IAAKiT,EACH,MAAM,IAAIqxC,eAAe,6DAG3B,OAAOtkD,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BiT,EAAPjT,CAC5E,CAEA,SAASukD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI3vC,UAAU,kEAAoE2vC,GAG1FD,EAAS3kD,UAAYD,OAAOkwC,OAAO2U,GAAcA,EAAW5kD,UAAW,CACrEsP,YAAa,CACXzL,MAAO8gD,EACP5kC,YAAY,EACZskC,UAAU,EACVvkC,cAAc,KAGd8kC,IAAY7kD,OAAO8kD,eAAiB9kD,OAAO8kD,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAC7G,CAEA,IAAIG,GAAwB,EAC5B,SAASpB,EAA6BqB,GACpCD,EAAwBC,CAC1B,CAEA,IACEt8B,iBAAiB,OAAQ,KAAM3oB,OAAOoF,eAAe,CAAC,EAAG,UAAW,CAAE5D,IAAK,WACvEoiD,GAA6B,EAC/B,IACJ,CAAE,MAAOj2C,GAAI,CAEb,SAASu3C,IACP,IAAI1wC,EAAUlV,UAAUC,OAAS,QAAsBkG,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,CAAEigC,SAAS,GAE7F,OAAOylB,EAAwBxwC,EAAUA,EAAQ+qB,OACnD,CAOA,SAAS4lB,EAAY/rB,GACnB,GAAI,YAAaA,EAAO,CACtB,IAAIgsB,EAAkBhsB,EAAMvC,QAAQ,GAIpC,MAAO,CAAE8I,EAHGylB,EAAgBxyB,MAGTuW,EAFPic,EAAgBvyB,MAG9B,CAKA,MAAO,CAAE8M,EAHKvG,EAAM5G,QAGC2W,EAFP/P,EAAM3G,QAGtB,CAEA,IAAI4yB,EAAa,SAAUC,GAGzB,SAASD,IACP,IAAIE,EAEJtB,EAAgB7iD,KAAMikD,GAEtB,IAAK,IAAIG,EAAOlmD,UAAUC,OAAQ8V,EAAO1V,MAAM6lD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3EpwC,EAAKowC,GAAQnmD,UAAUmmD,GAGzB,IAAIC,EAAQjB,EAA2BrjD,MAAOmkD,EAAOF,EAAWN,WAAa/kD,OAAO2lD,eAAeN,IAAajlD,KAAKN,MAAMylD,EAAM,CAACnkD,MAAMs9B,OAAOrpB,KAW/I,OATAqwC,EAAME,kBAAoBF,EAAME,kBAAkBtmB,KAAKomB,GACvDA,EAAMG,iBAAmBH,EAAMG,iBAAiBvmB,KAAKomB,GACrDA,EAAMI,gBAAkBJ,EAAMI,gBAAgBxmB,KAAKomB,GAEnDA,EAAMK,aAAeL,EAAMK,aAAazmB,KAAKomB,GAC7CA,EAAMM,aAAeN,EAAMM,aAAa1mB,KAAKomB,GAC7CA,EAAMO,WAAaP,EAAMO,WAAW3mB,KAAKomB,GAEzCA,EAAMQ,cAAgBR,EAAMQ,cAAc5mB,KAAKomB,GACxCA,CACT,CA+JA,OAtLAf,EAAUU,EAAYC,GAyBtBnB,EAAakB,EAAY,CAAC,CACxBllD,IAAK,oBACL2D,MAAO,WACD1C,KAAK+kD,QACP/kD,KAAK+kD,OAAOx9B,iBAAiB,YAAavnB,KAAKykD,iBAAkBX,EAAwB,CACvF3lB,SAAS,EACTC,SAAS,IAGf,GACC,CACDr/B,IAAK,uBACL2D,MAAO,WACD1C,KAAK+kD,QACP/kD,KAAK+kD,OAAOv9B,oBAAoB,YAAaxnB,KAAKykD,iBAAkBX,EAAwB,CAC1F3lB,SAAS,EACTC,SAAS,IAGf,GACC,CACDr/B,IAAK,eACL2D,MAAO,SAAsBs1B,GACtBh4B,KAAKkM,MAAM84C,mBAIhBhlD,KAAKilD,WAAY,EAEjBrrC,SAAS2N,iBAAiB,UAAWvnB,KAAK6kD,YAC1CjrC,SAAS2N,iBAAiB,YAAavnB,KAAK4kD,cAE5C5kD,KAAKwkD,kBAAkBxsB,GACzB,GACC,CACDj5B,IAAK,eACL2D,MAAO,SAAsBs1B,GACtBh4B,KAAKilD,WAIVjlD,KAAKykD,iBAAiBzsB,EACxB,GACC,CACDj5B,IAAK,aACL2D,MAAO,SAAoBs1B,GACzBh4B,KAAKilD,WAAY,EAEjBrrC,SAAS4N,oBAAoB,UAAWxnB,KAAK6kD,YAC7CjrC,SAAS4N,oBAAoB,YAAaxnB,KAAK4kD,cAE/C5kD,KAAK0kD,gBAAgB1sB,EACvB,GACC,CACDj5B,IAAK,oBACL2D,MAAO,SAA2Bs1B,GAChC,IAAIktB,EAAenB,EAAY/rB,GAC3BuG,EAAI2mB,EAAa3mB,EACjBwJ,EAAImd,EAAand,EAErB/nC,KAAKmlD,UAAY,CAAE5mB,EAAGA,EAAGwJ,EAAGA,GAC5B/nC,KAAKkM,MAAMk5C,aAAaptB,EAC1B,GACC,CACDj5B,IAAK,mBACL2D,MAAO,SAA0Bs1B,GAC/B,GAAKh4B,KAAKmlD,UAAV,CAIA,IAAIE,EAAgBtB,EAAY/rB,GAC5BuG,EAAI8mB,EAAc9mB,EAClBwJ,EAAIsd,EAActd,EAElBjS,EAASyI,EAAIv+B,KAAKmlD,UAAU5mB,EAC5BvI,EAAS+R,EAAI/nC,KAAKmlD,UAAUpd,EAChC/nC,KAAKslD,QAAS,EAIatlD,KAAKkM,MAAMq5C,YAAY,CAChDhnB,EAAGzI,EACHiS,EAAG/R,GACFgC,IAEyBA,EAAMrH,YAChCqH,EAAM/H,iBAGRjwB,KAAKwlD,aAAe,CAAE1vB,OAAQA,EAAQE,OAAQA,EArB9C,CAsBF,GACC,CACDj3B,IAAK,kBACL2D,MAAO,SAAyBs1B,GAC9Bh4B,KAAKkM,MAAMu5C,WAAWztB,GAEtB,IAAI0tB,EAAY1lD,KAAKkM,MAAMw5C,UAGvB1lD,KAAKslD,QAAUtlD,KAAKwlD,eAClBxlD,KAAKwlD,aAAa1vB,QAAU4vB,EAC9B1lD,KAAKkM,MAAMy5C,YAAY,EAAG3tB,GACjBh4B,KAAKwlD,aAAa1vB,OAAS4vB,GACpC1lD,KAAKkM,MAAM05C,aAAa,EAAG5tB,GAEzBh4B,KAAKwlD,aAAaxvB,QAAU0vB,EAC9B1lD,KAAKkM,MAAM25C,UAAU,EAAG7tB,GACfh4B,KAAKwlD,aAAaxvB,OAAS0vB,GACpC1lD,KAAKkM,MAAM45C,YAAY,EAAG9tB,IAI9Bh4B,KAAKmlD,UAAY,KACjBnlD,KAAKslD,QAAS,EACdtlD,KAAKwlD,aAAe,IACtB,GACC,CACDzmD,IAAK,gBACL2D,MAAO,SAAuB6V,GAC5BvY,KAAK+kD,OAASxsC,EACdvY,KAAKkM,MAAM65C,SAASxtC,EACtB,GACC,CACDxZ,IAAK,SACL2D,MAAO,WACL,IAAIsjD,EAAShmD,KAAKkM,MAEd+5C,GADUD,EAAO3a,QACL2a,EAAOC,WACnBvhC,EAAQshC,EAAOthC,MACflE,EAAWwlC,EAAOxlC,SAWlBtU,GAVmB85C,EAAOhB,iBACdgB,EAAOH,UACLG,EAAOF,YACPE,EAAOL,YACNK,EAAOJ,aACPI,EAAOZ,aACRY,EAAOT,YACRS,EAAOP,WACTO,EAAOD,SACNC,EAAON,UACX9C,EAAyBoD,EAAQ,CAAC,UAAW,YAAa,QAAS,WAAY,mBAAoB,YAAa,cAAe,cAAe,eAAgB,eAAgB,cAAe,aAAc,WAAY,eAEnO,OAAOvD,EAAQrjD,QAAQya,cACrB7Z,KAAKkM,MAAMm/B,QACXsX,EAAS,CACP3Y,IAAKhqC,KAAK8kD,cACVoB,YAAalmD,KAAK2kD,aAClBwB,aAAcnmD,KAAKwkD,kBACnB4B,WAAYpmD,KAAK0kD,gBACjBuB,UAAWA,EACXvhC,MAAOA,GACNxY,GACHsU,EAEJ,KAGKyjC,CACT,CAxLiB,CAwLf3B,EAAOna,WAET8b,EAAWrmC,YAAc,aACzBqmC,EAAWoC,UAAY,CACrBhb,QAASqX,EAAYtjD,QAAQuL,OAC7Bs7C,UAAWvD,EAAYtjD,QAAQuL,OAC/B+Z,MAAOg+B,EAAYtjD,QAAQ6E,OAC3Buc,SAAUkiC,EAAYtjD,QAAQmZ,KAC9BysC,iBAAkBtC,EAAYtjD,QAAQ6Y,KACtC4tC,UAAWnD,EAAYtjD,QAAQyL,KAC/Bi7C,YAAapD,EAAYtjD,QAAQyL,KACjC86C,YAAajD,EAAYtjD,QAAQyL,KACjC+6C,aAAclD,EAAYtjD,QAAQyL,KAClCu6C,aAAc1C,EAAYtjD,QAAQyL,KAClC06C,YAAa7C,EAAYtjD,QAAQyL,KACjC46C,WAAY/C,EAAYtjD,QAAQyL,KAChCk7C,SAAUrD,EAAYtjD,QAAQyL,KAC9B66C,UAAWhD,EAAYtjD,QAAQ8E,OAAO4T,YAExCmsC,EAAWhf,aAAe,CACxBoG,QAAS,MACT2Z,kBAAkB,EAClBa,UAAW,WAAsB,EACjCC,YAAa,WAAwB,EACrCH,YAAa,WAAwB,EACrCC,aAAc,WAAyB,EACvCR,aAAc,WAAyB,EACvCG,YAAa,WAAwB,EACrCE,WAAY,WAAuB,EACnCM,SAAU,WAAqB,EAE/BL,UAAW,GAEbvmD,EAAQC,QAAU6kD,CACpB,OArWsD,6FCAtDrlD,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAAA,aAAkB,EAUlBA,EAAAA,QARe,SAAkBmnD,EAAUC,EAAQC,GACjD,IAAIC,EAA+B,IAAbH,EAAiBA,EAAWA,EAAWC,EAI7D,MAFqB,eACI,KAFE,eAATC,EAAwB,CAACC,EAAiB,EAAG,GAAK,CAAC,EAAGA,EAAiB,IAE9CxnD,KAAK,KAAO,IAEzD,qCCXAL,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAQunD,qBAAuBvnD,EAAQwnD,wBAA0BxnD,EAAQynD,2BAA6BznD,EAAQ0nD,2BAAwB,EAEtI,IAMgCzE,EAN5BE,EAAShjD,EAAQ,MAEjBwnD,GAI4B1E,EAJW9iD,EAAQ,QAIE8iD,EAAIC,WAAaD,EAAM,CAAEhjD,QAASgjD,GAFnF2E,EAASznD,EAAQ,MAIrB,SAAS0nD,EAAQ/iD,EAAQgjD,GAAkB,IAAIhiD,EAAOrG,OAAOqG,KAAKhB,GAAS,GAAIrF,OAAOwQ,sBAAuB,CAAE,IAAI83C,EAAUtoD,OAAOwQ,sBAAsBnL,GAAagjD,IAAgBC,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxoD,OAAO8f,yBAAyBza,EAAQmjD,GAAKxoC,UAAY,KAAI3Z,EAAK3G,KAAKI,MAAMuG,EAAMiiD,EAAU,CAAE,OAAOjiD,CAAM,CAEpV,SAASoiD,EAAclhC,GAAU,IAAK,IAAIloB,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIwJ,EAAyB,MAAhBvJ,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK+oD,EAAQpoD,OAAO6I,IAAS,GAAM2J,SAAQ,SAAUrS,GAAOuoD,EAAgBnhC,EAAQpnB,EAAK0I,EAAO1I,GAAO,IAAeH,OAAO2oD,0BAA6B3oD,OAAOokD,iBAAiB78B,EAAQvnB,OAAO2oD,0BAA0B9/C,IAAmBu/C,EAAQpoD,OAAO6I,IAAS2J,SAAQ,SAAUrS,GAAOH,OAAOoF,eAAemiB,EAAQpnB,EAAKH,OAAO8f,yBAAyBjX,EAAQ1I,GAAO,GAAM,CAAE,OAAOonB,CAAQ,CAErhB,SAASmhC,EAAgBlF,EAAKrjD,EAAK2D,GAAiK,OAApJ3D,KAAOqjD,EAAOxjD,OAAOoF,eAAeo+C,EAAKrjD,EAAK,CAAE2D,MAAOA,EAAOkc,YAAY,EAAMD,cAAc,EAAMukC,UAAU,IAAkBd,EAAIrjD,GAAO2D,EAAgB0/C,CAAK,CA4DhNjjD,EAAQ0nD,sBArDoB,SAA+B36C,EAAOk9B,GAChE,IAAIoe,EAAe,CAAC,EAChBC,EAAere,EAAMqe,aACrBC,EAAeD,EACfE,EAAerF,EAAOsF,SAASC,MAAM37C,EAAMsU,UAAY,EAG3D,GAFsBtU,EAAM47C,eAAiBL,EAAe,GAAKA,EAAeE,GAa9E,OAVID,EAAe,EACbx7C,EAAM67C,YAAc77C,EAAM87C,uBAAwC,eAAf97C,EAAMs6C,KAC3DgB,EAAaS,eAAgB,EAAIlB,EAAOmB,eAAeP,EAAe,GAAKz7C,EAAM87C,uBAAyB,IAAM97C,EAAM87C,uBAAyB,EAAG97C,EAAMs6C,MAExJgB,EAAaS,eAAgB,EAAIlB,EAAOmB,aAAmC,MAApBP,EAAe,GAAUz7C,EAAMs6C,MAE/EkB,EAAeC,IACxBH,EAAaS,eAAgB,EAAIlB,EAAOmB,aAAa,EAAGh8C,EAAMs6C,OAGzDgB,EAGT,IAAIW,GAAkB,EAAIpB,EAAOhD,aAAa0D,EAAcv7C,GAExDk8C,GAAgB,EAAItB,EAAc1nD,SAAS+oD,EAAiB,IAAKj8C,EAAMs6C,MACvE6B,EAAiBn8C,EAAMm8C,eAAiB,KAkB5C,OAjBAb,EAAaS,cAAgB,CAC3BK,gBAAiBF,EACjBG,YAAaH,EACbI,WAAYJ,EACZr2C,UAAWq2C,GAGRhf,EAAMqf,UACTjB,EAAaS,cAAgBZ,EAAcA,EAAc,CAAC,EAAGG,EAAaS,eAAgB,CAAC,EAAG,CAC5FS,yBAA0BL,EAC1BM,sBAAuBN,EACvBO,oBAAqBP,EACrBQ,mBAAoBR,EACpBS,qBAAsBT,KAInBb,CACT,EAwEAroD,EAAQynD,2BA5DyB,SAAoCmC,EAAO78C,EAAOk9B,EAAO4f,GACxF,IAAIxB,EAAe,CAAC,EAChByB,EAA8B,eAAf/8C,EAAMs6C,KAErB0C,EAAiB5G,EAAOsF,SAASC,MAAM37C,EAAMsU,UAG7C2nC,GAAkB,EAAIpB,EAAOhD,aAAa3a,EAAMqe,aAAcv7C,GAC9Di9C,EAAej9C,EAAM47C,cAAe,EAAIf,EAAOhD,aAAamF,EAAiB,EAAGh9C,GAAS,KAAM,EAAI66C,EAAOhD,aAAamF,EAAiB,EAAGh9C,GAC3Ik9C,EAAYH,EAAeF,EAAMxqB,EAAIwqB,EAAMhhB,EAC3CshB,EAAeD,EAJE,IAMjBjB,GAAsCiB,EAAY,IACpDC,EAAe,GAIblB,IAAoBgB,GAAgBC,EAAY,IAClDC,EAAe,GAGjB,IAAI/C,EAAW6B,EAAkB,KAAO/e,EAAMkgB,SAAWD,GACrDE,EAAW3/C,KAAK4/C,IAAIJ,GAAal9C,EAAMu9C,qBA6B3C,OA3BIv9C,EAAM47C,cAAgByB,IAGG,IAAvBngB,EAAMqe,cAAsBnB,GAAY,IAC1CA,GAA6B,IAAjB4C,EACH9f,EAAMqe,eAAiByB,EAAiB,GAAK5C,EAA6B,KAAjB4C,IAClE5C,GAA6B,IAAjB4C,MAIXh9C,EAAMw9C,0CAA4CH,GAAYngB,EAAMugB,wBAClEvgB,EAAMugB,sBACTX,EAAS,CACPW,sBAAsB,IAI1BnC,EAAaS,eAAgB,EAAIlB,EAAOmB,aAAa5B,EAAUp6C,EAAMs6C,OAInE+C,IAAangB,EAAMwgB,aACrBZ,EAAS,CACPY,aAAa,IAIVpC,CACT,EAwBAroD,EAAQwnD,wBAdsB,SAAiCz6C,EAAOk9B,GACpE,IAAI+e,GAAkB,EAAIpB,EAAOhD,aAAa3a,EAAMqe,aAAcv7C,GAElE,MAAO,CACL+7C,eAFkB,EAAIlB,EAAOmB,aAAaC,EAAiBj8C,EAAMs6C,MAIrE,EAkDArnD,EAAQunD,qBAxCmB,SAA8Bx6C,EAAOk9B,GAC9D,IAAIif,EAAiBn8C,EAAMm8C,eAAiB,KACxCwB,EAA2B,cAC3BC,EAAa,CACfxD,SAAU,WACVtN,QAAS,QACTn1B,QAAS,EACTkmC,UAAW,OACXvmC,QAAS,EACTgY,IAAK,EACLwuB,MAAO,EACP1uB,KAAM,EACN2uB,OAAQ,EACRJ,yBAA0BA,EAC1BK,2BAA4BL,EAC5BM,4BAA6BN,EAC7BO,+BAAgCP,EAChCQ,0BAA2BR,GAa7B,OAVKzgB,EAAMqf,UACTqB,EAAazC,EAAcA,EAAc,CAAC,EAAGyC,GAAa,CAAC,EAAG,CAC5DpB,yBAA0BL,EAC1BM,sBAAuBN,EACvBO,oBAAqBP,EACrBQ,mBAAoBR,EACpBS,qBAAsBT,KAInB,CACLyB,WAAYA,EACZQ,cAAejD,EAAcA,EAAc,CAAC,EAAGyC,GAAa,CAAC,EAAG,CAC9DtmC,QAAS,EACT8iC,SAAU,aAEZiE,UAAWlD,EAAc,CAAC,EAAGyC,GAEjC,qCCnMAlrD,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAAA,aAAkB,EAElB,IAAImjD,EAoBJ,SAAiCF,GAAO,GAAIA,GAAOA,EAAIC,WAAc,OAAOD,EAAO,GAAY,OAARA,GAAiC,WAAjBoI,EAAQpI,IAAoC,oBAARA,EAAsB,MAAO,CAAEhjD,QAASgjD,GAAS,IAAI52C,EAAQi/C,IAA4B,GAAIj/C,GAASA,EAAMnL,IAAI+hD,GAAQ,OAAO52C,EAAMpL,IAAIgiD,GAAQ,IAAIsI,EAAS,CAAC,EAAOC,EAAwB/rD,OAAOoF,gBAAkBpF,OAAO8f,yBAA0B,IAAK,IAAI3f,KAAOqjD,EAAO,GAAIxjD,OAAOC,UAAUf,eAAekB,KAAKojD,EAAKrjD,GAAM,CAAE,IAAI6rD,EAAOD,EAAwB/rD,OAAO8f,yBAAyB0jC,EAAKrjD,GAAO,KAAU6rD,IAASA,EAAKxqD,KAAOwqD,EAAKzqD,KAAQvB,OAAOoF,eAAe0mD,EAAQ3rD,EAAK6rD,GAAgBF,EAAO3rD,GAAOqjD,EAAIrjD,EAAQ,CAAI2rD,EAAOtrD,QAAUgjD,EAAS52C,GAASA,EAAMrL,IAAIiiD,EAAKsI,GAAW,OAAOA,CAAQ,CApB3tBG,CAAwBvrD,EAAQ,OAEzCwrD,EAAkB3I,EAAuB7iD,EAAQ,OAEjDyrD,EAAc5I,EAAuB7iD,EAAQ,OAE7C0rD,EAAU7I,EAAuB7iD,EAAQ,OAEzC2rD,EAAY9I,EAAuB7iD,EAAQ,MAE3C4rD,EAAU/I,EAAuB7iD,EAAQ,OAEzCynD,EAASznD,EAAQ,MAEjB6rD,EAAc7rD,EAAQ,MAE1B,SAAS6iD,EAAuBC,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEhjD,QAASgjD,EAAO,CAE9F,SAASqI,IAA6B,GAAuB,oBAAZpoD,QAAwB,OAAO,KAAM,IAAImJ,EAAQ,IAAInJ,QAA6F,OAAlFooD,EAA2B,WAAsC,OAAOj/C,CAAO,EAAUA,CAAO,CAIjN,SAASg/C,EAAQpI,GAAmV,OAAtOoI,EAArD,oBAAXroD,QAAoD,kBAApBA,OAAO0a,SAAmC,SAAiBulC,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXjgD,QAAyBigD,EAAIj0C,cAAgBhM,QAAUigD,IAAQjgD,OAAOtD,UAAY,gBAAkBujD,CAAK,EAAYoI,EAAQpI,EAAM,CAEzX,SAASO,IAA2Q,OAA9PA,EAAW/jD,OAAOqe,QAAU,SAAUkJ,GAAU,IAAK,IAAIloB,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIwJ,EAASvJ,UAAUD,GAAI,IAAK,IAAIc,KAAO0I,EAAc7I,OAAOC,UAAUf,eAAekB,KAAKyI,EAAQ1I,KAAQonB,EAAOpnB,GAAO0I,EAAO1I,GAAU,CAAE,OAAOonB,CAAQ,EAAUw8B,EAASjkD,MAAMsB,KAAM9B,UAAY,CAE5T,SAAS8oD,EAAQ/iD,EAAQgjD,GAAkB,IAAIhiD,EAAOrG,OAAOqG,KAAKhB,GAAS,GAAIrF,OAAOwQ,sBAAuB,CAAE,IAAI83C,EAAUtoD,OAAOwQ,sBAAsBnL,GAAagjD,IAAgBC,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxoD,OAAO8f,yBAAyBza,EAAQmjD,GAAKxoC,UAAY,KAAI3Z,EAAK3G,KAAKI,MAAMuG,EAAMiiD,EAAU,CAAE,OAAOjiD,CAAM,CAEpV,SAASoiD,EAAclhC,GAAU,IAAK,IAAIloB,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIwJ,EAAyB,MAAhBvJ,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK+oD,EAAQpoD,OAAO6I,IAAS,GAAM2J,SAAQ,SAAUrS,GAAOuoD,EAAgBnhC,EAAQpnB,EAAK0I,EAAO1I,GAAO,IAAeH,OAAO2oD,0BAA6B3oD,OAAOokD,iBAAiB78B,EAAQvnB,OAAO2oD,0BAA0B9/C,IAAmBu/C,EAAQpoD,OAAO6I,IAAS2J,SAAQ,SAAUrS,GAAOH,OAAOoF,eAAemiB,EAAQpnB,EAAKH,OAAO8f,yBAAyBjX,EAAQ1I,GAAO,GAAM,CAAE,OAAOonB,CAAQ,CAIrhB,SAASilC,EAAkBjlC,EAAQja,GAAS,IAAK,IAAIjO,EAAI,EAAGA,EAAIiO,EAAM/N,OAAQF,IAAK,CAAE,IAAIglD,EAAa/2C,EAAMjO,GAAIglD,EAAWrkC,WAAaqkC,EAAWrkC,aAAc,EAAOqkC,EAAWtkC,cAAe,EAAU,UAAWskC,IAAYA,EAAWC,UAAW,GAAMtkD,OAAOoF,eAAemiB,EAAQ88B,EAAWlkD,IAAKkkD,EAAa,CAAE,CAM5T,SAASoI,EAAgBC,EAAGryC,GAA+G,OAA1GoyC,EAAkBzsD,OAAO8kD,gBAAkB,SAAyB4H,EAAGryC,GAAsB,OAAjBqyC,EAAE3H,UAAY1qC,EAAUqyC,CAAG,EAAUD,EAAgBC,EAAGryC,EAAI,CAEzK,SAASsyC,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZluC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUkuC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAiF,OAA3Ez1C,KAAKrX,UAAUF,SAASK,KAAKue,QAAQC,UAAUtH,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO3J,GAAK,OAAO,CAAO,CAAE,CANlQq/C,GAA6B,OAAO,WAAkC,IAAsC/oD,EAAlCgpD,EAAQC,EAAgBN,GAAkB,GAAIC,EAA2B,CAAE,IAAIM,EAAYD,EAAgB9rD,MAAMmO,YAAatL,EAAS0a,QAAQC,UAAUquC,EAAO3tD,UAAW6tD,EAAY,MAASlpD,EAASgpD,EAAMntD,MAAMsB,KAAM9B,WAAc,OAEpX,SAAoC+T,EAAMjT,GAAQ,GAAIA,IAA2B,WAAlBwrD,EAAQxrD,IAAsC,oBAATA,GAAwB,OAAOA,EAAQ,OAAOgtD,EAAuB/5C,EAAO,CAF2MoxC,CAA2BrjD,KAAM6C,EAAS,CAAG,CAIxa,SAASmpD,EAAuB/5C,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIqxC,eAAe,6DAAgE,OAAOrxC,CAAM,CAIrK,SAAS65C,EAAgBR,GAAwJ,OAAnJQ,EAAkBltD,OAAO8kD,eAAiB9kD,OAAO2lD,eAAiB,SAAyB+G,GAAK,OAAOA,EAAE3H,WAAa/kD,OAAO2lD,eAAe+G,EAAI,EAAUQ,EAAgBR,EAAI,CAE5M,SAAShE,EAAgBlF,EAAKrjD,EAAK2D,GAAiK,OAApJ3D,KAAOqjD,EAAOxjD,OAAOoF,eAAeo+C,EAAKrjD,EAAK,CAAE2D,MAAOA,EAAOkc,YAAY,EAAMD,cAAc,EAAMukC,UAAU,IAAkBd,EAAIrjD,GAAO2D,EAAgB0/C,CAAK,CAEhN,IAAI6J,EAAwB,SAAUC,IAhBtC,SAAmB1I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3vC,UAAU,sDAAyD0vC,EAAS3kD,UAAYD,OAAOkwC,OAAO2U,GAAcA,EAAW5kD,UAAW,CAAEsP,YAAa,CAAEzL,MAAO8gD,EAAUN,UAAU,EAAMvkC,cAAc,KAAe8kC,GAAY4H,EAAgB7H,EAAUC,EAAa,CAiB9XF,CAAU0I,EAAUC,GAEpB,IArBoBpJ,EAAaK,EAAYC,EAqBzC+I,EAASZ,EAAaU,GAG1B,SAASA,EAAS//C,GAChB,IAAIo4C,GA7BR,SAAyB7mB,EAAUqlB,GAAe,KAAMrlB,aAAoBqlB,GAAgB,MAAM,IAAIhvC,UAAU,oCAAwC,CA+BpJ+uC,CAAgB7iD,KAAMisD,GAItB3E,EAAgB0E,EAFhB1H,EAAQ6H,EAAOntD,KAAKgB,KAAMkM,IAEqB,iBAAa,GAE5Do7C,EAAgB0E,EAAuB1H,GAAQ,0BAAsB,GAErEgD,EAAgB0E,EAAuB1H,GAAQ,eAAW,GAE1DgD,EAAgB0E,EAAuB1H,GAAQ,gBAAY,GAE3DgD,EAAgB0E,EAAuB1H,GAAQ,aAAS,GAExDgD,EAAgB0E,EAAuB1H,GAAQ,wBAAoB,GAEnEgD,EAAgB0E,EAAuB1H,GAAQ,gBAAgB,SAAU/rC,GACvE+rC,EAAM8H,UAAY7zC,CACpB,IAEA+uC,EAAgB0E,EAAuB1H,GAAQ,yBAAyB,SAAU/rC,GAChF+rC,EAAM+H,mBAAqB9zC,CAC7B,IAEA+uC,EAAgB0E,EAAuB1H,GAAQ,cAAc,SAAU/rC,GACrE+rC,EAAMgI,QAAU/zC,CAClB,IAEA+uC,EAAgB0E,EAAuB1H,GAAQ,eAAe,SAAU/rC,EAAMxY,GACvEukD,EAAMiI,WACTjI,EAAMiI,SAAW,IAGnBjI,EAAMiI,SAASxsD,GAASwY,CAC1B,IAEA+uC,EAAgB0E,EAAuB1H,GAAQ,YAAY,WACrDhC,EAAOsF,SAASC,MAAMvD,EAAMp4C,MAAMsU,WAAa,IAInD8jC,EAAMkI,gBAEDlI,EAAMp4C,MAAMugD,WAIjBnI,EAAMoI,MAAQn4C,YAAW,WACvB+vC,EAAMqI,WACR,GAAGrI,EAAMp4C,MAAM0gD,WACjB,IAEAtF,EAAgB0E,EAAuB1H,GAAQ,iBAAiB,WAC1DA,EAAMoI,OAAO73C,aAAayvC,EAAMoI,MACtC,IAEApF,EAAgB0E,EAAuB1H,GAAQ,iBAAiB,WAC9DA,EAAMkI,gBAENlI,EAAMmI,UACR,IAEAnF,EAAgB0E,EAAuB1H,GAAQ,eAAe,WAC5DA,EAAM0E,SAAS,CACb6D,gBAAgB,GACfvI,EAAMkI,cACX,IAEAlF,EAAgB0E,EAAuB1H,GAAQ,gBAAgB,WAC7DA,EAAM0E,SAAS,CACb6D,gBAAgB,GACfvI,EAAMmI,SACX,IAEAnF,EAAgB0E,EAAuB1H,GAAQ,4BAA4B,WACzE,QAAKA,EAAM+H,uBAIP,EAAIpB,EAAU7rD,WAAW+f,gBAAkBmlC,EAAM+H,qBAAsB/H,EAAM+H,mBAAmBzyB,UAAS,EAAIqxB,EAAU7rD,WAAW+f,eAKxI,IAEAmoC,EAAgB0E,EAAuB1H,GAAQ,wBAAwB,SAAU/3C,GAC/E,GAAK+3C,EAAMwI,2BAAX,CAIA,IACI7D,EAAwB,eADjB3E,EAAMp4C,MAAMs6C,KASnBuG,EAAU9D,EAHD,GAHF,IAKGA,EAJA,GACD,MAMG18C,EAAE8iB,QAChBi1B,EAAMqI,YACGI,IAAYxgD,EAAE8iB,SACvBi1B,EAAM0I,WAhBR,CAkBF,IAEA1F,EAAgB0E,EAAuB1H,GAAQ,eAAe,WAC5D,GAAKA,EAAMlb,MAAM6jB,aAAgB3I,EAAMiI,UAAsC,IAA1BjI,EAAMiI,SAASpuD,OAAlE,CAIA,IAAI8qD,EAAoC,eAArB3E,EAAMp4C,MAAMs6C,KAC3B0G,EAAY5I,EAAMiI,SAAS,GAE/B,GAAKW,EAAL,CAIA,IAAI5D,EAAWL,EAAeiE,EAAUC,YAAcD,EAAUE,aAEhE9I,EAAM0E,SAAS,CACbM,SAAUA,IAGRhF,EAAM8H,WACR9H,EAAM8H,UAAUiB,aATlB,CAPA,CAkBF,IAEA/F,EAAgB0E,EAAuB1H,GAAQ,iBAAiB,WAC9DA,EAAM0E,SAAS,CACbsE,UAAU,IAGZhJ,EAAM+I,aACR,IAEA/F,EAAgB0E,EAAuB1H,GAAQ,mBAAmB,SAAUvkD,EAAOwtD,GAC7B,IAAhDjL,EAAOsF,SAASC,MAAMvD,EAAMp4C,MAAMsU,YAIlC8jC,EAAMlb,MAAMwgB,YACdtF,EAAM0E,SAAS,CACbY,aAAa,KAMjBtF,EAAMp4C,MAAMshD,YAAYztD,EAAOwtD,GAE3BxtD,IAAUukD,EAAMlb,MAAMqe,cACxBnD,EAAM0E,SAAS,CACbvB,aAAc1nD,KAGpB,IAEAunD,EAAgB0E,EAAuB1H,GAAQ,kBAAkB,SAAUvkD,EAAOwtD,GAC5EjL,EAAOsF,SAASC,MAAMvD,EAAMp4C,MAAMsU,WAAa,GAInD8jC,EAAMp4C,MAAMuhD,SAAS1tD,EAAOwtD,EAC9B,IAEAjG,EAAgB0E,EAAuB1H,GAAQ,oBAAoB,SAAUvkD,EAAOwtD,GAClFjJ,EAAMp4C,MAAMwhD,aAAa3tD,EAAOwtD,GAEhCjJ,EAAMqJ,OAAO5tD,EACf,IAEAunD,EAAgB0E,EAAuB1H,GAAQ,gBAAgB,SAAUtsB,GACvEssB,EAAM0E,SAAS,CACbP,SAAS,IAGXnE,EAAMp4C,MAAMk5C,aAAaptB,EAC3B,IAEAsvB,EAAgB0E,EAAuB1H,GAAQ,cAAc,SAAUtsB,GACrEssB,EAAM0E,SAAS,CACbP,SAAS,EACTmB,aAAa,EACbD,sBAAsB,IAGxBrF,EAAMp4C,MAAMu5C,WAAWztB,GAEvBssB,EAAMkI,gBAEFlI,EAAMlb,MAAMqjB,UACdnI,EAAMmI,UAEV,IAEAnF,EAAgB0E,EAAuB1H,GAAQ,eAAe,SAAUyE,EAAO/wB,GAC7EssB,EAAMp4C,MAAMq5C,YAAYvtB,GAExB,IAAI41B,EAA2BtJ,EAAMp4C,MAAM2hD,sBAAsB9E,EAAOzE,EAAMp4C,MAAOo4C,EAAMlb,MAAOkb,EAAM0E,SAAS9qB,KAAK8tB,EAAuB1H,KAM7I,OAJAA,EAAM0E,SAAS3B,EAAc,CAAC,EAAGuG,MAIxBhvD,OAAOqG,KAAK2oD,GAA0BzvD,MACjD,IAEAmpD,EAAgB0E,EAAuB1H,GAAQ,aAAa,WAC1D,IAAIwJ,EAAY5vD,UAAUC,OAAS,QAAsBkG,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,EAEpFomD,EAAMqJ,OAAOrJ,EAAMlb,MAAMqe,cAAqC,kBAAdqG,EAAyBA,EAAY,GACvF,IAEAxG,EAAgB0E,EAAuB1H,GAAQ,aAAa,WAC1D,IAAIwJ,EAAY5vD,UAAUC,OAAS,QAAsBkG,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,EAEpFomD,EAAMqJ,OAAOrJ,EAAMlb,MAAMqe,cAAqC,kBAAdqG,EAAyBA,EAAY,GACvF,IAEAxG,EAAgB0E,EAAuB1H,GAAQ,UAAU,SAAUgC,GACjE,GAAwB,kBAAbA,EAAX,CAIA,IAAIqB,EAAerF,EAAOsF,SAASC,MAAMvD,EAAMp4C,MAAMsU,UAAY,EAE7D8lC,EAAW,IACbA,EAAWhC,EAAMp4C,MAAM47C,aAAeH,EAAe,GAGnDrB,EAAWqB,IACbrB,EAAWhC,EAAMp4C,MAAM47C,aAAe,EAAIH,GAG5CrD,EAAMyJ,WAAW,CAEftG,aAAcnB,IAKZhC,EAAMlb,MAAMqjB,WAA2C,IAA/BnI,EAAMlb,MAAMyjB,gBACtCvI,EAAM0J,eApBR,CAsBF,IAEA1G,EAAgB0E,EAAuB1H,GAAQ,eAAe,WAC5DA,EAAMqI,UAAU,EAClB,IAEArF,EAAgB0E,EAAuB1H,GAAQ,eAAe,WAC5DA,EAAM0I,UAAU,EAClB,IAEA1F,EAAgB0E,EAAuB1H,GAAQ,kBAAkB,WAC/DA,EAAMqI,UAAU,GAEZrI,EAAMp4C,MAAM+hD,cACd3J,EAAM0E,SAAS,CACbY,aAAa,GAGnB,IAEAtC,EAAgB0E,EAAuB1H,GAAQ,oBAAoB,WACjEA,EAAM0I,UAAU,GAEZ1I,EAAMp4C,MAAM+hD,cACd3J,EAAM0E,SAAS,CACbY,aAAa,GAGnB,IAEAtC,EAAgB0E,EAAuB1H,GAAQ,cAAc,SAAU4J,GACrE,OAAO,SAAU3hD,IACV,EAAIw6C,EAAOoH,iBAAiB5hD,IAAgB,UAAVA,EAAExN,KACvCulD,EAAMqJ,OAAOO,EAEjB,CACF,IAEA5G,EAAgB0E,EAAuB1H,GAAQ,cAAc,SAAUlb,GAErEkb,EAAM0E,SAAS3B,EAAc,CAC3BK,aAAcpD,EAAMlb,MAAMqe,cACzBre,IAAQ,WAETkb,EAAM0E,SAAS1E,EAAM8J,iBAAiB9J,EAAMp4C,MAAOo4C,EAAMlb,OAC3D,IAEAkb,EAAM+J,eAAejlB,EAAMqe,aAAcnF,EAAOsF,SAAS0G,QAAQhK,EAAMp4C,MAAMsU,UAAU4oB,EAAMqe,cAC/F,IAEAH,EAAgB0E,EAAuB1H,GAAQ,mBAAmB,WAChE,IAAImD,EAAenD,EAAMp4C,MAAMu7C,aAC3B8F,EAAOjJ,EAAMiI,UAAYjI,EAAMiI,SAAS9E,GAE5C,OADa8F,GAAQA,EAAKgB,qBAAqB,QAAU,IAC3C,EAChB,IAEAjH,EAAgB0E,EAAuB1H,GAAQ,yBAAyB,SAAUgC,GAChF,IAAIiH,EAAOjJ,EAAMiI,UAAYjI,EAAMiI,SAASjG,GAE5C,GAAIhC,EAAMlb,MAAMkkB,UAAYC,GAAQA,EAAK/sC,SAASriB,OAAQ,CACxD,IAAIqwD,EAAcjB,EAAK/sC,SAAS,GAAG+tC,qBAAqB,QAAU,GAElE,GAAIC,EAAYrwD,OAAS,EAAG,CAC1B,IAAIswD,EAAQD,EAAY,GAExB,IAAKC,EAAMC,SAAU,CAQnBD,EAAMlnC,iBAAiB,QANL,SAASonC,IACzBrK,EAAMsK,cAENH,EAAMjnC,oBAAoB,OAAQmnC,EACpC,GAGF,CACF,CAGA,IACI35B,GADcw5B,EAAY,IAAMjB,EAAK/sC,SAAS,IACzB4sC,aACzB,OAAOp4B,EAAS,EAAIA,EAAS,IAC/B,CAEA,OAAO,IACT,IAEA,IAAI65B,EAAY,CACd5B,aAAa,EACbvF,aAAcx7C,EAAMu7C,aACpBA,aAAcv7C,EAAMu7C,aACpB6F,UAAU,EACVT,gBAAgB,EAChBJ,SAAUvgD,EAAMugD,SAChBhE,SAAS,EACTkB,sBAAsB,EACtBC,aAAa,EACbN,SAAU,EACVrB,cAAe,CAAC,EAChB6B,WAAY,CAAC,EACbQ,cAAe,CAAC,EAChBC,UAAW,CAAC,GAId,OAFAjG,EAAM8J,iBAAqD,oBAA3BliD,EAAMkiD,kBAAmCliD,EAAMkiD,kBAA+C,SAA3BliD,EAAMkiD,kBAA+BjD,EAAYzE,sBAAwByE,EAAYtE,sBACxLvC,EAAMlb,MAAQie,EAAcA,EAAc,CAAC,EAAGwH,GAAYvK,EAAM8J,iBAAiBliD,EAAO2iD,IACjFvK,CACT,CAoTA,OAlrBoBxB,EAgYPmJ,GAhYoB9I,EAgYV,CAAC,CACtBpkD,IAAK,oBACL2D,MAAO,WACA1C,KAAKkM,MAAMsU,UAIhBxgB,KAAK8uD,eACP,GACC,CACD/vD,IAAK,qBACL2D,MAAO,SAA4BqsD,EAAWC,GACvCD,EAAUvuC,WAAYxgB,KAAKkM,MAAMsU,UAAaxgB,KAAKopC,MAAM6jB,aAC5DjtD,KAAK8uD,iBAGFC,EAAUtY,WAAaz2C,KAAKkM,MAAMuqC,WACrCz2C,KAAKivD,aAGHD,EAAUvG,UAAYzoD,KAAKopC,MAAMqf,SAEnCzoD,KAAKgpD,SAAS3B,EAAc,CAAC,EAAGrnD,KAAKkM,MAAMgjD,mBAAmBlvD,KAAKkM,MAAOlM,KAAKopC,SAG7E2lB,EAAUtH,eAAiBznD,KAAKkM,MAAMu7C,cAAgBsH,EAAUhH,aAAe/nD,KAAKkM,MAAM67C,aAC5F/nD,KAAKqtD,cACLrtD,KAAK2tD,OAAO3tD,KAAKkM,MAAMu7C,eAGrBsH,EAAUtC,WAAazsD,KAAKkM,MAAMugD,WAChCzsD,KAAKkM,MAAMugD,SACbzsD,KAAKmvD,gBAELnvD,KAAKovD,kBAGPpvD,KAAKgpD,SAAS,CACZyD,SAAUzsD,KAAKkM,MAAMugD,WAG3B,GACC,CACD1tD,IAAK,uBACL2D,MAAO,WACL1C,KAAKqvD,iBACP,GACC,CACDtwD,IAAK,gBACL2D,MAAO,WACL,IAAI4sD,EAAStvD,KAEbA,KAAKuvD,aAEDvvD,KAAKopC,MAAMqjB,UAAYnK,EAAOsF,SAASC,MAAM7nD,KAAKkM,MAAMsU,UAAY,GACtExgB,KAAKmvD,gBAGHnvD,KAAKkM,MAAMuqC,WACbz2C,KAAKivD,aAGPjvD,KAAKgpD,SAAS,CACZiE,aAAa,IACZ,WACD,IAAIuC,EAAeF,EAAOG,kBAEtBD,IAAiBA,EAAad,SAEhCc,EAAajoC,iBAAiB,OAAQ+nC,EAAOI,eAE7CJ,EAAOI,eAEX,GACF,GACC,CACD3wD,IAAK,kBACL2D,MAAO,WACD1C,KAAKopC,MAAM6jB,cACbjtD,KAAK2vD,eACL3vD,KAAKovD,kBAET,GACC,CACDrwD,IAAK,gBACL2D,MAAO,WACL1C,KAAKysD,WACL,IAAImD,EAAkB5vD,KAAKqsD,mBAEvBrsD,KAAKkM,MAAM2jD,aAAeD,IAC5BA,EAAgBroC,iBAAiB,aAAcvnB,KAAK6vD,aACpDD,EAAgBroC,iBAAiB,aAAcvnB,KAAK8vD,cAExD,GACC,CACD/wD,IAAK,kBACL2D,MAAO,WACL1C,KAAKwsD,gBACL,IAAIoD,EAAkB5vD,KAAKqsD,mBAEvBrsD,KAAKkM,MAAM2jD,aAAeD,IAC5BA,EAAgBpoC,oBAAoB,aAAcxnB,KAAK6vD,aACvDD,EAAgBpoC,oBAAoB,aAAcxnB,KAAK8vD,cAE3D,GACC,CACD/wD,IAAK,aACL2D,MAAO,YAGL,EAAIwoD,EAAQ9rD,WAAWmoB,iBAAiB,SAAUvnB,KAAKqtD,cAEvD,EAAInC,EAAQ9rD,WAAWmoB,iBAAiB,mBAAoBvnB,KAAKqtD,aAE7DrtD,KAAKkM,MAAM6jD,oBACb,EAAI9E,EAAU7rD,WAAWmoB,iBAAiB,UAAWvnB,KAAKgwD,qBAE9D,GACC,CACDjxD,IAAK,eACL2D,MAAO,YAEL,EAAIwoD,EAAQ9rD,WAAWooB,oBAAoB,SAAUxnB,KAAKqtD,cAC1D,EAAInC,EAAQ9rD,WAAWooB,oBAAoB,mBAAoBxnB,KAAKqtD,aACpE,IAAImC,EAAexvD,KAAKyvD,kBAEpBD,GACFA,EAAahoC,oBAAoB,OAAQxnB,KAAK0vD,eAG5C1vD,KAAKkM,MAAM6jD,oBACb,EAAI9E,EAAU7rD,WAAWooB,oBAAoB,UAAWxnB,KAAKgwD,qBAEjE,GACC,CACDjxD,IAAK,aACL2D,MAAO,WACL,IAAIutD,EAEkD,QAArDA,EAAwBjwD,KAAKqsD,0BAA0D,IAA1B4D,GAA4CA,EAAsBv0B,OAClI,GACC,CACD38B,IAAK,cACL2D,MAAO,SAAqBwtD,GAC1B,IAAIC,EAASnwD,KAEb,OAAKA,KAAKkM,MAAMsU,SAIT8hC,EAAOsF,SAASl5C,IAAI1O,KAAKkM,MAAMsU,UAAU,SAAU+sC,EAAMxtD,GAC9D,IAAIqwD,EAAarwD,IAAUowD,EAAO/mB,MAAMqe,aACpC4I,EAAatwD,IAAUowD,EAAO/mB,MAAMse,aACpChjC,EAAQ0rC,GAAcD,EAAO/mB,MAAMkhB,eAAiB+F,GAAcF,EAAO/mB,MAAMmhB,WAAa4F,EAAO/mB,MAAM0gB,YAAc,CAAC,EAExHqG,EAAOjkD,MAAM67C,YAAoC,eAAtBoI,EAAOjkD,MAAMs6C,OAC1C9hC,EAAQ2iC,EAAcA,EAAc,CAAC,EAAG3iC,GAAQ,CAAC,EAAG,CAClD4rC,SAAUH,EAAOjkD,MAAM87C,sBAAwB,OAI/CmI,EAAO/mB,MAAMqf,SAAW0H,EAAO/mB,MAAMugB,uBACvCjlC,EAAQ2iC,EAAcA,EAAc,CAAC,EAAG3iC,GAAQ,CAAC,EAAG,CAClD6rC,cAAe,UAInB,IAAIC,EAAa,CACfxmB,IAAK,SAAaz9B,GAChB,OAAO4jD,EAAOM,YAAYlkD,EAAGxM,EAC/B,EACAhB,IAAK,UAAYgB,GAASmwD,EAAU,QAAU,IAC9CjK,UAAW8E,EAAY3rD,QAAQsxD,MAAK,EAAM3wD,IAAUowD,EAAO/mB,MAAMqe,aAAc1nD,IAAUowD,EAAO/mB,MAAMse,cACtGpR,QAAS6Z,EAAOQ,gBAAgBzyB,KAAKiyB,EAAQpwD,EAAOwtD,GACpD7oC,MAAOA,GAET,OAAoB49B,EAAOljD,QAAQya,cAAc,KAAM22C,EAAYL,EAAOjkD,MAAM0kD,WAAWrD,EAAM,CAC/F6C,WAAYrwD,IAAUowD,EAAO/mB,MAAMqe,aACnC4I,WAAYtwD,IAAUowD,EAAO/mB,MAAMse,eAEvC,IAjCS,EAkCX,GACC,CACD3oD,IAAK,iBACL2D,MAAO,WACL,IAAImuD,EAAS7wD,KAET8wD,EAAc9wD,KAAKkM,MACnB6kD,EAAiBD,EAAYC,eAC7BC,EAASF,EAAYE,OACrBC,EAAkBH,EAAYG,gBAC9BzwC,EAAWswC,EAAYtwC,SAE3B,OAAKuwC,EAIezO,EAAOljD,QAAQya,cAAc,KAAM,CACrDosC,UAAW,gBACV3D,EAAOsF,SAASl5C,IAAI8R,GAAU,SAAU0wC,EAAGnxD,GAC5C,OAAOkxD,GAAmBA,EAAgBJ,EAAOM,WAAWpxD,GAAQA,IAAU8wD,EAAOznB,MAAMqe,aAAc1nD,EAAOixD,EAAOzD,KACzH,KAPS,IAQX,GACC,CACDxuD,IAAK,eACL2D,MAAO,WACL,OAAK1C,KAAKkM,MAAMklD,WAII9O,EAAOljD,QAAQya,cAAc,IAAK,CACpDosC,UAAW,mBACVjmD,KAAKkM,MAAMmlD,gBAAgBrxD,KAAKopC,MAAMqe,aAAe,EAAGnF,EAAOsF,SAASC,MAAM7nD,KAAKkM,MAAMsU,YALnF,IAMX,GACC,CACDzhB,IAAK,eACL2D,MAAO,WACL,OAAK1C,KAAKkM,MAAMolD,YAAetxD,KAAKkM,MAAMsU,UAA2D,IAA/C8hC,EAAOsF,SAASC,MAAM7nD,KAAKkM,MAAMsU,UAInE8hC,EAAOljD,QAAQya,cAAcmxC,EAAQ5rD,QAAS,CAChE4qC,IAAKhqC,KAAKuxD,aACVC,aAAcxxD,KAAKyxD,iBACnBhK,aAAcznD,KAAKopC,MAAMqe,aACzBY,eAAgBroD,KAAKkM,MAAMm8C,eAC3BqJ,WAAY1xD,KAAKkM,MAAMwlD,WACvBV,OAAQhxD,KAAKkM,MAAM8kD,OACnB/C,aAAcjuD,KAAKkM,MAAM+hD,cACxBjuD,KAAKkM,MAAMylD,aAAa3xD,KAAKkM,MAAMsU,WAX7B,IAYX,GACC,CACDzhB,IAAK,SACL2D,MAAO,WACL,IAAIkvD,EAAS5xD,KAEb,IAAKA,KAAKkM,MAAMsU,UAA2D,IAA/C8hC,EAAOsF,SAASC,MAAM7nD,KAAKkM,MAAMsU,UAC3D,OAAO,KAGT,IAAIqxC,EAAc7xD,KAAKkM,MAAM4lD,WAAaxP,EAAOsF,SAASC,MAAM7nD,KAAKkM,MAAMsU,UAAY,EACnFyoC,EAAmC,eAApBjpD,KAAKkM,MAAMs6C,KAC1BuL,EAAgB/xD,KAAKkM,MAAM8lD,YAAc1P,EAAOsF,SAASC,MAAM7nD,KAAKkM,MAAMsU,UAAY,EAEtFyxC,EAAUF,IAAkB/xD,KAAKopC,MAAMqe,aAAe,GAAKznD,KAAKkM,MAAM47C,gBAAiB,EAEvFoK,EAAUH,IAAkB/xD,KAAKopC,MAAMqe,aAAenF,EAAOsF,SAASC,MAAM7nD,KAAKkM,MAAMsU,UAAY,GAAKxgB,KAAKkM,MAAM47C,gBAAiB,EACpIqK,EAAanyD,KAAKoyD,aAAY,GAC9BC,EAAaF,EAAWpkC,QACxBukC,EAAYH,EAAWjhD,MACvBqhD,EAAc,CAChBtM,UAAW8E,EAAY3rD,QAAQozD,QAAO,EAAMxyD,KAAKopC,MAAMqf,SACvDlD,YAAavlD,KAAKulD,YAClBH,aAAcplD,KAAKolD,aACnBK,WAAYzlD,KAAKylD,WACjB/gC,MAAO1kB,KAAKopC,MAAM6e,cAClBvC,UAAW1lD,KAAKkM,MAAMu9C,sBAEpBgJ,EAAkB,CAAC,EAEvB,GAAIxJ,GAIF,GAHAsJ,EAAY5M,YAAc3lD,KAAK0yD,eAC/BH,EAAY3M,aAAe5lD,KAAK2yD,iBAE5B3yD,KAAKkM,MAAM0mD,cAAe,CAC5B,IAAIC,EAAa7yD,KAAK8yD,sBAAsB9yD,KAAKopC,MAAMqe,cAEvDgL,EAAgBz9B,OAAS69B,GAAc,MACzC,OAEAN,EAAY1M,UAAyC,YAA7B7lD,KAAKkM,MAAM6mD,cAA8B/yD,KAAK2yD,iBAAmB3yD,KAAK0yD,eAC9FH,EAAYzM,YAA2C,YAA7B9lD,KAAKkM,MAAM6mD,cAA8B/yD,KAAK0yD,eAAiB1yD,KAAK2yD,iBAC9FJ,EAAY7tC,MAAQ2iC,EAAcA,EAAc,CAAC,EAAGkL,EAAY7tC,OAAQ,CAAC,EAAG,CAC1EsQ,OAAQh1B,KAAKopC,MAAMkgB,WAErBmJ,EAAgBz9B,OAASh1B,KAAKopC,MAAMkgB,SAGtC,OAAoBhH,EAAOljD,QAAQya,cAAc,MAAO,CACtD,aAAc7Z,KAAKkM,MAAM8mD,UACzB/M,UAAW8E,EAAY3rD,QAAQ6zD,KAAKjzD,KAAKkM,MAAM+5C,WAC/Cjc,IAAKhqC,KAAKkzD,sBACVC,SAAUnzD,KAAKkM,MAAM6jD,kBAAoB,OAAI1rD,GAC/Bi+C,EAAOljD,QAAQya,cAAc,MAAO,CAClDosC,UAAW8E,EAAY3rD,QAAQg0D,UAAS,GACxC1uC,MAAO,CACLqQ,MAAO/0B,KAAKkM,MAAM6oB,QAEnB/0B,KAAKqzD,iBAAkBrzD,KAAKkM,MAAMonD,gBAAgBtzD,KAAKuzD,YAAatB,EAASjyD,KAAKkM,MAAM8kD,OAAOwC,WAAyBlR,EAAOljD,QAAQya,cAAc,MAAO,CAC7JosC,UAAW8E,EAAY3rD,QAAQq0D,SAAQ,EAAMzzD,KAAKkM,MAAMs6C,MACxD9hC,MAAO+tC,GACNZ,EAA2BvP,EAAOljD,QAAQya,cAAcixC,EAAgB1rD,QAASujD,EAAS,CAC3FtX,QAAS,KACT0a,SAAU/lD,KAAK0zD,YACdnB,EAAa,CACdvN,iBAAkBhlD,KAAKkM,MAAM+hD,eAC3BjuD,KAAKkM,MAAM47C,cAAgBwK,EAAWtyD,KAAKoyD,cAAepyD,KAAKkM,MAAM47C,cAAgBuK,GAA2B/P,EAAOljD,QAAQya,cAAc,KAAM,CACrJosC,UAAW8E,EAAY3rD,QAAQozD,QAAO,EAAMxyD,KAAKopC,MAAMqf,SACvDze,IAAK,SAAazxB,GAChB,OAAOq5C,EAAO8B,WAAWn7C,EAC3B,EACAmM,MAAO1kB,KAAKopC,MAAM6e,eAAiB,CAAC,GACnCjoD,KAAKkM,MAAM47C,cAAgBwK,EAAWtyD,KAAKoyD,cAAepyD,KAAKkM,MAAM47C,cAAgBuK,IAAcryD,KAAKkM,MAAMynD,gBAAgB3zD,KAAK4zD,YAAa1B,EAASlyD,KAAKkM,MAAM8kD,OAAO6C,YAAa7zD,KAAK8zD,gBAAiB9zD,KAAK2xD,eACxN,MA/qB0EvG,EAAkBtI,EAAYjkD,UAAWskD,GAAiBC,GAAagI,EAAkBtI,EAAaM,GAkrB3K6I,CACT,CAjqB4B,CAiqB1B3J,EAAOljD,QAAQ+oC,WAEjBhpC,EAAAA,QAAkB8sD,EAElB3E,EAAgB2E,EAAU,cAAe,YAEzC3E,EAAgB2E,EAAU,eAAgB,CACxC+G,eAAW3uD,EACXmiD,KAAM,aACNwB,sBAAuB,GACvB4E,SAAU,IACVoE,OAAQ,CACNwC,UAAW,wBACXK,WAAY,oBACZtG,KAAM,cAERC,YAAazG,EAAOz6C,KACpBohD,aAAc3G,EAAOz6C,KACrBmhD,SAAU1G,EAAOz6C,KACjB84C,aAAc,WAAyB,EACvCK,WAAY,WAAuB,EACnCF,YAAa,WACX,OAAO,CACT,EACAmE,0CAA0C,EAC1C4J,gBAAiB,SAAyBS,EAAgB9B,EAAS+B,GACjE,OAAoB1R,EAAOljD,QAAQya,cAAc,SAAU,CACzDpJ,KAAM,SACN,aAAcujD,EACd/N,UAAW8E,EAAY3rD,QAAQ60D,YAAYhC,GAC3C3b,QAASyd,GAEb,EACAJ,gBAAiB,SAAyBI,EAAgB7B,EAAS8B,GACjE,OAAoB1R,EAAOljD,QAAQya,cAAc,SAAU,CACzDpJ,KAAM,SACN,aAAcujD,EACd/N,UAAW8E,EAAY3rD,QAAQ80D,YAAYhC,GAC3C5b,QAASyd,GAEb,EACA9C,gBAAiB,SAAyB8C,EAAgB3D,EAAYrwD,EAAOi0D,GAC3E,OAAoB1R,EAAOljD,QAAQya,cAAc,KAAM,CACrDosC,UAAW8E,EAAY3rD,QAAQ+0D,IAAI/D,GACnC9Z,QAASyd,EACTK,UAAWL,EACXrxD,MAAO3C,EACPhB,IAAKgB,EACLs0D,KAAM,SACNlB,SAAU,EACV,aAAc,GAAG71B,OAAO02B,EAAO,KAAK12B,OAAOv9B,EAAQ,IAEvD,EACA6wD,WAAY,SAAoBrD,GAC9B,OAAOA,CACT,EACAoE,aAAc,SAAsBnxC,GAClC,IAAI8zC,EAAShS,EAAOsF,SAASl5C,IAAI8R,GAAU,SAAU+sC,GACnD,IAAIjoC,EAAMioC,EAQV,GANkB,QAAdA,EAAK98C,OACP6U,EAAMg9B,EAAOsF,SAAS0G,QAAQf,EAAKrhD,MAAMsU,UAAU+zC,MAAK,SAAU/zC,GAChE,MAAyB,QAAlBA,EAAS/P,IAClB,KAGG6U,EAIL,OAAOA,CACT,IAEA,OAEc,IAFVgvC,EAAOnN,QAAO,SAAUsH,GAC1B,OAAOA,CACT,IAAGtwD,QACDuzC,QAAQ8iB,KAAK,iTACN,IAGFF,CACT,EACAjD,gBAAiBtK,EAAO0N,uBACxBhN,aAAc,EACduK,YAAY,EACZjB,gBAAgB,EAChBK,YAAY,EACZE,YAAY,EACZzB,aAAa,EACbpG,qBAAsB,EACtBqI,WAAW,EACXzJ,eAAgB,IAChB0K,cAAe,WACfh+B,MAAO,OACPq5B,iBAAkB,QAClBP,sBAAuB1C,EAAYvE,2BACnCsI,mBAAoB/D,EAAYxE,+EC1zBlC/nD,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAQ+oD,YAAc/oD,EAAQ4kD,YAAc5kD,EAAQgvD,gBAAkBhvD,EAAQs1D,uBAAyBt1D,EAAQmN,UAAO,EAEtH,IAIgC81C,EAJ5BE,EAAShjD,EAAQ,MAEjBwnD,GAE4B1E,EAFW9iD,EAAQ,QAEE8iD,EAAIC,WAAaD,EAAM,CAAEhjD,QAASgjD,GAIvFjjD,EAAQmN,KAFG,WAAiB,EAQ5BnN,EAAQs1D,uBAJqB,SAAgC5rC,EAAS6rC,GACpE,MAAO,GAAGp3B,OAAOzU,EAAS,QAAQyU,OAAOo3B,EAC3C,EAaAv1D,EAAQgvD,gBATc,SAAyB5hD,GAC7C,QAAOA,GAAIA,EAAEzO,eAAe,MAC9B,EA2CAqB,EAAQ4kD,YAlCU,SAAqBhkD,EAAOmM,GAM5C,GALIA,EAAM47C,gBAEN/nD,EAGU,IAAVA,EACF,OAAO,EAGT,IAAImpD,EAAiB5G,EAAOsF,SAASC,MAAM37C,EAAMsU,UAEjD,GAAItU,EAAM67C,YAA6B,eAAf77C,EAAMs6C,KAAuB,CACnD,IAAI2B,GAAmBpoD,EAAQmM,EAAM87C,sBACjCL,EAAeuB,EAAiB,EAQpC,OANInpD,IAAUA,IAAU4nD,GAAgBz7C,EAAM47C,cAC5CK,IAAoB,IAAMj8C,EAAM87C,uBAAyB,EAChDjoD,IAAU4nD,IACnBQ,GAAmB,IAAMj8C,EAAM87C,uBAG1BG,CACT,CAEA,OAAgB,KAARpoD,CACV,EAmBAZ,EAAQ+oD,YATU,SAAqB5B,EAAUE,GAC/C,IAAI9hC,EAAQ,CAAC,EAKb,MAJA,CAAC,kBAAmB,eAAgB,cAAe,aAAc,YAAa,eAAetT,SAAQ,SAAUujD,GAE7GjwC,EAAMiwC,IAAQ,EAAI7N,EAAc1nD,SAASknD,EAAU,IAAKE,EAC1D,IACO9hC,CACT,qCC3EA9lB,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAAA,aAAkB,EAElB,IAAImjD,EAgBJ,SAAiCF,GAAO,GAAIA,GAAOA,EAAIC,WAAc,OAAOD,EAAO,GAAY,OAARA,GAAiC,WAAjBoI,EAAQpI,IAAoC,oBAARA,EAAsB,MAAO,CAAEhjD,QAASgjD,GAAS,IAAI52C,EAAQi/C,IAA4B,GAAIj/C,GAASA,EAAMnL,IAAI+hD,GAAQ,OAAO52C,EAAMpL,IAAIgiD,GAAQ,IAAIsI,EAAS,CAAC,EAAOC,EAAwB/rD,OAAOoF,gBAAkBpF,OAAO8f,yBAA0B,IAAK,IAAI3f,KAAOqjD,EAAO,GAAIxjD,OAAOC,UAAUf,eAAekB,KAAKojD,EAAKrjD,GAAM,CAAE,IAAI6rD,EAAOD,EAAwB/rD,OAAO8f,yBAAyB0jC,EAAKrjD,GAAO,KAAU6rD,IAASA,EAAKxqD,KAAOwqD,EAAKzqD,KAAQvB,OAAOoF,eAAe0mD,EAAQ3rD,EAAK6rD,GAAgBF,EAAO3rD,GAAOqjD,EAAIrjD,EAAQ,CAAI2rD,EAAOtrD,QAAUgjD,EAAS52C,GAASA,EAAMrL,IAAIiiD,EAAKsI,GAAW,OAAOA,CAAQ,CAhB3tBG,CAAwBvrD,EAAQ,OAEzCyrD,EAAc5I,EAAuB7iD,EAAQ,OAE7Cs1D,EAAct1D,EAAQ,MAEtBwnD,EAAgB3E,EAAuB7iD,EAAQ,OAE/CwrD,EAAkB3I,EAAuB7iD,EAAQ,OAEjD4rD,EAAU/I,EAAuB7iD,EAAQ,OAE7C,SAAS6iD,EAAuBC,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEhjD,QAASgjD,EAAO,CAE9F,SAASqI,IAA6B,GAAuB,oBAAZpoD,QAAwB,OAAO,KAAM,IAAImJ,EAAQ,IAAInJ,QAA6F,OAAlFooD,EAA2B,WAAsC,OAAOj/C,CAAO,EAAUA,CAAO,CAIjN,SAASg/C,EAAQpI,GAAmV,OAAtOoI,EAArD,oBAAXroD,QAAoD,kBAApBA,OAAO0a,SAAmC,SAAiBulC,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXjgD,QAAyBigD,EAAIj0C,cAAgBhM,QAAUigD,IAAQjgD,OAAOtD,UAAY,gBAAkBujD,CAAK,EAAYoI,EAAQpI,EAAM,CAEzX,SAASO,IAA2Q,OAA9PA,EAAW/jD,OAAOqe,QAAU,SAAUkJ,GAAU,IAAK,IAAIloB,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIwJ,EAASvJ,UAAUD,GAAI,IAAK,IAAIc,KAAO0I,EAAc7I,OAAOC,UAAUf,eAAekB,KAAKyI,EAAQ1I,KAAQonB,EAAOpnB,GAAO0I,EAAO1I,GAAU,CAAE,OAAOonB,CAAQ,EAAUw8B,EAASjkD,MAAMsB,KAAM9B,UAAY,CAI5T,SAASktD,EAAkBjlC,EAAQja,GAAS,IAAK,IAAIjO,EAAI,EAAGA,EAAIiO,EAAM/N,OAAQF,IAAK,CAAE,IAAIglD,EAAa/2C,EAAMjO,GAAIglD,EAAWrkC,WAAaqkC,EAAWrkC,aAAc,EAAOqkC,EAAWtkC,cAAe,EAAU,UAAWskC,IAAYA,EAAWC,UAAW,GAAMtkD,OAAOoF,eAAemiB,EAAQ88B,EAAWlkD,IAAKkkD,EAAa,CAAE,CAM5T,SAASoI,EAAgBC,EAAGryC,GAA+G,OAA1GoyC,EAAkBzsD,OAAO8kD,gBAAkB,SAAyB4H,EAAGryC,GAAsB,OAAjBqyC,EAAE3H,UAAY1qC,EAAUqyC,CAAG,EAAUD,EAAgBC,EAAGryC,EAAI,CAEzK,SAASsyC,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZluC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUkuC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAiF,OAA3Ez1C,KAAKrX,UAAUF,SAASK,KAAKue,QAAQC,UAAUtH,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO3J,GAAK,OAAO,CAAO,CAAE,CANlQq/C,GAA6B,OAAO,WAAkC,IAAsC/oD,EAAlCgpD,EAAQC,EAAgBN,GAAkB,GAAIC,EAA2B,CAAE,IAAIM,EAAYD,EAAgB9rD,MAAMmO,YAAatL,EAAS0a,QAAQC,UAAUquC,EAAO3tD,UAAW6tD,EAAY,MAASlpD,EAASgpD,EAAMntD,MAAMsB,KAAM9B,WAAc,OAEpX,SAAoC+T,EAAMjT,GAAQ,GAAIA,IAA2B,WAAlBwrD,EAAQxrD,IAAsC,oBAATA,GAAwB,OAAOA,EAAQ,OAAOgtD,EAAuB/5C,EAAO,CAF2MoxC,CAA2BrjD,KAAM6C,EAAS,CAAG,CAIxa,SAASmpD,EAAuB/5C,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIqxC,eAAe,6DAAgE,OAAOrxC,CAAM,CAIrK,SAAS65C,EAAgBR,GAAwJ,OAAnJQ,EAAkBltD,OAAO8kD,eAAiB9kD,OAAO2lD,eAAiB,SAAyB+G,GAAK,OAAOA,EAAE3H,WAAa/kD,OAAO2lD,eAAe+G,EAAI,EAAUQ,EAAgBR,EAAI,CAE5M,SAAShE,EAAgBlF,EAAKrjD,EAAK2D,GAAiK,OAApJ3D,KAAOqjD,EAAOxjD,OAAOoF,eAAeo+C,EAAKrjD,EAAK,CAAE2D,MAAOA,EAAOkc,YAAY,EAAMD,cAAc,EAAMukC,UAAU,IAAkBd,EAAIrjD,GAAO2D,EAAgB0/C,CAAK,CAEhN,IAIIyS,EAAsB,SAAU3Q,IApBpC,SAAmBV,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3vC,UAAU,sDAAyD0vC,EAAS3kD,UAAYD,OAAOkwC,OAAO2U,GAAcA,EAAW5kD,UAAW,CAAEsP,YAAa,CAAEzL,MAAO8gD,EAAUN,UAAU,EAAMvkC,cAAc,KAAe8kC,GAAY4H,EAAgB7H,EAAUC,EAAa,CAqB9XF,CAAUsR,EAAQ3Q,GAElB,IAzBoBpB,EAAaK,EAAYC,EAyBzC+I,EAASZ,EAAasJ,GAE1B,SAASA,EAAO7O,GACd,IAAI1B,EAyIJ,OAzKJ,SAAyB7mB,EAAUqlB,GAAe,KAAMrlB,aAAoBqlB,GAAgB,MAAM,IAAIhvC,UAAU,oCAAwC,CAkCpJ+uC,CAAgB7iD,KAAM60D,GAItBvN,EAAgB0E,EAFhB1H,EAAQ6H,EAAOntD,KAAKgB,KAAMgmD,IAEqB,uBAAmB,GAElEsB,EAAgB0E,EAAuB1H,GAAQ,oBAAgB,GAE/DgD,EAAgB0E,EAAuB1H,GAAQ,iBAAa,GAE5DgD,EAAgB0E,EAAuB1H,GAAQ,sBAAsB,SAAU/rC,GAC7E+rC,EAAMwQ,gBAAkBv8C,CAC1B,IAEA+uC,EAAgB0E,EAAuB1H,GAAQ,mBAAmB,SAAU/rC,GAC1E+rC,EAAMyQ,aAAex8C,CACvB,IAEA+uC,EAAgB0E,EAAuB1H,GAAQ,gBAAgB,SAAU/rC,EAAMxY,GACxEukD,EAAM8H,YACT9H,EAAM8H,UAAY,IAGpB9H,EAAM8H,UAAUrsD,GAASwY,CAC3B,IAEA+uC,EAAgB0E,EAAuB1H,GAAQ,eAAe,WAC5D,GAAKA,EAAMp4C,MAAMsU,UAAa8jC,EAAMwQ,iBAAoBxQ,EAAM8H,UAA9D,CAIA,IAAIsI,EAAQpS,EAAOsF,SAASC,MAAMvD,EAAMp4C,MAAMsU,UAE1Cw0C,EAAc1Q,EAAMwQ,gBAAgB3H,YACpC7D,EAAWhF,EAAMp4C,MAAMwlD,WAAapN,EAAMp4C,MAAMwlD,YAAa,EAAIkD,EAAYK,YAAY3Q,EAAM8H,UAAU,IACzG8I,EAAetrD,KAAKurD,MAAMH,EAAc1L,GACxC0I,EAAakD,EAAeR,EAC5B/M,EAAeqK,EAAa0C,EAAQQ,EAAe,EAEvD5Q,EAAM0E,UAAS,SAAUoM,EAAQlpD,GAC/B,MAAO,CACLo9C,SAAUA,EACV4L,aAAcA,EACdhI,UAAW8E,EAAa1N,EAAM+Q,aAAanpD,EAAMu7C,cAAgB,EACjEE,aAAcA,EACdqK,WAAYA,EAEhB,GAlBA,CAmBF,IAEA1K,EAAgB0E,EAAuB1H,GAAQ,mBAAmB,SAAUvkD,EAAOwtD,EAAMhhD,GACvF,IA/DgB,SAAyBA,GAC7C,OAAOA,EAAEzO,eAAe,MAC1B,CA6DWqwD,CAAgB5hD,IAAgB,UAAVA,EAAExN,IAAiB,CAC5C,IAAIu2D,EAAUhR,EAAMp4C,MAAMslD,aAEH,oBAAZ8D,GACTA,EAAQv1D,EAAOwtD,EAEnB,CACF,IAEAjG,EAAgB0E,EAAuB1H,GAAQ,gBAAgB,WAC7DA,EAAM0E,SAAS,CACbP,SAAS,GAEb,IAEAnB,EAAgB0E,EAAuB1H,GAAQ,cAAc,WAC3DA,EAAM0E,SAAS,CACbP,SAAS,GAEb,IAEAnB,EAAgB0E,EAAuB1H,GAAQ,eAAe,SAAUyE,GACtE,IAAIjzB,EAASizB,EAAMxqB,EAEnB,IAAK+lB,EAAMlb,MAAMkgB,WAAahF,EAAMwQ,kBAAoBxQ,EAAMlb,MAAM8rB,aAClE,OAAO,EAGT,IAEIhM,EAAiB5G,EAAOsF,SAASC,MAAMvD,EAAMp4C,MAAMsU,UAEnD2nC,GAA4C,IAAxB7D,EAAMlb,MAAM8jB,UAAmB5I,EAAMlb,MAAM8rB,aAJhD,IAQf/M,GAAoCryB,EAAS,IAC/CA,EAAS,GAIPqyB,IAPmC,KADpBv+C,KAAKG,IAAIm/C,EAAiB5E,EAAMlb,MAAM8rB,aAAc,GAC1B5Q,EAAMlb,MAAM8rB,cAObp/B,EAAS,IACnDA,EAAS,GAGX,IACIwwB,EAAW6B,EAAkB,KADf7D,EAAMwQ,gBAAgB3H,YACcr3B,GAQtD,OANIwuB,EAAMyQ,cACR,CAAC,kBAAmB,eAAgB,cAAe,aAAc,YAAa,eAAe3jD,SAAQ,SAAUujD,GAC7GrQ,EAAMyQ,aAAarwC,MAAMiwC,IAAQ,EAAI7N,EAAc1nD,SAASknD,EAAU,IAAKhC,EAAMp4C,MAAMs6C,KACzF,KAGK,CACT,IAEAc,EAAgB0E,EAAuB1H,GAAQ,cAAc,SAAUwJ,GACrExJ,EAAMqJ,OAAOrJ,EAAMlb,MAAM8jB,WAAkC,kBAAdY,EAAyBA,EAAY,GACpF,IAEAxG,EAAgB0E,EAAuB1H,GAAQ,aAAa,SAAUwJ,GACpExJ,EAAMqJ,OAAOrJ,EAAMlb,MAAM8jB,WAAkC,kBAAdY,EAAyBA,EAAY,GACpF,IAEAxG,EAAgB0E,EAAuB1H,GAAQ,UAAU,SAAUgC,GAIjEA,GAFAA,EAAWA,EAAW,EAAI,EAAIA,IAEPhC,EAAMlb,MAAMue,aAAerD,EAAMlb,MAAMue,aAAerB,EAE7EhC,EAAM0E,SAAS,CACbkE,UAAW5G,GAEf,IAEAhC,EAAMlb,MAAQ,CACZqe,aAAczB,EAAOyB,aACrBgB,SAAS,EACTuJ,YAAY,EACZ9E,UAAW,EACXgI,aAAc,EACdvN,aAAc,GAETrD,CACT,CAwKA,OA9UoBxB,EAwKP+R,GAxKoB1R,EAwKZ,CAAC,CACpBpkD,IAAK,oBACL2D,MAAO,WACL1C,KAAKu1D,aACP,GACC,CACDx2D,IAAK,qBACL2D,MAAO,SAA4BqsD,GAC7B/uD,KAAKkM,MAAMu7C,eAAiBznD,KAAKopC,MAAMqe,cACzCznD,KAAKgpD,SAAS,CACZvB,aAAcznD,KAAKkM,MAAMu7C,aACzByF,UAAWltD,KAAKq1D,aAAar1D,KAAKkM,MAAMu7C,gBAIxCznD,KAAKkM,MAAMsU,WAAauuC,EAAUvuC,UAMtCxgB,KAAKqtD,aACP,GACC,CACDtuD,IAAK,uBACL2D,MAAO,WACL1C,KAAKw1D,eACP,GACC,CACDz2D,IAAK,cACL2D,MAAO,YAGL,EAAIwoD,EAAQ9rD,WAAWmoB,iBAAiB,SAAUvnB,KAAKqtD,cAEvD,EAAInC,EAAQ9rD,WAAWmoB,iBAAiB,mBAAoBvnB,KAAKqtD,aAGjErtD,KAAKqtD,aACP,GACC,CACDtuD,IAAK,gBACL2D,MAAO,YAEL,EAAIwoD,EAAQ9rD,WAAWooB,oBAAoB,SAAUxnB,KAAKqtD,cAC1D,EAAInC,EAAQ9rD,WAAWooB,oBAAoB,mBAAoBxnB,KAAKqtD,YACtE,GACC,CACDtuD,IAAK,eACL2D,MAAO,SAAsB+kD,GAC3B,IAAIyF,EAAYzF,EAchB,OAZIA,GAAgBznD,KAAKopC,MAAMue,eAC7BuF,EAAYltD,KAAKopC,MAAMue,cAGrBF,EAAeznD,KAAKopC,MAAM8jB,UAAYltD,KAAKopC,MAAM8rB,eACnDhI,EAAYltD,KAAKopC,MAAM8jB,WAGrBzF,EAAeznD,KAAKopC,MAAM8jB,YAC5BA,EAAYzF,GAGPyF,CACT,GACC,CACDnuD,IAAK,cACL2D,MAAO,WACL,IAAI4sD,EAAStvD,KAEb,OAAOA,KAAKkM,MAAMsU,SAAS9R,KAAI,SAAU4W,EAAKvlB,GAC5C,IAAI01D,EAAY1K,EAAY3rD,QAAQsxD,MAAK,EAAO3wD,IAAUuvD,EAAOlmB,MAAMqe,cAEnEiO,EAAa,CACf32D,IAAKgB,EACLiqC,IAAK,SAAaz9B,GAChB,OAAO+iD,EAAOiC,aAAahlD,EAAGxM,EAChC,EACAkmD,UAAWwP,EACXnf,QAASgZ,EAAOqB,gBAAgBzyB,KAAKoxB,EAAQvvD,EAAOuvD,EAAOpjD,MAAMsU,SAASzgB,IAC1Eq0D,UAAW9E,EAAOqB,gBAAgBzyB,KAAKoxB,EAAQvvD,EAAOuvD,EAAOpjD,MAAMsU,SAASzgB,IAC5E,aAAc,GAAGu9B,OAAOgyB,EAAOpjD,MAAM8kD,OAAOzD,KAAM,KAAKjwB,OAAOv9B,EAAQ,GACtE2kB,MAAO,CACLqQ,MAAOu6B,EAAOpjD,MAAMwlD,aAGxB,OAAoBpP,EAAOljD,QAAQya,cAAc,KAAM8oC,EAAS,CAAC,EAAG+S,EAAY,CAC9ErB,KAAM,SACNlB,SAAU,IACR7tC,EACN,GACF,GACC,CACDvmB,IAAK,SACL2D,MAAO,WACL,IAAIytD,EAASnwD,KAEb,IAAKA,KAAKkM,MAAMsU,SACd,OAAO,KAGT,IAMIm1C,EANA9D,EAAcvP,EAAOsF,SAASC,MAAM7nD,KAAKkM,MAAMsU,UAAY,EAE3DyxC,EAAUjyD,KAAKopC,MAAM4oB,YAAchyD,KAAKopC,MAAM8jB,UAAY,EAE1DgF,EAAUlyD,KAAKopC,MAAM4oB,YAAchyD,KAAKopC,MAAM8jB,UAAYltD,KAAKopC,MAAMue,aAGrEQ,GAAmBnoD,KAAKopC,MAAM8jB,WAAaltD,KAAKopC,MAAMkgB,UAAY,GAClElB,GAAgB,EAAItB,EAAc1nD,SAAS+oD,EAAiB,KAAMnoD,KAAKkM,MAAMs6C,MAC7E6B,EAAiBroD,KAAKkM,MAAMm8C,eAAiB,KAejD,OAdAsN,EAAiB,CACfrN,gBAAiBF,EACjBwN,aAAcxN,EACdyN,YAAazN,EACbI,WAAYJ,EACZr2C,UAAWq2C,EACXG,YAAaH,EACbM,yBAA0BL,EAC1BM,sBAAuBN,EACvByN,qBAAsBzN,EACtBO,oBAAqBP,EACrBQ,mBAAoBR,EACpBS,qBAAsBT,GAEJ/F,EAAOljD,QAAQya,cAAc,MAAO,CACtDosC,UAAW8E,EAAY3rD,QAAQg0D,UAAS,IAC1B9Q,EAAOljD,QAAQya,cAAc,MAAO,CAClDosC,UAAW8E,EAAY3rD,QAAQq0D,SAAQ,GACvCzpB,IAAKhqC,KAAK+1D,oBACIzT,EAAOljD,QAAQya,cAAc,SAAU,CACrDpJ,KAAM,SACNw1C,UAAW8E,EAAY3rD,QAAQ60D,YAAYhC,GAC3C3b,QAAS,WACP,OAAO6Z,EAAO6F,YAChB,EACA,aAAch2D,KAAKkM,MAAM8kD,OAAOwC,YAC9B3B,EAA2BvP,EAAOljD,QAAQya,cAAcixC,EAAgB1rD,QAAS,CACnFisC,QAAS,KACT4a,UAAW8E,EAAY3rD,QAAQozD,QAAO,EAAOxyD,KAAKopC,MAAMqf,SACxD9C,YAAa3lD,KAAKi2D,UAClBrQ,aAAc5lD,KAAKg2D,WACnBzQ,YAAavlD,KAAKulD,YAClBH,aAAcplD,KAAKolD,aACnBK,WAAYzlD,KAAKylD,WACjB/gC,MAAOixC,EACP5P,SAAU/lD,KAAKk2D,gBACflR,iBAAkBhlD,KAAKkM,MAAM+hD,cAC5BjuD,KAAKoyD,eAA8B9P,EAAOljD,QAAQya,cAAc,KAAM,CACvEosC,UAAW8E,EAAY3rD,QAAQozD,QAAO,EAAOxyD,KAAKopC,MAAMqf,SACxDze,IAAK,SAAazxB,GAChB,OAAO43C,EAAO+F,gBAAgB39C,EAChC,EACAmM,MAAOixC,GACN31D,KAAKoyD,eAA6B9P,EAAOljD,QAAQya,cAAc,SAAU,CAC1EpJ,KAAM,SACNw1C,UAAW8E,EAAY3rD,QAAQ80D,YAAYhC,GAC3C5b,QAAS,WACP,OAAO6Z,EAAO8F,WAChB,EACA,aAAcj2D,KAAKkM,MAAM8kD,OAAO6C,cAEpC,MA3U0EzI,EAAkBtI,EAAYjkD,UAAWskD,GAAiBC,GAAagI,EAAkBtI,EAAaM,GA8U3KyR,CACT,CAzT0B,CAyTxBvS,EAAOna,WAEThpC,EAAAA,QAAkB01D,EAElBvN,EAAgBuN,EAAQ,cAAe,UAEvCvN,EAAgBuN,EAAQ,eAAgB,CACtCrO,KAAM,aACNwK,OAAQ,CACNwC,UAAW,wBACXK,WAAY,oBACZtG,KAAM,cAER9F,aAAc,EACdiK,WAAY,GACZrJ,eAAgB,yCC7XlBzpD,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAAA,aAAkB,EAElB,IAEgCijD,EAF5B+T,GAE4B/T,EAFS9iD,EAAQ,QAEI8iD,EAAIC,WAAaD,EAAM,CAAEhjD,QAASgjD,GAIvF,IAAIgU,EAAW,CACbnD,KAAM,SAAcoD,GAClB,OAAO,EAAIF,EAAY/2D,SAJ3B,SAAyBgjD,EAAKrjD,EAAK2D,GAAiK,OAApJ3D,KAAOqjD,EAAOxjD,OAAOoF,eAAeo+C,EAAKrjD,EAAK,CAAE2D,MAAOA,EAAOkc,YAAY,EAAMD,cAAc,EAAMukC,UAAU,IAAkBd,EAAIrjD,GAAO2D,EAAgB0/C,CAAK,CAI5KkF,CAAgB,CAC9C,iBAAiB,GAChB+O,GAAmB,KAAMA,GAC9B,EACAjD,SAAU,SAAkBkD,GAC1B,OAAO,EAAIH,EAAY/2D,SAAS,CAC9Bm3D,UAAU,EACV,kBAAmBD,GAEvB,EACA7C,QAAS,SAAiB6C,EAAU9P,GAClC,OAAO,EAAI2P,EAAY/2D,SAAS,CAC9B,kBAAmBk3D,EACnB,iBAAkBA,EAClB,kBAA4B,eAAT9P,EACnB,gBAA0B,eAATA,GAErB,EACAgM,OAAQ,SAAgB8D,EAAUE,GAChC,OAAO,EAAIL,EAAY/2D,SAAS,CAC9Bq3D,QAASH,EACTI,OAAQJ,EACRK,UAAWH,GAEf,EACA9F,KAAM,SAAc4F,EAAUn2C,EAAUy2C,GACtC,OAAO,EAAIT,EAAY/2D,SAAS,CAC9By3D,OAAQP,EACRQ,MAAOR,EACPn2C,SAAUA,EACVy2C,SAAUA,GAEd,EACA3C,WAAY,SAAoB5zC,GAC9B,OAAO,EAAI81C,EAAY/2D,SAAS,CAC9B,8BAA8B,EAC9B,mBAAoBihB,GAExB,EACA6zC,WAAY,SAAoB7zC,GAC9B,OAAO,EAAI81C,EAAY/2D,SAAS,CAC9B,8BAA8B,EAC9B,mBAAoBihB,GAExB,EACA8zC,IAAK,SAAah0C,GAChB,OAAO,EAAIg2C,EAAY/2D,SAAS,CAC9B23D,KAAK,EACL52C,SAAUA,GAEd,GAEFhhB,EAAAA,QAAkBi3D,mCCjElBx3D,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAQ81D,gBAAa,EASrB91D,EAAQ81D,WAPS,SAAoBxX,GACnC,IAAI1oB,EAAQ0oB,EAAGuZ,YACXtyC,EAAQuyC,iBAAiBxZ,GAE7B,OADA1oB,GAASje,SAAS4N,EAAMwyC,YAAcpgD,SAAS4N,EAAMyyC,YAEvD,oCCPAv4D,OAAOoF,eAAe7E,EAAS,KAA/BP,CACEggB,YAAY,EACZxe,IAAK,WACH,OAAOg3D,EAAUh4D,OACnB,IAeF,IAAIg4D,EAAYjV,EAAuB7iD,EAAQ,OAE3C+3D,EAAS/3D,EAAQ,MAEjB0rD,EAAU7I,EAAuB7iD,EAAQ,OAE7C,SAAS6iD,EAAuBC,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEhjD,QAASgjD,EAAO,kCC5B9FxjD,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAAA,aAAkB,EAMlBA,EAAAA,QAJe,WACb,OAAOya,QACT,mCCPAhb,OAAOoF,eAAe7E,EAAS,aAAc,CAC3CuD,OAAO,IAETvD,EAAAA,aAAkB,EAMlBA,EAAAA,QAJe,WACb,OAAOwa,MACT,yCCAiBS,EAAE9a,EAAQ,MAASqe,EAAExb,OAAO4Z,IAAI,iBAAiB0B,EAAEtb,OAAO4Z,IAAI,kBAAkB2L,EAAE9oB,OAAOC,UAAUf,eAAeqM,EAAEiQ,EAAEyB,mDAAmD82B,kBAAkB15B,EAAE,CAACla,KAAI,EAAGirC,KAAI,EAAGstB,QAAO,EAAGC,UAAS,GAChP,SAAS1vB,EAAEzuB,EAAEF,EAAEmB,GAAG,IAAIlB,EAAEgB,EAAE,CAAC,EAAE5N,EAAE,KAAKmR,EAAE,KAAiF,IAAIvE,UAAhF,IAASkB,IAAI9N,EAAE,GAAG8N,QAAG,IAASnB,EAAEna,MAAMwN,EAAE,GAAG2M,EAAEna,UAAK,IAASma,EAAE8wB,MAAMtsB,EAAExE,EAAE8wB,KAAc9wB,EAAEwO,EAAE1oB,KAAKka,EAAEC,KAAKF,EAAEnb,eAAeqb,KAAKgB,EAAEhB,GAAGD,EAAEC,IAAI,GAAGC,GAAGA,EAAE6rB,aAAa,IAAI9rB,KAAKD,EAAEE,EAAE6rB,kBAAe,IAAS9qB,EAAEhB,KAAKgB,EAAEhB,GAAGD,EAAEC,IAAI,MAAM,CAAC6E,SAASL,EAAElN,KAAK2I,EAAEra,IAAIwN,EAAEy9B,IAAItsB,EAAExR,MAAMiO,EAAE8vB,OAAO9/B,EAAE0e,QAAQ,CAAoB1pB,EAAQq4D,IAAI3vB,EAAE1oC,EAAQs4D,KAAK5vB,mCCD7V,IAAIpqB,EAAEtb,OAAO4Z,IAAI,iBAAiB5R,EAAEhI,OAAO4Z,IAAI,gBAAgB9C,EAAE9W,OAAO4Z,IAAI,kBAAkB8rB,EAAE1lC,OAAO4Z,IAAI,qBAAqB+rB,EAAE3lC,OAAO4Z,IAAI,kBAAkBsiB,EAAEl8B,OAAO4Z,IAAI,kBAAkByiB,EAAEr8B,OAAO4Z,IAAI,iBAAiB7B,EAAE/X,OAAO4Z,IAAI,qBAAqB0iB,EAAEt8B,OAAO4Z,IAAI,kBAAkBwiB,EAAEp8B,OAAO4Z,IAAI,cAAcgsB,EAAE5lC,OAAO4Z,IAAI,cAAclB,EAAE1Y,OAAO0a,SACzW,IAAI2M,EAAE,CAAC+e,UAAU,WAAW,OAAM,CAAE,EAAEO,mBAAmB,WAAW,EAAED,oBAAoB,WAAW,EAAEJ,gBAAgB,WAAW,GAAG3c,EAAEltB,OAAOqe,OAAO0gB,EAAE,CAAC,EAAE,SAAS0D,EAAEnoB,EAAEC,EAAE5M,GAAGvM,KAAKkM,MAAMgN,EAAElZ,KAAKimC,QAAQ9sB,EAAEnZ,KAAKooC,KAAKzK,EAAE39B,KAAKqpC,QAAQ98B,GAAGid,CAAC,CACwI,SAASkV,IAAI,CAAyB,SAAS4C,EAAEpoB,EAAEC,EAAE5M,GAAGvM,KAAKkM,MAAMgN,EAAElZ,KAAKimC,QAAQ9sB,EAAEnZ,KAAKooC,KAAKzK,EAAE39B,KAAKqpC,QAAQ98B,GAAGid,CAAC,CADxP6X,EAAExiC,UAAUs+C,iBAAiB,CAAC,EACpQ9b,EAAExiC,UAAUmqD,SAAS,SAAS9vC,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMtB,MAAM,yHAAyH5X,KAAKqpC,QAAQZ,gBAAgBzoC,KAAKkZ,EAAEC,EAAE,WAAW,EAAEkoB,EAAExiC,UAAU+vD,YAAY,SAAS11C,GAAGlZ,KAAKqpC,QAAQP,mBAAmB9oC,KAAKkZ,EAAE,cAAc,EAAgBwlB,EAAE7/B,UAAUwiC,EAAExiC,UAAsF,IAAI2iC,EAAEF,EAAEziC,UAAU,IAAI6/B,EACrf8C,EAAErzB,YAAYmzB,EAAExV,EAAE0V,EAAEH,EAAExiC,WAAW2iC,EAAEyH,sBAAqB,EAAG,IAAIrF,EAAErlC,MAAMC,QAAQ8/B,EAAE1/B,OAAOC,UAAUf,eAAe2pC,EAAE,CAAC5e,QAAQ,MAAM6f,EAAE,CAAC3pC,KAAI,EAAGirC,KAAI,EAAGstB,QAAO,EAAGC,UAAS,GACtK,SAAS9rB,EAAEvyB,EAAEC,EAAE5M,GAAG,IAAI4N,EAAEf,EAAE,CAAC,EAAEuE,EAAE,KAAKD,EAAE,KAAK,GAAG,MAAMvE,EAAE,IAAIgB,UAAK,IAAShB,EAAE6wB,MAAMtsB,EAAEvE,EAAE6wB,UAAK,IAAS7wB,EAAEpa,MAAM4e,EAAE,GAAGxE,EAAEpa,KAAKoa,EAAEmlB,EAAEt/B,KAAKma,EAAEgB,KAAKuuB,EAAE5qC,eAAeqc,KAAKf,EAAEe,GAAGhB,EAAEgB,IAAI,IAAIE,EAAEnc,UAAUC,OAAO,EAAE,GAAG,IAAIkc,EAAEjB,EAAEoH,SAASjU,OAAO,GAAG,EAAE8N,EAAE,CAAC,IAAI,IAAID,EAAE7b,MAAM8b,GAAGqN,EAAE,EAAEA,EAAErN,EAAEqN,IAAItN,EAAEsN,GAAGxpB,UAAUwpB,EAAE,GAAGtO,EAAEoH,SAASpG,CAAC,CAAC,GAAGlB,GAAGA,EAAE+rB,aAAa,IAAI9qB,KAAKE,EAAEnB,EAAE+rB,kBAAe,IAAS7rB,EAAEe,KAAKf,EAAEe,GAAGE,EAAEF,IAAI,MAAM,CAAC6D,SAASP,EAAEhN,KAAKyI,EAAEna,IAAI4e,EAAEqsB,IAAItsB,EAAExR,MAAMkN,EAAE6wB,OAAOxC,EAAE5e,QAAQ,CAChV,SAASujB,EAAElzB,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE8E,WAAWP,CAAC,CAAoG,IAAI4uB,EAAE,OAAO,SAASK,EAAExzB,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAEna,IAA7K,SAAgBma,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAID,EAAExQ,QAAQ,SAAQ,SAASwQ,GAAG,OAAOC,EAAED,EAAE,GAAE,CAA+Ew+C,CAAO,GAAGx+C,EAAEna,KAAKoa,EAAExa,SAAS,GAAG,CAC/W,SAAS2vC,EAAEp1B,EAAEC,EAAE5M,EAAE4N,EAAEf,GAAG,IAAIuE,SAASzE,EAAK,cAAcyE,GAAG,YAAYA,IAAEzE,EAAE,MAAK,IAAIwE,GAAE,EAAG,GAAG,OAAOxE,EAAEwE,GAAE,OAAQ,OAAOC,GAAG,IAAK,SAAS,IAAK,SAASD,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOxE,EAAE8E,UAAU,KAAKP,EAAE,KAAKtT,EAAEuT,GAAE,GAAI,GAAGA,EAAE,OAAWtE,EAAEA,EAANsE,EAAExE,GAASA,EAAE,KAAKiB,EAAE,IAAIuyB,EAAEhvB,EAAE,GAAGvD,EAAEypB,EAAExqB,IAAI7M,EAAE,GAAG,MAAM2M,IAAI3M,EAAE2M,EAAExQ,QAAQ2jC,EAAE,OAAO,KAAKiC,EAAEl1B,EAAED,EAAE5M,EAAE,IAAG,SAAS2M,GAAG,OAAOA,CAAC,KAAI,MAAME,IAAIgzB,EAAEhzB,KAAKA,EADnW,SAAWF,EAAEC,GAAG,MAAM,CAAC6E,SAASP,EAAEhN,KAAKyI,EAAEzI,KAAK1R,IAAIoa,EAAE6wB,IAAI9wB,EAAE8wB,IAAI99B,MAAMgN,EAAEhN,MAAM+9B,OAAO/wB,EAAE+wB,OAAO,CACyQkC,CAAE/yB,EAAE7M,IAAI6M,EAAEra,KAAK2e,GAAGA,EAAE3e,MAAMqa,EAAEra,IAAI,IAAI,GAAGqa,EAAEra,KAAK2J,QAAQ2jC,EAAE,OAAO,KAAKnzB,IAAIC,EAAE7a,KAAK8a,IAAI,EAAyB,GAAvBsE,EAAE,EAAEvD,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOypB,EAAE1qB,GAAG,IAAI,IAAImB,EAAE,EAAEA,EAAEnB,EAAE/a,OAAOkc,IAAI,CAC/e,IAAID,EAAED,EAAEuyB,EADwe/uB,EACrfzE,EAAEmB,GAAeA,GAAGqD,GAAG4wB,EAAE3wB,EAAExE,EAAE5M,EAAE6N,EAAEhB,EAAE,MAAM,GAAGgB,EAPsU,SAAWlB,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAE2B,GAAG3B,EAAE2B,IAAI3B,EAAE,eAA0CA,EAAE,IAAI,CAO5b8D,CAAE9D,GAAG,oBAAoBkB,EAAE,IAAIlB,EAAEkB,EAAEpb,KAAKka,GAAGmB,EAAE,IAAIsD,EAAEzE,EAAEitB,QAAQyE,MAA6BltB,GAAG4wB,EAA1B3wB,EAAEA,EAAEjb,MAA0ByW,EAAE5M,EAAtB6N,EAAED,EAAEuyB,EAAE/uB,EAAEtD,KAAkBjB,QAAQ,GAAG,WAAWuE,EAAE,MAAMxE,EAAExV,OAAOuV,GAAGtB,MAAM,mDAAmD,oBAAoBuB,EAAE,qBAAqBva,OAAOqG,KAAKiU,GAAGja,KAAK,MAAM,IAAIka,GAAG,6EAA6E,OAAOuE,CAAC,CACzZ,SAASs4B,EAAE98B,EAAEC,EAAE5M,GAAG,GAAG,MAAM2M,EAAE,OAAOA,EAAE,IAAIiB,EAAE,GAAGf,EAAE,EAAmD,OAAjDk1B,EAAEp1B,EAAEiB,EAAE,GAAG,IAAG,SAASjB,GAAG,OAAOC,EAAEna,KAAKuN,EAAE2M,EAAEE,IAAI,IAAUe,CAAC,CAAC,SAASw8B,EAAEz9B,GAAG,IAAI,IAAIA,EAAEy+C,QAAQ,CAAC,IAAIx+C,EAAED,EAAE0+C,SAAQz+C,EAAEA,KAAMmnB,MAAK,SAASnnB,GAAM,IAAID,EAAEy+C,UAAU,IAAIz+C,EAAEy+C,UAAQz+C,EAAEy+C,QAAQ,EAAEz+C,EAAE0+C,QAAQz+C,EAAC,IAAE,SAASA,GAAM,IAAID,EAAEy+C,UAAU,IAAIz+C,EAAEy+C,UAAQz+C,EAAEy+C,QAAQ,EAAEz+C,EAAE0+C,QAAQz+C,EAAC,KAAI,IAAID,EAAEy+C,UAAUz+C,EAAEy+C,QAAQ,EAAEz+C,EAAE0+C,QAAQz+C,EAAE,CAAC,GAAG,IAAID,EAAEy+C,QAAQ,OAAOz+C,EAAE0+C,QAAQx4D,QAAQ,MAAM8Z,EAAE0+C,OAAQ,CAC5Z,IAAI5gB,EAAE,CAACnuB,QAAQ,MAAMsuB,EAAE,CAAC3oB,WAAW,MAAM6oB,EAAE,CAACrL,uBAAuBgL,EAAE3oB,wBAAwB8oB,EAAExE,kBAAkBlL,GAAGtoC,EAAQyoD,SAAS,CAACl5C,IAAIsnC,EAAE5kC,QAAQ,SAAS8H,EAAEC,EAAE5M,GAAGypC,EAAE98B,GAAE,WAAWC,EAAEza,MAAMsB,KAAK9B,UAAU,GAAEqO,EAAE,EAAEs7C,MAAM,SAAS3uC,GAAG,IAAIC,EAAE,EAAuB,OAArB68B,EAAE98B,GAAE,WAAWC,GAAG,IAAUA,CAAC,EAAEm1C,QAAQ,SAASp1C,GAAG,OAAO88B,EAAE98B,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAE2+C,KAAK,SAAS3+C,GAAG,IAAIkzB,EAAElzB,GAAG,MAAMtB,MAAM,yEAAyE,OAAOsB,CAAC,GAAG/Z,EAAQgpC,UAAU9G,EAAEliC,EAAQ24D,SAAS7+C,EACne9Z,EAAQ44D,SAASjwB,EAAE3oC,EAAQ64D,cAAc12B,EAAEniC,EAAQ84D,WAAWpwB,EAAE1oC,EAAQ+4D,SAASz5B,EAAEt/B,EAAQ0c,mDAAmDw7B,EAC9Il4C,EAAQg5D,aAAa,SAASj/C,EAAEC,EAAE5M,GAAG,GAAG,OAAO2M,QAAG,IAASA,EAAE,MAAMtB,MAAM,iFAAiFsB,EAAE,KAAK,IAAIiB,EAAE2R,EAAE,CAAC,EAAE5S,EAAEhN,OAAOkN,EAAEF,EAAEna,IAAI4e,EAAEzE,EAAE8wB,IAAItsB,EAAExE,EAAE+wB,OAAO,GAAG,MAAM9wB,EAAE,CAAoE,QAAnE,IAASA,EAAE6wB,MAAMrsB,EAAExE,EAAE6wB,IAAItsB,EAAE+pB,EAAE5e,cAAS,IAAS1P,EAAEpa,MAAMqa,EAAE,GAAGD,EAAEpa,KAAQma,EAAEzI,MAAMyI,EAAEzI,KAAKw0B,aAAa,IAAI5qB,EAAEnB,EAAEzI,KAAKw0B,aAAa,IAAI7qB,KAAKjB,EAAEmlB,EAAEt/B,KAAKma,EAAEiB,KAAKsuB,EAAE5qC,eAAesc,KAAKD,EAAEC,QAAG,IAASjB,EAAEiB,SAAI,IAASC,EAAEA,EAAED,GAAGjB,EAAEiB,GAAG,CAAC,IAAIA,EAAElc,UAAUC,OAAO,EAAE,GAAG,IAAIic,EAAED,EAAEqG,SAASjU,OAAO,GAAG,EAAE6N,EAAE,CAACC,EAAE9b,MAAM6b,GACrf,IAAI,IAAIsN,EAAE,EAAEA,EAAEtN,EAAEsN,IAAIrN,EAAEqN,GAAGxpB,UAAUwpB,EAAE,GAAGvN,EAAEqG,SAASnG,CAAC,CAAC,MAAM,CAAC2D,SAASP,EAAEhN,KAAKyI,EAAEzI,KAAK1R,IAAIqa,EAAE4wB,IAAIrsB,EAAEzR,MAAMiO,EAAE8vB,OAAOvsB,EAAE,EAAEve,EAAQi5D,cAAc,SAASl/C,GAAqK,OAAlKA,EAAE,CAAC8E,SAASwgB,EAAEgH,cAActsB,EAAEm/C,eAAen/C,EAAEo/C,aAAa,EAAEC,SAAS,KAAKC,SAAS,KAAKC,cAAc,KAAKC,YAAY,OAAQH,SAAS,CAACv6C,SAASqgB,EAAEpgB,SAAS/E,GAAUA,EAAEs/C,SAASt/C,CAAC,EAAE/Z,EAAQ0a,cAAc4xB,EAAEtsC,EAAQw5D,cAAc,SAASz/C,GAAG,IAAIC,EAAEsyB,EAAEvN,KAAK,KAAKhlB,GAAY,OAATC,EAAE1I,KAAKyI,EAASC,CAAC,EAAEha,EAAQy5D,UAAU,WAAW,MAAM,CAAC/vC,QAAQ,KAAK,EAC9d1pB,EAAQ05D,WAAW,SAAS3/C,GAAG,MAAM,CAAC8E,SAAS9D,EAAE4D,OAAO5E,EAAE,EAAE/Z,EAAQ25D,eAAe1sB,EAAEjtC,EAAQ45D,KAAK,SAAS7/C,GAAG,MAAM,CAAC8E,SAAS+pB,EAAE7pB,SAAS,CAACy5C,SAAS,EAAEC,QAAQ1+C,GAAGiF,MAAMw4B,EAAE,EAAEx3C,EAAQ65D,KAAK,SAAS9/C,EAAEC,GAAG,MAAM,CAAC6E,SAASugB,EAAE9tB,KAAKyI,EAAE+5B,aAAQ,IAAS95B,EAAE,KAAKA,EAAE,EAAEha,EAAQ85D,gBAAgB,SAAS//C,GAAG,IAAIC,EAAEg+B,EAAE3oB,WAAW2oB,EAAE3oB,WAAW,CAAC,EAAE,IAAItV,GAAG,CAAC,QAAQi+B,EAAE3oB,WAAWrV,CAAC,CAAC,EAAEha,EAAQ+5D,aAAa,WAAW,MAAMthD,MAAM,2DAA4D,EAC1czY,EAAQixC,YAAY,SAASl3B,EAAEC,GAAG,OAAO69B,EAAEnuB,QAAQunB,YAAYl3B,EAAEC,EAAE,EAAEha,EAAQkxC,WAAW,SAASn3B,GAAG,OAAO89B,EAAEnuB,QAAQwnB,WAAWn3B,EAAE,EAAE/Z,EAAQ2xC,cAAc,WAAW,EAAE3xC,EAAQ4xC,iBAAiB,SAAS73B,GAAG,OAAO89B,EAAEnuB,QAAQkoB,iBAAiB73B,EAAE,EAAE/Z,EAAQmxC,UAAU,SAASp3B,EAAEC,GAAG,OAAO69B,EAAEnuB,QAAQynB,UAAUp3B,EAAEC,EAAE,EAAEha,EAAQgyC,MAAM,WAAW,OAAO6F,EAAEnuB,QAAQsoB,OAAO,EAAEhyC,EAAQoxC,oBAAoB,SAASr3B,EAAEC,EAAE5M,GAAG,OAAOyqC,EAAEnuB,QAAQ0nB,oBAAoBr3B,EAAEC,EAAE5M,EAAE,EAC7bpN,EAAQqxC,mBAAmB,SAASt3B,EAAEC,GAAG,OAAO69B,EAAEnuB,QAAQ2nB,mBAAmBt3B,EAAEC,EAAE,EAAEha,EAAQsxC,gBAAgB,SAASv3B,EAAEC,GAAG,OAAO69B,EAAEnuB,QAAQ4nB,gBAAgBv3B,EAAEC,EAAE,EAAEha,EAAQuxC,QAAQ,SAASx3B,EAAEC,GAAG,OAAO69B,EAAEnuB,QAAQ6nB,QAAQx3B,EAAEC,EAAE,EAAEha,EAAQwxC,WAAW,SAASz3B,EAAEC,EAAE5M,GAAG,OAAOyqC,EAAEnuB,QAAQ8nB,WAAWz3B,EAAEC,EAAE5M,EAAE,EAAEpN,EAAQyxC,OAAO,SAAS13B,GAAG,OAAO89B,EAAEnuB,QAAQ+nB,OAAO13B,EAAE,EAAE/Z,EAAQ0xC,SAAS,SAAS33B,GAAG,OAAO89B,EAAEnuB,QAAQgoB,SAAS33B,EAAE,EAAE/Z,EAAQ+xC,qBAAqB,SAASh4B,EAAEC,EAAE5M,GAAG,OAAOyqC,EAAEnuB,QAAQqoB,qBAAqBh4B,EAAEC,EAAE5M,EAAE,EAC/epN,EAAQ6xC,cAAc,WAAW,OAAOgG,EAAEnuB,QAAQmoB,eAAe,EAAE7xC,EAAQogD,QAAQ,4CCtBjFrgD,EAAOC,QAAU,EAAjBD,wCCAAA,EAAOC,QAAU,EAAjBD,uCCMW,SAASkb,EAAElB,EAAEC,GAAG,IAAIC,EAAEF,EAAE/a,OAAO+a,EAAE5a,KAAK6a,GAAGD,EAAE,KAAK,EAAEE,GAAG,CAAC,IAAIe,EAAEf,EAAE,IAAI,EAAE7M,EAAE2M,EAAEiB,GAAG,KAAG,EAAEE,EAAE9N,EAAE4M,IAA0B,MAAMD,EAA7BA,EAAEiB,GAAGhB,EAAED,EAAEE,GAAG7M,EAAE6M,EAAEe,CAAc,CAAC,CAAC,SAASuD,EAAExE,GAAG,OAAO,IAAIA,EAAE/a,OAAO,KAAK+a,EAAE,EAAE,CAAC,SAASyE,EAAEzE,GAAG,GAAG,IAAIA,EAAE/a,OAAO,OAAO,KAAK,IAAIgb,EAAED,EAAE,GAAGE,EAAEF,EAAEhI,MAAM,GAAGkI,IAAID,EAAE,CAACD,EAAE,GAAGE,EAAEF,EAAE,IAAI,IAAIiB,EAAE,EAAE5N,EAAE2M,EAAE/a,OAAOsgC,EAAElyB,IAAI,EAAE4N,EAAEskB,GAAG,CAAC,IAAI/W,EAAE,GAAGvN,EAAE,GAAG,EAAE2R,EAAE5S,EAAEwO,GAAGvd,EAAEud,EAAE,EAAE6W,EAAErlB,EAAE/O,GAAG,GAAG,EAAEkQ,EAAEyR,EAAE1S,GAAGjP,EAAEoC,GAAG,EAAE8N,EAAEkkB,EAAEzS,IAAI5S,EAAEiB,GAAGokB,EAAErlB,EAAE/O,GAAGiP,EAAEe,EAAEhQ,IAAI+O,EAAEiB,GAAG2R,EAAE5S,EAAEwO,GAAGtO,EAAEe,EAAEuN,OAAQ,MAAGvd,EAAEoC,GAAG,EAAE8N,EAAEkkB,EAAEnlB,IAA0B,MAAMF,EAA7BA,EAAEiB,GAAGokB,EAAErlB,EAAE/O,GAAGiP,EAAEe,EAAEhQ,CAAc,EAAC,CAAC,OAAOgP,CAAC,CAC3c,SAASkB,EAAEnB,EAAEC,GAAG,IAAIC,EAAEF,EAAEigD,UAAUhgD,EAAEggD,UAAU,OAAO,IAAI//C,EAAEA,EAAEF,EAAE0V,GAAGzV,EAAEyV,EAAE,CAAC,GAAG,kBAAkBwqC,aAAa,oBAAoBA,YAAYpmD,IAAI,CAAC,IAAIyK,EAAE27C,YAAYj6D,EAAQsqB,aAAa,WAAW,OAAOhM,EAAEzK,KAAK,CAAC,KAAK,CAAC,IAAIiG,EAAE/C,KAAK2xB,EAAE5uB,EAAEjG,MAAM7T,EAAQsqB,aAAa,WAAW,OAAOxQ,EAAEjG,MAAM60B,CAAC,CAAC,CAAC,IAAIC,EAAE,GAAGzJ,EAAE,GAAGG,EAAE,EAAEtkB,EAAE,KAAK6tB,EAAE,EAAEltB,GAAE,EAAGmC,GAAE,EAAGwM,GAAE,EAAGmU,EAAE,oBAAoBppB,WAAWA,WAAW,KAAK8sB,EAAE,oBAAoBxsB,aAAaA,aAAa,KAAK6pB,EAAE,qBAAqB26B,aAAaA,aAAa,KACnT,SAAS/3B,EAAEpoB,GAAG,IAAI,IAAIC,EAAEuE,EAAE2gB,GAAG,OAAOllB,GAAG,CAAC,GAAG,OAAOA,EAAEouB,SAAS5pB,EAAE0gB,OAAQ,MAAGllB,EAAEmgD,WAAWpgD,GAAgD,MAA9CyE,EAAE0gB,GAAGllB,EAAEggD,UAAUhgD,EAAEogD,eAAen/C,EAAE0tB,EAAE3uB,EAAa,CAACA,EAAEuE,EAAE2gB,EAAE,CAAC,CAAC,SAASmD,EAAEtoB,GAAa,GAAVsQ,GAAE,EAAG8X,EAAEpoB,IAAO8D,EAAE,GAAG,OAAOU,EAAEoqB,GAAG9qB,GAAE,EAAG4mB,EAAEtF,OAAO,CAAC,IAAInlB,EAAEuE,EAAE2gB,GAAG,OAAOllB,GAAGsuB,EAAEjG,EAAEroB,EAAEmgD,UAAUpgD,EAAE,CAAC,CACra,SAASolB,EAAEplB,EAAEC,GAAG6D,GAAE,EAAGwM,IAAIA,GAAE,EAAG6X,EAAEqH,GAAGA,GAAG,GAAG7tB,GAAE,EAAG,IAAIzB,EAAE2uB,EAAE,IAAS,IAALzG,EAAEnoB,GAAOe,EAAEwD,EAAEoqB,GAAG,OAAO5tB,MAAMA,EAAEq/C,eAAepgD,IAAID,IAAIuyB,MAAM,CAAC,IAAItxB,EAAED,EAAEqtB,SAAS,GAAG,oBAAoBptB,EAAE,CAACD,EAAEqtB,SAAS,KAAKQ,EAAE7tB,EAAEs/C,cAAc,IAAIjtD,EAAE4N,EAAED,EAAEq/C,gBAAgBpgD,GAAGA,EAAEha,EAAQsqB,eAAe,oBAAoBld,EAAE2N,EAAEqtB,SAASh7B,EAAE2N,IAAIwD,EAAEoqB,IAAInqB,EAAEmqB,GAAGxG,EAAEnoB,EAAE,MAAMwE,EAAEmqB,GAAG5tB,EAAEwD,EAAEoqB,EAAE,CAAC,GAAG,OAAO5tB,EAAE,IAAIukB,GAAE,MAAO,CAAC,IAAI/W,EAAEhK,EAAE2gB,GAAG,OAAO3W,GAAG+f,EAAEjG,EAAE9Z,EAAE4xC,UAAUngD,GAAGslB,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQvkB,EAAE,KAAK6tB,EAAE3uB,EAAEyB,GAAE,CAAE,CAAC,CAD1a,qBAAqB4+C,gBAAW,IAASA,UAAUC,iBAAY,IAASD,UAAUC,WAAWC,gBAAgBF,UAAUC,WAAWC,eAAez7B,KAAKu7B,UAAUC,YAC2Q,IACzP1jB,EAD6P7J,GAAE,EAAGC,EAAE,KAAK1D,GAAG,EAAE2D,EAAE,EAAEK,GAAG,EACvc,SAASjB,IAAI,QAAOtsC,EAAQsqB,eAAeijB,EAAEL,EAAO,CAAC,SAASiC,IAAI,GAAG,OAAOlC,EAAE,CAAC,IAAIlzB,EAAE/Z,EAAQsqB,eAAeijB,EAAExzB,EAAE,IAAIC,GAAE,EAAG,IAAIA,EAAEizB,GAAE,EAAGlzB,EAAE,CAAC,QAAQC,EAAE68B,KAAK7J,GAAE,EAAGC,EAAE,KAAK,CAAC,MAAMD,GAAE,CAAE,CAAO,GAAG,oBAAoBzN,EAAEsX,EAAE,WAAWtX,EAAE4P,EAAE,OAAO,GAAG,qBAAqBsrB,eAAe,CAAC,IAAIjjB,EAAE,IAAIijB,eAAe5iB,EAAEL,EAAEkjB,MAAMljB,EAAEmjB,MAAMC,UAAUzrB,EAAE0H,EAAE,WAAWgB,EAAEgjB,YAAY,KAAK,CAAC,MAAMhkB,EAAE,WAAWrY,EAAE2Q,EAAE,EAAE,EAAE,SAAS1K,EAAE1qB,GAAGkzB,EAAElzB,EAAEizB,IAAIA,GAAE,EAAG6J,IAAI,CAAC,SAASvO,EAAEvuB,EAAEC,GAAGuvB,EAAE/K,GAAE,WAAWzkB,EAAE/Z,EAAQsqB,eAAe,GAAEtQ,EAAE,CAC5dha,EAAQkrB,sBAAsB,EAAElrB,EAAQ0qB,2BAA2B,EAAE1qB,EAAQgrB,qBAAqB,EAAEhrB,EAAQ8qB,wBAAwB,EAAE9qB,EAAQ86D,mBAAmB,KAAK96D,EAAQ4qB,8BAA8B,EAAE5qB,EAAQgqB,wBAAwB,SAASjQ,GAAGA,EAAEquB,SAAS,IAAI,EAAEpoC,EAAQ+6D,2BAA2B,WAAWl9C,GAAGnC,IAAImC,GAAE,EAAG4mB,EAAEtF,GAAG,EAC1Un/B,EAAQg7D,wBAAwB,SAASjhD,GAAG,EAAEA,GAAG,IAAIA,EAAEw4B,QAAQC,MAAM,mHAAmHtF,EAAE,EAAEnzB,EAAEtP,KAAKurD,MAAM,IAAIj8C,GAAG,CAAC,EAAE/Z,EAAQwqB,iCAAiC,WAAW,OAAOoe,CAAC,EAAE5oC,EAAQi7D,8BAA8B,WAAW,OAAO18C,EAAEoqB,EAAE,EAAE3oC,EAAQk7D,cAAc,SAASnhD,GAAG,OAAO6uB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI5uB,EAAE,EAAE,MAAM,QAAQA,EAAE4uB,EAAE,IAAI3uB,EAAE2uB,EAAEA,EAAE5uB,EAAE,IAAI,OAAOD,GAAG,CAAC,QAAQ6uB,EAAE3uB,CAAC,CAAC,EAAEja,EAAQm7D,wBAAwB,WAAW,EAC9fn7D,EAAQoqB,sBAAsB,WAAW,EAAEpqB,EAAQo7D,yBAAyB,SAASrhD,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIE,EAAE2uB,EAAEA,EAAE7uB,EAAE,IAAI,OAAOC,GAAG,CAAC,QAAQ4uB,EAAE3uB,CAAC,CAAC,EAChMja,EAAQ8pB,0BAA0B,SAAS/P,EAAEC,EAAEC,GAAG,IAAIe,EAAEhb,EAAQsqB,eAA8F,OAA/E,kBAAkBrQ,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEohD,QAA6B,EAAEphD,EAAEe,EAAEf,EAAEe,EAAGf,EAAEe,EAASjB,GAAG,KAAK,EAAE,IAAI3M,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzM2M,EAAE,CAAC0V,GAAG4P,IAAI+I,SAASpuB,EAAEqgD,cAActgD,EAAEogD,UAAUlgD,EAAEmgD,eAAvDhtD,EAAE6M,EAAE7M,EAAoE4sD,WAAW,GAAG//C,EAAEe,GAAGjB,EAAEigD,UAAU//C,EAAEgB,EAAEikB,EAAEnlB,GAAG,OAAOwE,EAAEoqB,IAAI5uB,IAAIwE,EAAE2gB,KAAK7U,GAAG6X,EAAEqH,GAAGA,GAAG,GAAGlf,GAAE,EAAGie,EAAEjG,EAAEpoB,EAAEe,MAAMjB,EAAEigD,UAAU5sD,EAAE6N,EAAE0tB,EAAE5uB,GAAG8D,GAAGnC,IAAImC,GAAE,EAAG4mB,EAAEtF,KAAYplB,CAAC,EACne/Z,EAAQkqB,qBAAqBoiB,EAAEtsC,EAAQs7D,sBAAsB,SAASvhD,GAAG,IAAIC,EAAE4uB,EAAE,OAAO,WAAW,IAAI3uB,EAAE2uB,EAAEA,EAAE5uB,EAAE,IAAI,OAAOD,EAAExa,MAAMsB,KAAK9B,UAAU,CAAC,QAAQ6pC,EAAE3uB,CAAC,CAAC,CAAC,qCCf7Jla,EAAOC,QAAU,EAAjBD,wCCHa,SAASw7D,EAAkBC,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAIx8D,UAAQy8D,EAAMD,EAAIx8D,QAC/C,IAAK,IAAIF,EAAI,EAAG48D,EAAO,IAAIt8D,MAAMq8D,GAAM38D,EAAI28D,EAAK38D,IAAK48D,EAAK58D,GAAK08D,EAAI18D,GACnE,OAAO48D,CACT,gHCAe,SAASC,EAAeH,EAAK18D,GAC1C,OCLa,SAAyB08D,GACtC,GAAIp8D,MAAMC,QAAQm8D,GAAM,OAAOA,CACjC,CDGS,CAAeA,IELT,SAA+BA,EAAK18D,GACjD,IAAI88D,EAAK,MAAQJ,EAAM,KAAO,oBAAsBx4D,QAAUw4D,EAAIx4D,OAAO0a,WAAa89C,EAAI,cAC1F,GAAI,MAAQI,EAAI,CACd,IAAIC,EACFC,EACAC,EACAC,EACAC,EAAO,GACPC,GAAK,EACLC,GAAK,EACP,IACE,GAAIJ,GAAMH,EAAKA,EAAG/7D,KAAK27D,IAAMx0B,KAAM,IAAMloC,EAAG,CAC1C,GAAIW,OAAOm8D,KAAQA,EAAI,OACvBM,GAAK,CACP,MAAO,OAASA,GAAML,EAAKE,EAAGl8D,KAAK+7D,IAAKnwB,QAAUwwB,EAAK98D,KAAK08D,EAAGt4D,OAAQ04D,EAAKj9D,SAAWF,GAAIo9D,GAAK,GAClG,CAAE,MAAO1jD,GACP2jD,GAAK,EAAIL,EAAKtjD,CAChB,CAAE,QACA,IACE,IAAK0jD,GAAM,MAAQN,EAAW,SAAMI,EAAKJ,EAAW,SAAKn8D,OAAOu8D,KAAQA,GAAK,MAC/E,CAAE,QACA,GAAIG,EAAI,MAAML,CAChB,CACF,CACA,OAAOG,CACT,CACF,CFrBgC,CAAqBT,EAAK18D,KAAM,EAAAs9D,EAAA,GAA2BZ,EAAK18D,IGLjF,WACb,MAAM,IAAI6V,UAAU,4IACtB,CHGsG,EACtG,iFILe,SAAS0nD,EAA4BlQ,EAAGmQ,GACrD,GAAKnQ,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,OAAiBA,EAAGmQ,GACtD,IAAItxD,EAAIvL,OAAOC,UAAUF,SAASK,KAAKssD,GAAG1gD,MAAM,GAAI,GAEpD,MADU,WAANT,GAAkBmhD,EAAEn9C,cAAahE,EAAImhD,EAAEn9C,YAAYV,MAC7C,QAANtD,GAAqB,QAANA,EAAoB5L,MAAMm9D,KAAKpQ,GACxC,cAANnhD,GAAqB,2CAA2CxB,KAAKwB,IAAW,OAAiBmhD,EAAGmQ,QAAxG,CALc,CAMhB,4FCAA,ICNIE,EAAkB,45HAYfC,EDdP,SAAiBC,GACf,IAAIrwD,EAAQ,CAAC,EACb,OAAO,SAAUpN,GAEf,YADmB,IAAfoN,EAAMpN,KAAoBoN,EAAMpN,GAAOy9D,EAAGz9D,IACvCoN,EAAMpN,EACf,CACF,CCFY09D,EAAQ,SAAUnH,GAC5B,OAAOgH,EAAgBhzD,KAAKgsD,IAAgC,MAAvBA,EAAKniD,WAAW,IAE3B,MAAvBmiD,EAAKniD,WAAW,IAEhBmiD,EAAKniD,WAAW,GAAK,EAC1B,ICiDAupD,EArCgB,WACd,IAAMC,EACJz9D,MAAMM,UAAU+L,MAEb5L,KAAKd,WACLipD,OAAO8U,SAENC,EAAyC,CAAC,EAC1CC,EAA6B,GACnCH,EAAkB5qD,SAAS,SAAAhT,IAEIA,EAAMA,EAAI0c,MAAM,KAAO,IAE/B1J,SAAS,SAAA60C,GAC5B,GAAIA,EAAUmW,WAAW,QAAS,CAChC,IAAAC,EAAoBpW,EAAUnrC,MAAM,KAA3BwhD,GAAWxB,EAAAA,EAAAA,GAAAuB,EAAA,GAAb,GACPH,EAAcI,GAAWrW,CAC1B,MACCkW,EAAiB79D,KAAK2nD,EAEzB,GACF,IAED,IAAMpjD,EAAmB,GAGzB,IAAK,IAAMy5D,KAAWJ,EAChBt9D,OAAOC,UAAUf,eAAekB,KAAKk9D,EAAeI,IACtDz5D,EAAOvE,KAAK49D,EAAcI,IAM9B,OAFAz5D,EAAOvE,KAAAI,MAAPmE,EAAes5D,GAERt5D,EAAO5D,KAAK,IACpB,ECvBKs9D,EAAa,SAAAp1B,GAAA,OAAwBA,EAAGjsB,gBAAkBisB,CAAA,EAMnDq1B,EAAO,SAClBpa,EACAn9C,GAEA,IAAMw3D,EAAM,CAAC,EAOb,OANA79D,OAAOqG,KAAKm9C,GACT+E,OAV0B,SAAAliD,GAAA,OACJ,SAAAlG,GAAA,OACO,IAA9BkG,EAAK0f,QAAQ5lB,EAAgB,EAQrB29D,CAAUz3D,IACjBmM,SAAS,SAAArS,GACR09D,EAAI19D,GAAOqjD,EAAIrjD,EAChB,IAEI09D,CACR,EA0BD,IAAME,EAAgB,SAACj6D,EAAgB6U,GAEnC,KACmB,kBAAV7U,GAEW,kBAAVA,GAAsBk6D,SAASl6D,IAHzC,CAQA,IAAMm6D,EACa,kBAAVn6D,EAAqBo8C,KAAKC,UAAUr8C,GAASiB,OAAOjB,GAG7DgvC,QAAQ8iB,KAAA,kCAAAl3B,OAC4Bu/B,EAAA,wBAAAv/B,OAAkC/lB,EAAA,kGAPrE,CAUJ,EA8JD,IAAAulD,EACI,IAAInR,OAjIR,SAAgBt+C,GACd,OAAQ,SAAA+F,GAEJ,GAAI7U,MAAMC,QAAQ4U,GAEhB,MAAM,IAAIwE,MACR,4JAKN,IAAMkG,EAAS,SAAC5R,EAAY89B,GAC1B,IAAA+yB,EAAkD7wD,EAA1C8wD,GAAIC,OAAA,IAAAF,EAAY1vD,EAAA0vD,EAAY9W,EAAc/5C,EAArBgxD,MACvBC,EArFZ,SACEF,EACA/wD,EACAkxD,GAEA,IAAMD,EAAgBX,EAAKtwD,EAAOkxD,GAgBlC,MAZuB,kBAAdH,IACqB,IAA5BA,EAAUt4C,QAAQ,MACjB43C,EAAUU,EAAU,KAErBr+D,OAAOqG,KAAKk4D,GAAe/rD,SAAS,SAAArS,GAC7B68D,EAAU78D,WAENo+D,EAAcp+D,EAExB,IAGIo+D,CACR,CA+DmCE,CAAYJ,EAAW/wD,EAAO,CAC1D,KACA,UAGFixD,EAAcnzB,IAAMA,EACpBmzB,EAAclX,UAAY7yC,EAAQkqD,OAC9BvB,EAAG3oD,EAAQ8pD,MAAOC,EAAclX,WAAaA,GAC7C8V,EAAGoB,EAAclX,WAAaA,EAAW7yC,EAAQ8pD,OAErD,IAAQK,EAASnqD,EAATmqD,KAER,GAAIA,EAAM,CACR,IAAM74C,EAAmC,CAAC,EAG1C,IAAK,IAAMjX,KAAQ8vD,EAAM,CACvB,IAAMC,EAAWD,EAAK9vD,GAChB5K,EAAS26D,EAAS,GAClBC,EAAOD,EAAS,IAAM,GACtB96D,EAA0B,oBAAXG,EAAwBA,EAAOqJ,GAASrJ,EAE7D85D,EAAcj6D,EAAO0Q,EAAQ3F,MAE7BiX,EAAA,KAAA4Y,OAAW7vB,IAAA,GAAA6vB,OAAa56B,GAAA46B,OAAQmgC,EACjC,CAED,IAAMC,EAAWP,EAAcz4C,OAAS,CAAC,EACnCzf,EAAOrG,OAAOqG,KAAKy4D,GACrBz4D,EAAK9G,OAAS,GAChB8G,EAAKmM,SAAS,SAAArS,GACZ2lB,EAAM3lB,GAAO2+D,EAAS3+D,EACvB,IAGHo+D,EAAcz4C,MAAQA,CACvB,CAED,OAAKrX,EAAYswD,WAAatwD,IAAQ4vD,GAGpCE,EAAcH,GAAKC,EAEZW,EAAAA,cAAoBvwD,EAAK8vD,IAE3BS,EAAAA,cAAoBX,EAAWE,EACvC,EAEKU,EAASD,EAAAA,WACXA,EAAAA,WAAiB9/C,GAGhB,SAAA5R,GACC,IAAM4xD,EAAOtB,EAAKtwD,EAAO,CAAC,aAC1B,OAAO4R,EAAOggD,EAAM5xD,EAAM65C,SAC3B,EAUL,OARC8X,EAAejgD,YAAcxK,EAAQ3F,KAGrCowD,EAAeF,UAAY,CAC1B1X,UAAW7yC,EAAQ8pD,MACnBa,QAAS1wD,GAGJwwD,CACR,CACF,GAiDqB,CAChBz9D,IAAA,SAAIkrD,EAAGqJ,GACL,OAAOrJ,EAAEqJ,EACV,MCjQHqJ,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB75D,IAAjB85D,EACH,OAAOA,EAAah/D,QAGrB,IAAID,EAAS8+D,EAAyBE,GAAY,CACjDtvC,GAAIsvC,EACJE,QAAQ,EACRj/D,QAAS,CAAC,GAUX,OANAk/D,EAAoBH,GAAUl/D,KAAKE,EAAOC,QAASD,EAAQA,EAAOC,QAAS8+D,GAG3E/+D,EAAOk/D,QAAS,EAGTl/D,EAAOC,OACf,CAGA8+D,EAAoBv2C,EAAI22C,EC3BxBJ,EAAoB9jD,EAAI,SAAShb,EAASm/D,GACzC,IAAI,IAAIv/D,KAAOu/D,EACXL,EAAoB3S,EAAEgT,EAAYv/D,KAASk/D,EAAoB3S,EAAEnsD,EAASJ,IAC5EH,OAAOoF,eAAe7E,EAASJ,EAAK,CAAE6f,YAAY,EAAMxe,IAAKk+D,EAAWv/D,IAG3E,ECPAk/D,EAAoB7jD,EAAI,CAAC,EAGzB6jD,EAAoB1xD,EAAI,SAASgyD,GAChC,OAAOp9D,QAAQq9D,IAAI5/D,OAAOqG,KAAKg5D,EAAoB7jD,GAAGqkD,QAAO,SAASC,EAAU3/D,GAE/E,OADAk/D,EAAoB7jD,EAAErb,GAAKw/D,EAASG,GAC7BA,CACR,GAAG,IACJ,ECPAT,EAAoBz/B,EAAI,SAAS+/B,GAEhC,MAAO,aAAeA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,YAAYA,GAAW,WACtF,ECHAN,EAAoBU,SAAW,SAASJ,GAGxC,ECJAN,EAAoB5jD,EAAI,WACvB,GAA0B,kBAAfukD,WAAyB,OAAOA,WAC3C,IACC,OAAO5+D,MAAQ,IAAIqI,SAAS,cAAb,EAChB,CAAE,MAAOkE,GACR,GAAsB,kBAAXoN,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBskD,EAAoB3S,EAAI,SAASlJ,EAAKuS,GAAQ,OAAO/1D,OAAOC,UAAUf,eAAekB,KAAKojD,EAAKuS,EAAO,aCAtG,IAAIkK,EAAa,CAAC,EACdC,EAAoB,WAExBb,EAAoBxgD,EAAI,SAASka,EAAKiT,EAAM7rC,EAAKw/D,GAChD,GAAGM,EAAWlnC,GAAQknC,EAAWlnC,GAAKr5B,KAAKssC,OAA3C,CACA,IAAIm0B,EAAQC,EACZ,QAAW36D,IAARtF,EAEF,IADA,IAAIkgE,EAAUrlD,SAAS20C,qBAAqB,UACpCtwD,EAAI,EAAGA,EAAIghE,EAAQ9gE,OAAQF,IAAK,CACvC,IAAIihE,EAAID,EAAQhhE,GAChB,GAAGihE,EAAEC,aAAa,QAAUxnC,GAAOunC,EAAEC,aAAa,iBAAmBL,EAAoB//D,EAAK,CAAEggE,EAASG,EAAG,KAAO,CACpH,CAEGH,IACHC,GAAa,GACbD,EAASnlD,SAASC,cAAc,WAEzBulD,QAAU,QACjBL,EAAOM,QAAU,IACbpB,EAAoBqB,IACvBP,EAAOtjD,aAAa,QAASwiD,EAAoBqB,IAElDP,EAAOtjD,aAAa,eAAgBqjD,EAAoB//D,GAExDggE,EAAOzlB,IAAM3hB,GAEdknC,EAAWlnC,GAAO,CAACiT,GACnB,IAAI20B,EAAmB,SAASC,EAAMxnC,GAErC+mC,EAAOU,QAAUV,EAAOW,OAAS,KACjC7qD,aAAawqD,GACb,IAAIM,EAAUd,EAAWlnC,GAIzB,UAHOknC,EAAWlnC,GAClBonC,EAAOz4C,YAAcy4C,EAAOz4C,WAAWlF,YAAY29C,GACnDY,GAAWA,EAAQvuD,SAAQ,SAASyqD,GAAM,OAAOA,EAAG7jC,EAAQ,IACzDwnC,EAAM,OAAOA,EAAKxnC,EACtB,EACIqnC,EAAU9qD,WAAWgrD,EAAiBrhC,KAAK,UAAM75B,EAAW,CAAEoM,KAAM,UAAW0V,OAAQ44C,IAAW,MACtGA,EAAOU,QAAUF,EAAiBrhC,KAAK,KAAM6gC,EAAOU,SACpDV,EAAOW,OAASH,EAAiBrhC,KAAK,KAAM6gC,EAAOW,QACnDV,GAAcplD,SAASgmD,KAAKv+C,YAAY09C,EApCkB,CAqC3D,KCxCAd,EAAoBn2B,EAAI,SAAS3oC,GACX,qBAAXgD,QAA0BA,OAAOuD,aAC1C9G,OAAOoF,eAAe7E,EAASgD,OAAOuD,YAAa,CAAEhD,MAAO,WAE7D9D,OAAOoF,eAAe7E,EAAS,aAAc,CAAEuD,OAAO,GACvD,ECNAu7D,EAAoB4B,IAAM,SAAS3gE,GAGlC,OAFAA,EAAO4gE,MAAQ,GACV5gE,EAAOshB,WAAUthB,EAAOshB,SAAW,IACjCthB,CACR,ECJA++D,EAAoBhlD,EAAI,uBCKxB,IAAI8mD,EAAkB,CACrB,IAAK,GAGN9B,EAAoB7jD,EAAE4lD,EAAI,SAASzB,EAASG,GAE1C,IAAIuB,EAAqBhC,EAAoB3S,EAAEyU,EAAiBxB,GAAWwB,EAAgBxB,QAAWl6D,EACtG,GAA0B,IAAvB47D,EAGF,GAAGA,EACFvB,EAASpgE,KAAK2hE,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAI/+D,SAAQ,SAAS8O,EAASkwD,GAAUF,EAAqBF,EAAgBxB,GAAW,CAACtuD,EAASkwD,EAAS,IACzHzB,EAASpgE,KAAK2hE,EAAmB,GAAKC,GAGtC,IAAIvoC,EAAMsmC,EAAoBhlD,EAAIglD,EAAoBz/B,EAAE+/B,GAEpD5sB,EAAQ,IAAI/5B,MAgBhBqmD,EAAoBxgD,EAAEka,GAfH,SAASK,GAC3B,GAAGimC,EAAoB3S,EAAEyU,EAAiBxB,KAEf,KAD1B0B,EAAqBF,EAAgBxB,MACRwB,EAAgBxB,QAAWl6D,GACrD47D,GAAoB,CACtB,IAAIG,EAAYpoC,IAAyB,SAAfA,EAAMvnB,KAAkB,UAAYunB,EAAMvnB,MAChE4vD,EAAUroC,GAASA,EAAM7R,QAAU6R,EAAM7R,OAAOmzB,IACpD3H,EAAMjkC,QAAU,iBAAmB6wD,EAAU,cAAgB6B,EAAY,KAAOC,EAAU,IAC1F1uB,EAAMlkC,KAAO,iBACbkkC,EAAMlhC,KAAO2vD,EACbzuB,EAAM2uB,QAAUD,EAChBJ,EAAmB,GAAGtuB,EACvB,CAEF,GACyC,SAAW4sB,EAASA,EAE/D,CAEH,EAaA,IAAIgC,EAAuB,SAASC,EAA4Bv+D,GAC/D,IAKIi8D,EAAUK,EALVkC,EAAWx+D,EAAK,GAChBy+D,EAAcz+D,EAAK,GACnB0+D,EAAU1+D,EAAK,GAGIhE,EAAI,EAC3B,GAAGwiE,EAASG,MAAK,SAAShyC,GAAM,OAA+B,IAAxBmxC,EAAgBnxC,EAAW,IAAI,CACrE,IAAIsvC,KAAYwC,EACZzC,EAAoB3S,EAAEoV,EAAaxC,KACrCD,EAAoBv2C,EAAEw2C,GAAYwC,EAAYxC,IAGhD,GAAGyC,EAAsBA,EAAQ1C,EAClC,CAEA,IADGuC,GAA4BA,EAA2Bv+D,GACrDhE,EAAIwiE,EAAStiE,OAAQF,IACzBsgE,EAAUkC,EAASxiE,GAChBggE,EAAoB3S,EAAEyU,EAAiBxB,IAAYwB,EAAgBxB,IACrEwB,EAAgBxB,GAAS,KAE1BwB,EAAgBxB,GAAW,CAG7B,EAEIsC,EAAqB5uD,KAA0B,oBAAIA,KAA0B,qBAAK,GACtF4uD,EAAmBzvD,QAAQmvD,EAAqBriC,KAAK,KAAM,IAC3D2iC,EAAmBviE,KAAOiiE,EAAqBriC,KAAK,KAAM2iC,EAAmBviE,KAAK4/B,KAAK2iC,gECzDxE,IC9BA,SAASrW,EAAQpI,GAG9B,OAAOoI,EAAU,mBAAqBroD,QAAU,iBAAmBA,OAAO0a,SAAW,SAAUulC,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBjgD,QAAUigD,EAAIj0C,cAAgBhM,QAAUigD,IAAQjgD,OAAOtD,UAAY,gBAAkBujD,CAC1H,EAAGoI,EAAQpI,EACb,CCNe,SAAS0e,EAAe1iE,GACrC,IAAIW,ECFS,SAAsBwmB,EAAOw7C,GAC1C,GAAuB,WAAnBvW,EAAQjlC,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAIy7C,EAAOz7C,EAAMpjB,OAAO8+D,aACxB,QAAa58D,IAAT28D,EAAoB,CACtB,IAAIvE,EAAMuE,EAAKhiE,KAAKumB,EAAOw7C,GAAQ,WACnC,GAAqB,WAAjBvW,EAAQiS,GAAmB,OAAOA,EACtC,MAAM,IAAI3oD,UAAU,+CACtB,CACA,OAAiB,WAATitD,EAAoBp9D,OAASu9D,QAAQ37C,EAC/C,CDPY,CAAYnnB,EAAK,UAC3B,MAAwB,WAAjBosD,EAAQzrD,GAAoBA,EAAM4E,OAAO5E,EAClD,CEJe,SAASuoD,EAAgBlF,EAAKrjD,EAAK2D,GAYhD,OAXA3D,EAAM,EAAcA,MACTqjD,EACTxjD,OAAOoF,eAAeo+C,EAAKrjD,EAAK,CAC9B2D,MAAOA,EACPkc,YAAY,EACZD,cAAc,EACdukC,UAAU,IAGZd,EAAIrjD,GAAO2D,EAEN0/C,CACT,CCbe,SAAS+e,IAEtBA,EAAsB,WACpB,OAAOhiE,CACT,EACA,IAAIA,EAAU,CAAC,EACbiiE,EAAKxiE,OAAOC,UACZhB,EAASujE,EAAGtjE,eACZkG,EAAiBpF,OAAOoF,gBAAkB,SAAUo+C,EAAKrjD,EAAK6rD,GAC5DxI,EAAIrjD,GAAO6rD,EAAKloD,KAClB,EACA2+D,EAAU,mBAAqBl/D,OAASA,OAAS,CAAC,EAClDm/D,EAAiBD,EAAQxkD,UAAY,aACrC0kD,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQ37D,aAAe,gBAC7C,SAASs8C,EAAOI,EAAKrjD,EAAK2D,GACxB,OAAO9D,OAAOoF,eAAeo+C,EAAKrjD,EAAK,CACrC2D,MAAOA,EACPkc,YAAY,EACZD,cAAc,EACdukC,UAAU,IACRd,EAAIrjD,EACV,CACA,IACEijD,EAAO,CAAC,EAAG,GACb,CAAE,MAAOrqC,GACPqqC,EAAS,SAAgBI,EAAKrjD,EAAK2D,GACjC,OAAO0/C,EAAIrjD,GAAO2D,CACpB,CACF,CACA,SAASg/D,EAAKC,EAASC,EAAS3vD,EAAM4vD,GACpC,IAAIC,EAAiBF,GAAWA,EAAQ/iE,qBAAqBkjE,EAAYH,EAAUG,EACjFC,EAAYpjE,OAAOkwC,OAAOgzB,EAAejjE,WACzConC,EAAU,IAAIg8B,EAAQJ,GAAe,IACvC,OAAO79D,EAAeg+D,EAAW,UAAW,CAC1Ct/D,MAAOw/D,EAAiBP,EAAS1vD,EAAMg0B,KACrC+7B,CACN,CACA,SAASG,EAAStG,EAAIzZ,EAAKhkD,GACzB,IACE,MAAO,CACLqS,KAAM,SACNrS,IAAKy9D,EAAG78D,KAAKojD,EAAKhkD,GAEtB,CAAE,MAAOuZ,GACP,MAAO,CACLlH,KAAM,QACNrS,IAAKuZ,EAET,CACF,CACAxY,EAAQuiE,KAAOA,EACf,IAAIU,EAAmB,CAAC,EACxB,SAASL,IAAa,CACtB,SAASM,IAAqB,CAC9B,SAASC,IAA8B,CACvC,IAAIC,EAAoB,CAAC,EACzBvgB,EAAOugB,EAAmBjB,GAAgB,WACxC,OAAOthE,IACT,IACA,IAAIwiE,EAAW5jE,OAAO2lD,eACpBke,EAA0BD,GAAYA,EAASA,EAAShhE,EAAO,MACjEihE,GAA2BA,IAA4BrB,GAAMvjE,EAAOmB,KAAKyjE,EAAyBnB,KAAoBiB,EAAoBE,GAC1I,IAAIC,EAAKJ,EAA2BzjE,UAAYkjE,EAAUljE,UAAYD,OAAOkwC,OAAOyzB,GACpF,SAASI,EAAsB9jE,GAC7B,CAAC,OAAQ,QAAS,UAAUuS,SAAQ,SAAUwxD,GAC5C5gB,EAAOnjD,EAAW+jE,GAAQ,SAAUxkE,GAClC,OAAO4B,KAAK6iE,QAAQD,EAAQxkE,EAC9B,GACF,GACF,CACA,SAAS0kE,EAAcd,EAAWe,GAChC,SAASC,EAAOJ,EAAQxkE,EAAK6R,EAASkwD,GACpC,IAAI8C,EAASd,EAASH,EAAUY,GAASZ,EAAW5jE,GACpD,GAAI,UAAY6kE,EAAOxyD,KAAM,CAC3B,IAAI5N,EAASogE,EAAO7kE,IAClBsE,EAAQG,EAAOH,MACjB,OAAOA,GAAS,UAAY8nD,EAAQ9nD,IAAU7E,EAAOmB,KAAK0D,EAAO,WAAaqgE,EAAY9yD,QAAQvN,EAAMwgE,SAAS5iC,MAAK,SAAU59B,GAC9HsgE,EAAO,OAAQtgE,EAAOuN,EAASkwD,EACjC,IAAG,SAAUxoD,GACXqrD,EAAO,QAASrrD,EAAK1H,EAASkwD,EAChC,IAAK4C,EAAY9yD,QAAQvN,GAAO49B,MAAK,SAAU6iC,GAC7CtgE,EAAOH,MAAQygE,EAAWlzD,EAAQpN,EACpC,IAAG,SAAU8uC,GACX,OAAOqxB,EAAO,QAASrxB,EAAO1hC,EAASkwD,EACzC,GACF,CACAA,EAAO8C,EAAO7kE,IAChB,CACA,IAAIglE,EACJp/D,EAAehE,KAAM,UAAW,CAC9B0C,MAAO,SAAekgE,EAAQxkE,GAC5B,SAASilE,IACP,OAAO,IAAIN,GAAY,SAAU9yD,EAASkwD,GACxC6C,EAAOJ,EAAQxkE,EAAK6R,EAASkwD,EAC/B,GACF,CACA,OAAOiD,EAAkBA,EAAkBA,EAAgB9iC,KAAK+iC,EAA4BA,GAA8BA,GAC5H,GAEJ,CACA,SAASnB,EAAiBP,EAAS1vD,EAAMg0B,GACvC,IAAImD,EAAQ,iBACZ,OAAO,SAAUw5B,EAAQxkE,GACvB,GAAI,cAAgBgrC,EAAO,MAAM,IAAIxxB,MAAM,gCAC3C,GAAI,cAAgBwxB,EAAO,CACzB,GAAI,UAAYw5B,EAAQ,MAAMxkE,EAC9B,OAAOklE,GACT,CACA,IAAKr9B,EAAQ28B,OAASA,EAAQ38B,EAAQ7nC,IAAMA,IAAO,CACjD,IAAImlE,EAAWt9B,EAAQs9B,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUt9B,GACnD,GAAIu9B,EAAgB,CAClB,GAAIA,IAAmBpB,EAAkB,SACzC,OAAOoB,CACT,CACF,CACA,GAAI,SAAWv9B,EAAQ28B,OAAQ38B,EAAQy9B,KAAOz9B,EAAQ09B,MAAQ19B,EAAQ7nC,SAAS,GAAI,UAAY6nC,EAAQ28B,OAAQ,CAC7G,GAAI,mBAAqBx5B,EAAO,MAAMA,EAAQ,YAAanD,EAAQ7nC,IACnE6nC,EAAQ29B,kBAAkB39B,EAAQ7nC,IACpC,KAAO,WAAa6nC,EAAQ28B,QAAU38B,EAAQ49B,OAAO,SAAU59B,EAAQ7nC,KACvEgrC,EAAQ,YACR,IAAI65B,EAASd,EAASR,EAAS1vD,EAAMg0B,GACrC,GAAI,WAAag9B,EAAOxyD,KAAM,CAC5B,GAAI24B,EAAQnD,EAAQ2E,KAAO,YAAc,iBAAkBq4B,EAAO7kE,MAAQgkE,EAAkB,SAC5F,MAAO,CACL1/D,MAAOugE,EAAO7kE,IACdwsC,KAAM3E,EAAQ2E,KAElB,CACA,UAAYq4B,EAAOxyD,OAAS24B,EAAQ,YAAanD,EAAQ28B,OAAS,QAAS38B,EAAQ7nC,IAAM6kE,EAAO7kE,IAClG,CACF,CACF,CACA,SAASqlE,EAAoBF,EAAUt9B,GACrC,IAAI69B,EAAa79B,EAAQ28B,OACvBA,EAASW,EAAS1mD,SAASinD,GAC7B,QAAIz/D,IAAcu+D,EAAQ,OAAO38B,EAAQs9B,SAAW,KAAM,UAAYO,GAAcP,EAAS1mD,SAAiB,SAAMopB,EAAQ28B,OAAS,SAAU38B,EAAQ7nC,SAAMiG,EAAWo/D,EAAoBF,EAAUt9B,GAAU,UAAYA,EAAQ28B,SAAW,WAAakB,IAAe79B,EAAQ28B,OAAS,QAAS38B,EAAQ7nC,IAAM,IAAI0V,UAAU,oCAAsCgwD,EAAa,aAAc1B,EAClY,IAAIa,EAASd,EAASS,EAAQW,EAAS1mD,SAAUopB,EAAQ7nC,KACzD,GAAI,UAAY6kE,EAAOxyD,KAAM,OAAOw1B,EAAQ28B,OAAS,QAAS38B,EAAQ7nC,IAAM6kE,EAAO7kE,IAAK6nC,EAAQs9B,SAAW,KAAMnB,EACjH,IAAI2B,EAAOd,EAAO7kE,IAClB,OAAO2lE,EAAOA,EAAKn5B,MAAQ3E,EAAQs9B,EAASS,YAAcD,EAAKrhE,MAAOujC,EAAQE,KAAOo9B,EAASU,QAAS,WAAah+B,EAAQ28B,SAAW38B,EAAQ28B,OAAS,OAAQ38B,EAAQ7nC,SAAMiG,GAAY4hC,EAAQs9B,SAAW,KAAMnB,GAAoB2B,GAAQ99B,EAAQ28B,OAAS,QAAS38B,EAAQ7nC,IAAM,IAAI0V,UAAU,oCAAqCmyB,EAAQs9B,SAAW,KAAMnB,EACrW,CACA,SAAS8B,EAAaC,GACpB,IAAIjkE,EAAQ,CACVkkE,OAAQD,EAAK,IAEf,KAAKA,IAASjkE,EAAMmkE,SAAWF,EAAK,IAAK,KAAKA,IAASjkE,EAAMokE,WAAaH,EAAK,GAAIjkE,EAAMqkE,SAAWJ,EAAK,IAAKnkE,KAAKwkE,WAAWlmE,KAAK4B,EACrI,CACA,SAASukE,EAAcvkE,GACrB,IAAI+iE,EAAS/iE,EAAMwkE,YAAc,CAAC,EAClCzB,EAAOxyD,KAAO,gBAAiBwyD,EAAO7kE,IAAK8B,EAAMwkE,WAAazB,CAChE,CACA,SAAShB,EAAQJ,GACf7hE,KAAKwkE,WAAa,CAAC,CACjBJ,OAAQ,SACNvC,EAAYzwD,QAAQ8yD,EAAclkE,MAAOA,KAAK2kE,OAAM,EAC1D,CACA,SAASnjE,EAAOyK,GACd,GAAIA,EAAU,CACZ,IAAI24D,EAAiB34D,EAASq1D,GAC9B,GAAIsD,EAAgB,OAAOA,EAAe5lE,KAAKiN,GAC/C,GAAI,mBAAqBA,EAASk6B,KAAM,OAAOl6B,EAC/C,IAAKoP,MAAMpP,EAAS9N,QAAS,CAC3B,IAAIF,GAAK,EACPkoC,EAAO,SAASA,IACd,OAASloC,EAAIgO,EAAS9N,QAAS,GAAIN,EAAOmB,KAAKiN,EAAUhO,GAAI,OAAOkoC,EAAKzjC,MAAQuJ,EAAShO,GAAIkoC,EAAKyE,MAAO,EAAIzE,EAC9G,OAAOA,EAAKzjC,WAAQ2B,EAAW8hC,EAAKyE,MAAO,EAAIzE,CACjD,EACF,OAAOA,EAAKA,KAAOA,CACrB,CACF,CACA,MAAO,CACLA,KAAMm9B,EAEV,CACA,SAASA,IACP,MAAO,CACL5gE,WAAO2B,EACPumC,MAAM,EAEV,CACA,OAAOy3B,EAAkBxjE,UAAYyjE,EAA4Bt+D,EAAe0+D,EAAI,cAAe,CACjGhgE,MAAO4/D,EACP3jD,cAAc,IACZ3a,EAAes+D,EAA4B,cAAe,CAC5D5/D,MAAO2/D,EACP1jD,cAAc,IACZ0jD,EAAkBzkD,YAAcokC,EAAOsgB,EAA4Bb,EAAmB,qBAAsBtiE,EAAQ0lE,oBAAsB,SAAUC,GACtJ,IAAIC,EAAO,mBAAqBD,GAAUA,EAAO32D,YACjD,QAAS42D,IAASA,IAAS1C,GAAqB,uBAAyB0C,EAAKnnD,aAAemnD,EAAKt3D,MACpG,EAAGtO,EAAQ6lE,KAAO,SAAUF,GAC1B,OAAOlmE,OAAO8kD,eAAiB9kD,OAAO8kD,eAAeohB,EAAQxC,IAA+BwC,EAAOnhB,UAAY2e,EAA4BtgB,EAAO8iB,EAAQrD,EAAmB,sBAAuBqD,EAAOjmE,UAAYD,OAAOkwC,OAAO4zB,GAAKoC,CAC5O,EAAG3lE,EAAQ8lE,MAAQ,SAAU7mE,GAC3B,MAAO,CACL8kE,QAAS9kE,EAEb,EAAGukE,EAAsBG,EAAcjkE,WAAYmjD,EAAO8gB,EAAcjkE,UAAW0iE,GAAqB,WACtG,OAAOvhE,IACT,IAAIb,EAAQ2jE,cAAgBA,EAAe3jE,EAAQ+lE,MAAQ,SAAUvD,EAASC,EAAS3vD,EAAM4vD,EAAakB,QACxG,IAAWA,IAAgBA,EAAc5hE,SACzC,IAAIgkE,EAAO,IAAIrC,EAAcpB,EAAKC,EAASC,EAAS3vD,EAAM4vD,GAAckB,GACxE,OAAO5jE,EAAQ0lE,oBAAoBjD,GAAWuD,EAAOA,EAAKh/B,OAAO7F,MAAK,SAAUz9B,GAC9E,OAAOA,EAAO+nC,KAAO/nC,EAAOH,MAAQyiE,EAAKh/B,MAC3C,GACF,EAAGw8B,EAAsBD,GAAK1gB,EAAO0gB,EAAIjB,EAAmB,aAAczf,EAAO0gB,EAAIpB,GAAgB,WACnG,OAAOthE,IACT,IAAIgiD,EAAO0gB,EAAI,YAAY,WACzB,MAAO,oBACT,IAAIvjE,EAAQ8F,KAAO,SAAUmgE,GAC3B,IAAInhE,EAASrF,OAAOwmE,GAClBngE,EAAO,GACT,IAAK,IAAIlG,KAAOkF,EAAQgB,EAAK3G,KAAKS,GAClC,OAAOkG,EAAKogE,UAAW,SAASl/B,IAC9B,KAAOlhC,EAAK9G,QAAS,CACnB,IAAIY,EAAMkG,EAAKiM,MACf,GAAInS,KAAOkF,EAAQ,OAAOkiC,EAAKzjC,MAAQ3D,EAAKonC,EAAKyE,MAAO,EAAIzE,CAC9D,CACA,OAAOA,EAAKyE,MAAO,EAAIzE,CACzB,CACF,EAAGhnC,EAAQqC,OAASA,EAAQygE,EAAQpjE,UAAY,CAC9CsP,YAAa8zD,EACb0C,MAAO,SAAeW,GACpB,GAAItlE,KAAKw/D,KAAO,EAAGx/D,KAAKmmC,KAAO,EAAGnmC,KAAK0jE,KAAO1jE,KAAK2jE,WAAQt/D,EAAWrE,KAAK4qC,MAAO,EAAI5qC,KAAKujE,SAAW,KAAMvjE,KAAK4iE,OAAS,OAAQ5iE,KAAK5B,SAAMiG,EAAWrE,KAAKwkE,WAAWpzD,QAAQqzD,IAAiBa,EAAe,IAAK,IAAI73D,KAAQzN,KAAM,MAAQyN,EAAKoF,OAAO,IAAMhV,EAAOmB,KAAKgB,KAAMyN,KAAU4N,OAAO5N,EAAK7C,MAAM,MAAQ5K,KAAKyN,QAAQpJ,EACtU,EACAkhE,KAAM,WACJvlE,KAAK4qC,MAAO,EACZ,IAAI46B,EAAaxlE,KAAKwkE,WAAW,GAAGE,WACpC,GAAI,UAAYc,EAAW/0D,KAAM,MAAM+0D,EAAWpnE,IAClD,OAAO4B,KAAKylE,IACd,EACA7B,kBAAmB,SAA2B8B,GAC5C,GAAI1lE,KAAK4qC,KAAM,MAAM86B,EACrB,IAAIz/B,EAAUjmC,KACd,SAAS2lE,EAAOC,EAAKC,GACnB,OAAO5C,EAAOxyD,KAAO,QAASwyD,EAAO7kE,IAAMsnE,EAAWz/B,EAAQE,KAAOy/B,EAAKC,IAAW5/B,EAAQ28B,OAAS,OAAQ38B,EAAQ7nC,SAAMiG,KAAcwhE,CAC5I,CACA,IAAK,IAAI5nE,EAAI+B,KAAKwkE,WAAWrmE,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAIiC,EAAQF,KAAKwkE,WAAWvmE,GAC1BglE,EAAS/iE,EAAMwkE,WACjB,GAAI,SAAWxkE,EAAMkkE,OAAQ,OAAOuB,EAAO,OAC3C,GAAIzlE,EAAMkkE,QAAUpkE,KAAKw/D,KAAM,CAC7B,IAAIsG,EAAWjoE,EAAOmB,KAAKkB,EAAO,YAChC6lE,EAAaloE,EAAOmB,KAAKkB,EAAO,cAClC,GAAI4lE,GAAYC,EAAY,CAC1B,GAAI/lE,KAAKw/D,KAAOt/D,EAAMmkE,SAAU,OAAOsB,EAAOzlE,EAAMmkE,UAAU,GAC9D,GAAIrkE,KAAKw/D,KAAOt/D,EAAMokE,WAAY,OAAOqB,EAAOzlE,EAAMokE,WACxD,MAAO,GAAIwB,GACT,GAAI9lE,KAAKw/D,KAAOt/D,EAAMmkE,SAAU,OAAOsB,EAAOzlE,EAAMmkE,UAAU,OACzD,CACL,IAAK0B,EAAY,MAAM,IAAInuD,MAAM,0CACjC,GAAI5X,KAAKw/D,KAAOt/D,EAAMokE,WAAY,OAAOqB,EAAOzlE,EAAMokE,WACxD,CACF,CACF,CACF,EACAT,OAAQ,SAAgBpzD,EAAMrS,GAC5B,IAAK,IAAIH,EAAI+B,KAAKwkE,WAAWrmE,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAIiC,EAAQF,KAAKwkE,WAAWvmE,GAC5B,GAAIiC,EAAMkkE,QAAUpkE,KAAKw/D,MAAQ3hE,EAAOmB,KAAKkB,EAAO,eAAiBF,KAAKw/D,KAAOt/D,EAAMokE,WAAY,CACjG,IAAI0B,EAAe9lE,EACnB,KACF,CACF,CACA8lE,IAAiB,UAAYv1D,GAAQ,aAAeA,IAASu1D,EAAa5B,QAAUhmE,GAAOA,GAAO4nE,EAAa1B,aAAe0B,EAAe,MAC7I,IAAI/C,EAAS+C,EAAeA,EAAatB,WAAa,CAAC,EACvD,OAAOzB,EAAOxyD,KAAOA,EAAMwyD,EAAO7kE,IAAMA,EAAK4nE,GAAgBhmE,KAAK4iE,OAAS,OAAQ5iE,KAAKmmC,KAAO6/B,EAAa1B,WAAYlC,GAAoBpiE,KAAK0uD,SAASuU,EAC5J,EACAvU,SAAU,SAAkBuU,EAAQsB,GAClC,GAAI,UAAYtB,EAAOxyD,KAAM,MAAMwyD,EAAO7kE,IAC1C,MAAO,UAAY6kE,EAAOxyD,MAAQ,aAAewyD,EAAOxyD,KAAOzQ,KAAKmmC,KAAO88B,EAAO7kE,IAAM,WAAa6kE,EAAOxyD,MAAQzQ,KAAKylE,KAAOzlE,KAAK5B,IAAM6kE,EAAO7kE,IAAK4B,KAAK4iE,OAAS,SAAU5iE,KAAKmmC,KAAO,OAAS,WAAa88B,EAAOxyD,MAAQ8zD,IAAavkE,KAAKmmC,KAAOo+B,GAAWnC,CACtQ,EACA6D,OAAQ,SAAgB3B,GACtB,IAAK,IAAIrmE,EAAI+B,KAAKwkE,WAAWrmE,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAIiC,EAAQF,KAAKwkE,WAAWvmE,GAC5B,GAAIiC,EAAMokE,aAAeA,EAAY,OAAOtkE,KAAK0uD,SAASxuD,EAAMwkE,WAAYxkE,EAAMqkE,UAAWE,EAAcvkE,GAAQkiE,CACrH,CACF,EACA,MAAS,SAAgBgC,GACvB,IAAK,IAAInmE,EAAI+B,KAAKwkE,WAAWrmE,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAIiC,EAAQF,KAAKwkE,WAAWvmE,GAC5B,GAAIiC,EAAMkkE,SAAWA,EAAQ,CAC3B,IAAInB,EAAS/iE,EAAMwkE,WACnB,GAAI,UAAYzB,EAAOxyD,KAAM,CAC3B,IAAIy1D,EAASjD,EAAO7kE,IACpBqmE,EAAcvkE,EAChB,CACA,OAAOgmE,CACT,CACF,CACA,MAAM,IAAItuD,MAAM,wBAClB,EACAuuD,cAAe,SAAuBl6D,EAAU+3D,EAAYC,GAC1D,OAAOjkE,KAAKujE,SAAW,CACrB1mD,SAAUrb,EAAOyK,GACjB+3D,WAAYA,EACZC,QAASA,GACR,SAAWjkE,KAAK4iE,SAAW5iE,KAAK5B,SAAMiG,GAAY+9D,CACvD,GACCjjE,CACL,CC9SA,SAASinE,EAAmBC,EAAKp2D,EAASkwD,EAAQmG,EAAOC,EAAQxnE,EAAKX,GACpE,IACE,IAAI2lE,EAAOsC,EAAItnE,GAAKX,GAChBsE,EAAQqhE,EAAKrhE,KACnB,CAAE,MAAOivC,GAEP,YADAwuB,EAAOxuB,EAET,CACIoyB,EAAKn5B,KACP36B,EAAQvN,GAERvB,QAAQ8O,QAAQvN,GAAO49B,KAAKgmC,EAAOC,EAEvC,CACe,SAASC,EAAkB3K,GACxC,OAAO,WACL,IAAI5pD,EAAOjS,KACTiU,EAAO/V,UACT,OAAO,IAAIiD,SAAQ,SAAU8O,EAASkwD,GACpC,IAAIkG,EAAMxK,EAAGn9D,MAAMuT,EAAMgC,GACzB,SAASqyD,EAAM5jE,GACb0jE,EAAmBC,EAAKp2D,EAASkwD,EAAQmG,EAAOC,EAAQ,OAAQ7jE,EAClE,CACA,SAAS6jE,EAAO5uD,GACdyuD,EAAmBC,EAAKp2D,EAASkwD,EAAQmG,EAAOC,EAAQ,QAAS5uD,EACnE,CACA2uD,OAAMjiE,EACR,GACF,CACF,cC5Be,SAASoiE,EAA2Bnb,EAAGob,GACpD,IAAIC,EAAuB,qBAAXxkE,QAA0BmpD,EAAEnpD,OAAO0a,WAAayuC,EAAE,cAClE,IAAKqb,EAAI,CACP,GAAIpoE,MAAMC,QAAQ8sD,KAAOqb,GAAK,EAAApL,EAAA,GAA2BjQ,KAAOob,GAAkBpb,GAAyB,kBAAbA,EAAEntD,OAAqB,CAC/GwoE,IAAIrb,EAAIqb,GACZ,IAAI1oE,EAAI,EACJygC,EAAI,WAAc,EACtB,MAAO,CACLwgC,EAAGxgC,EACHv0B,EAAG,WACD,OAAIlM,GAAKqtD,EAAEntD,OAAe,CACxBysC,MAAM,GAED,CACLA,MAAM,EACNloC,MAAO4oD,EAAErtD,KAEb,EACAsO,EAAG,SAAW0uD,GACZ,MAAMA,CACR,EACA7gD,EAAGskB,EAEP,CACA,MAAM,IAAI5qB,UAAU,wIACtB,CACA,IAEE6D,EAFEivD,GAAmB,EACrBC,GAAS,EAEX,MAAO,CACL3H,EAAG,WACDyH,EAAKA,EAAG3nE,KAAKssD,EACf,EACAnhD,EAAG,WACD,IAAID,EAAOy8D,EAAGxgC,OAEd,OADAygC,EAAmB18D,EAAK0gC,KACjB1gC,CACT,EACAqC,EAAG,SAAWu6D,GACZD,GAAS,EACTlvD,EAAMmvD,CACR,EACA1sD,EAAG,WACD,IACOwsD,GAAoC,MAAhBD,EAAW,QAAWA,EAAW,QAC5D,CAAE,QACA,GAAIE,EAAQ,MAAMlvD,CACpB,CACF,EAEJ,cC/Ce,SAAS,EAAmBgjD,GACzC,OCJa,SAA4BA,GACzC,GAAIp8D,MAAMC,QAAQm8D,GAAM,OAAO,EAAAoM,EAAA,GAAiBpM,EAClD,CDES,CAAkBA,IELZ,SAA0BwK,GACvC,GAAsB,qBAAXhjE,QAAmD,MAAzBgjE,EAAKhjE,OAAO0a,WAA2C,MAAtBsoD,EAAK,cAAuB,OAAO5mE,MAAMm9D,KAAKyJ,EACtH,CFGmC,CAAgBxK,KAAQ,EAAAY,EAAA,GAA2BZ,IGLvE,WACb,MAAM,IAAI7mD,UAAU,uIACtB,CHG8F,EAC9F,CILA,SAASkzC,EAAQ/iD,EAAQgjD,GACvB,IAAIhiD,EAAOrG,OAAOqG,KAAKhB,GACvB,GAAIrF,OAAOwQ,sBAAuB,CAChC,IAAI83C,EAAUtoD,OAAOwQ,sBAAsBnL,GAC3CgjD,IAAmBC,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOxoD,OAAO8f,yBAAyBza,EAAQmjD,GAAKxoC,UACtD,KAAK3Z,EAAK3G,KAAKI,MAAMuG,EAAMiiD,EAC7B,CACA,OAAOjiD,CACT,CACe,SAAS+hE,EAAe7gD,GACrC,IAAK,IAAIloB,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIwJ,EAAS,MAAQvJ,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EACpDA,EAAI,EAAI+oD,EAAQpoD,OAAO6I,IAAS,GAAI2J,SAAQ,SAAUrS,GACpD,EAAeonB,EAAQpnB,EAAK0I,EAAO1I,GACrC,IAAKH,OAAO2oD,0BAA4B3oD,OAAOokD,iBAAiB78B,EAAQvnB,OAAO2oD,0BAA0B9/C,IAAWu/C,EAAQpoD,OAAO6I,IAAS2J,SAAQ,SAAUrS,GAC5JH,OAAOoF,eAAemiB,EAAQpnB,EAAKH,OAAO8f,yBAAyBjX,EAAQ1I,GAC7E,GACF,CACA,OAAOonB,CACT,CCpBe,SAAS,EAAyB1e,EAAQw/D,GACvD,GAAc,MAAVx/D,EAAgB,MAAO,CAAC,EAC5B,IACI1I,EAAKd,EADLkoB,ECHS,SAAuC1e,EAAQw/D,GAC5D,GAAc,MAAVx/D,EAAgB,MAAO,CAAC,EAC5B,IAEI1I,EAAKd,EAFLkoB,EAAS,CAAC,EACV+gD,EAAatoE,OAAOqG,KAAKwC,GAE7B,IAAKxJ,EAAI,EAAGA,EAAIipE,EAAW/oE,OAAQF,IACjCc,EAAMmoE,EAAWjpE,GACbgpE,EAAStiD,QAAQ5lB,IAAQ,IAC7BonB,EAAOpnB,GAAO0I,EAAO1I,IAEvB,OAAOonB,CACT,CDRe,CAA6B1e,EAAQw/D,GAElD,GAAIroE,OAAOwQ,sBAAuB,CAChC,IAAI+3D,EAAmBvoE,OAAOwQ,sBAAsB3H,GACpD,IAAKxJ,EAAI,EAAGA,EAAIkpE,EAAiBhpE,OAAQF,IACvCc,EAAMooE,EAAiBlpE,GACnBgpE,EAAStiD,QAAQ5lB,IAAQ,GACxBH,OAAOC,UAAUqQ,qBAAqBlQ,KAAKyI,EAAQ1I,KACxDonB,EAAOpnB,GAAO0I,EAAO1I,GAEzB,CACA,OAAOonB,CACT,CEfe,SAAS08B,EAAgBplB,EAAUqlB,GAChD,KAAMrlB,aAAoBqlB,GACxB,MAAM,IAAIhvC,UAAU,oCAExB,CCHA,SAASs3C,EAAkBjlC,EAAQja,GACjC,IAAK,IAAIjO,EAAI,EAAGA,EAAIiO,EAAM/N,OAAQF,IAAK,CACrC,IAAIglD,EAAa/2C,EAAMjO,GACvBglD,EAAWrkC,WAAaqkC,EAAWrkC,aAAc,EACjDqkC,EAAWtkC,cAAe,EACtB,UAAWskC,IAAYA,EAAWC,UAAW,GACjDtkD,OAAOoF,eAAemiB,EAAQ,EAAc88B,EAAWlkD,KAAMkkD,EAC/D,CACF,CACe,SAASF,EAAaD,EAAaK,EAAYC,GAM5D,OALID,GAAYiI,EAAkBtI,EAAYjkD,UAAWskD,GACrDC,GAAagI,EAAkBtI,EAAaM,GAChDxkD,OAAOoF,eAAe8+C,EAAa,YAAa,CAC9CI,UAAU,IAELJ,CACT,CCjBe,SAASuI,EAAgBC,EAAGryC,GAKzC,OAJAoyC,EAAkBzsD,OAAO8kD,eAAiB9kD,OAAO8kD,eAAexlB,OAAS,SAAyBotB,EAAGryC,GAEnG,OADAqyC,EAAE3H,UAAY1qC,EACPqyC,CACT,EACOD,EAAgBC,EAAGryC,EAC5B,CCLe,SAASsqC,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI3vC,UAAU,sDAEtB0vC,EAAS3kD,UAAYD,OAAOkwC,OAAO2U,GAAcA,EAAW5kD,UAAW,CACrEsP,YAAa,CACXzL,MAAO8gD,EACPN,UAAU,EACVvkC,cAAc,KAGlB/f,OAAOoF,eAAew/C,EAAU,YAAa,CAC3CN,UAAU,IAERO,GAAY,EAAeD,EAAUC,EAC3C,CChBe,SAASqI,EAAgBR,GAItC,OAHAQ,EAAkBltD,OAAO8kD,eAAiB9kD,OAAO2lD,eAAermB,OAAS,SAAyBotB,GAChG,OAAOA,EAAE3H,WAAa/kD,OAAO2lD,eAAe+G,EAC9C,EACOQ,EAAgBR,EACzB,CCHe,SAASjI,EAA2BpxC,EAAMjT,GACvD,GAAIA,IAA2B,WAAlBwrD,EAAQxrD,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAI8U,UAAU,4DAEtB,OCRa,SAAgC7B,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIqxC,eAAe,6DAE3B,OAAOrxC,CACT,CDGS,CAAsBA,EAC/B,CENe,SAASs5C,EAAaC,GACnC,IAAIC,ECJS,WACb,GAAuB,qBAAZluC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUkuC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EACxC,IAEE,OADAsQ,QAAQp9D,UAAUuO,QAAQpO,KAAKue,QAAQC,UAAUy+C,QAAS,IAAI,WAAa,MACpE,CACT,CAAE,MAAO1vD,GACP,OAAO,CACT,CACF,CDNkC,GAChC,OAAO,WACL,IACE1J,EADEgpD,EAAQ,EAAeL,GAE3B,GAAIC,EAA2B,CAC7B,IAAIM,EAAY,EAAe/rD,MAAMmO,YACrCtL,EAAS0a,QAAQC,UAAUquC,EAAO3tD,UAAW6tD,EAC/C,MACElpD,EAASgpD,EAAMntD,MAAMsB,KAAM9B,WAE7B,OAAO,EAA0B8B,KAAM6C,EACzC,CACF,+FEhBMsX,EAA8C,IAAIvZ,IAGlDuY,EAAwD,IAAIvY,IAE5Dia,EAA8C,IAAIja,IA6DxD,SAAAqY,EAAqBwE,EAA+ByhD,EAAc3yD,EAAmB6M,GAlErF,IAAAiB,EAAAlQ,EAmEUk0B,EAAUllB,EAAQ/Y,IAAImM,GAE5B,GAAI6M,QAAyB,IAAZilB,GAAyBA,EAAQwpB,MAAQ,IAAQ,CAC9D,IAAI/f,EAAWjtB,EAAUza,IAAImM,GAM7B,QALiB,IAAbu7B,IACAA,EA7BZ,SAAsBrqB,EAA+ByhD,GA3CrD,IAAA/0D,EA8CuBi9D,EAFb76D,EAA8B,IAAI3L,IACpCwY,EAAQ,EACZiuD,EAAAZ,EAAmB,4EAAnB,IAAAY,EAAAnI,MAAAkI,EAAAC,EAAAl9D,KAAAygC,MAA2F,KAAhF9C,EAAAs/B,EAAA1kE,MACD4oD,EAAI7tC,EAAI6pD,YAAYx/B,GAAM/S,MAChCxoB,EAAOpM,IAAI2nC,EAAMwjB,GACjBlyC,GAASkyC,CACb,CAEA,OAAA3zC,GAAA0vD,EAAA96D,EAAAoL,EAAA,SAAA0vD,EAAAjtD,GAAA,KAQkBmtD,EARZlpC,EAAMjlB,EAAQ7M,EAAOrK,KAMrBgX,GAAUgmD,EAAU7gC,EADX,GACiB,EAEhCmpC,EAAAf,EADal6D,EAAOtH,QACF,IAAlB,IAAAuiE,EAAAtI,MAAAqI,EAAAC,EAAAr9D,KAAAygC,MACI,KADO9C,EAAAy/B,EAAA7kE,MACP6J,EAAOpM,IAAI2nC,GAAM,OAAA39B,EAAAoC,EAAOnM,IAAI0nC,IAAX39B,EAAmBk0B,GAAOnlB,EAAM,CAErD,OAAAvB,GAAA6vD,EAAAj7D,EAAAoL,EAAA,SAAA6vD,EAAAptD,GAAA,QAAO7N,CACX,CAQuB+hC,CAAa7wB,EAAK4gB,EAAQn8B,MACrC2Y,EAAU1a,IAAIoM,EAAWu7B,IAGzBzJ,EAAQwpB,MAAQ,IAAS,CACzB,IACmB4f,EADfxpE,EAAQ,EACZypE,EAAAjB,EAAmBvH,GAAA,IAAnB,IAAAwI,EAAAxI,MAAAuI,EAAAC,EAAAv9D,KAAAygC,MACI,KADOljB,EAAA+/C,EAAA/kE,MACPzE,GAAS,OAAAoc,EAAAytB,EAAS1nC,IAAIsnB,IAAbrN,EAAsBgkB,EAAQn8B,IAAA,CAE3C,OAAAyV,GAAA+vD,EAAAn7D,EAAAoL,EAAA,SAAA+vD,EAAAttD,GAAA,QAAe,KAARnc,CACX,CAEA,IAAMqtD,EAAS7tC,EAAI6pD,YAAYpI,GAC/B,OAtED,SACHzhD,EACAyhD,EACA3yD,EACA6M,EACAilB,GApBJ,IAAAl0B,EAAA29B,EAAAwjB,EAwBuBqc,EAFfvtD,EAAa,EACXlB,EAAqC,CAAC,EAC5C0uD,EAAAnB,EAAmBhpD,GAAA,IAAnB,IAAAmqD,EAAA1I,MAAAyI,EAAAC,EAAAz9D,KAAAygC,MAEI,KAFO3sC,EAAA0pE,EAAAjlE,MAEP0X,GADU,OAAAjQ,EAAAoC,EAAOnM,IAAInC,IAAXkM,EAAoBk0B,EAE9BnlB,EAAWjb,IAAS,OAAA6pC,EAAA5uB,EAAWjb,IAAX6pC,EAAoB,GAAK,EAIjD,OAAAnwB,GAAAiwD,EAAAr7D,EAAAoL,EAAA,SAAAiwD,EAAAxtD,GAAA,CAEA,IAFA,IAAMC,EAAO6kD,EAAY9kD,EAEzB2gD,EAAA,EAAA8M,EAAkBjpE,OAAOqG,KAAKiU,GAAU6hD,EAAA8M,EAAA1pE,OAAA48D,IAAG,CAA3C,IAAW98D,EAAA4pE,EAAA9M,GACDrzC,EAAkBxO,EAAWjb,GAC7BugC,EAAe,OAAA8sB,EAAA/+C,EAAOnM,IAAInC,IAAXqtD,EAAmBjtB,EAGlCvS,EAAS0S,EADKnkB,GADGmkB,EAAe9W,EAAmBtN,GACdhB,EAAesO,EAE1Dnb,EAAOpM,IAAIlC,EAAK6tB,EACpB,CACJ,CA4CQ2S,CAASygC,EAAM5T,EAAOv2B,MAAO+S,EAAUl+B,KAAKG,IAAI,IAAM,EAAIs0B,EAAQwpB,MAAQ,KAAUxpB,EAAQn8B,MAC5FiX,EAAQhZ,IAAIoM,EAAW,CACnBs7C,MAAOxpB,EAAQwpB,MAAQqX,EAAK/gE,OAC5B+D,KAAMm8B,EAAQn8B,OAEXopD,EAAOv2B,KAClB,CAEA,IAAM3a,EAASqD,EAAI6pD,YAAYpI,GAEzBhmD,EAAMkB,EAAO2a,MAAQmqC,EAAK/gE,OAGhC,IAAK,OAAAgM,EAAA,MAAAk0B,OAAA,EAAAA,EAASwpB,OAAT19C,EAAkB,GAAK,IACxB,OAAOiQ,EAAO2a,MAGlB,QAAgB,IAAZsJ,EACAllB,EAAQhZ,IAAIoM,EAAW,CACnBs7C,MAAOqX,EAAK/gE,OACZ+D,KAAMgX,QAEP,CACH,IAAM4uB,EAAO5uB,EAAMmlB,EAAQn8B,KACrBopD,EAAe4T,EAAK/gE,QAAUkgC,EAAQwpB,MAAQqX,EAAK/gE,QACnDF,EAASogC,EAAQn8B,KAAO4lC,EAAOwjB,EACrCnyC,EAAQhZ,IAAIoM,EAAW,CACnBs7C,MAAOxpB,EAAQwpB,MAAQqX,EAAK/gE,OAC5B+D,KAAMjE,GAEd,CAEA,OAAOmc,EAAO2a,KAClB,CAEA,SAAA4hB,EACIl5B,EACAyhD,EACA3yD,EACA6M,EACAilB,EACAjkB,EACAlB,EACAmB,GAEA,GAAI6kD,EAAK/gE,QAAU,EAAG,OAAO+gE,EAAK/gE,OAGlC,GAAIkgC,EAAa9xB,EAAO,OAAQ,EAEhC,IAAIpC,EAAQP,KAAKurD,MAAO5oD,EAAQ8xB,EAAcjkB,GAC1C0tB,EAAa7uB,EAAYwE,EAAKyhD,EAAKt0D,MAAM,EAAGhB,KAAKG,IAAI,EAAGI,IAASiP,EAAWF,GAE1EoyC,EAAQ,MAAAjxC,OAAA,EAAAA,EAAwB6kD,GAEtC,GAAIp3B,IAAev7B,EAEZ,GAAIu7B,EAAav7B,EAAO,CAC3B,KAAOu7B,EAAav7B,GAChBpC,IACA29B,EAAa7uB,EAAYwE,EAAKyhD,EAAKt0D,MAAM,EAAGhB,KAAKG,IAAI,EAAGI,IAASiP,EAAWF,GAEhF/O,GACJ,MAEI,KAAO29B,EAAav7B,GAAO,CACvB,IAAMtO,OAAsB,IAAVqtD,EAAsB,EAAI4T,EAAK4I,YAAY,IAAK39D,EAAQ,GAC1ElM,EAAgB,EACZkM,EAAQlM,EAERkM,IAEJ29B,EAAa7uB,EAAYwE,EAAKyhD,EAAKt0D,MAAM,EAAGhB,KAAKG,IAAI,EAAGI,IAASiP,EAAWF,EAChF,CAGJ,GAAoB,MAAhBgmD,EAAK/0D,GAAgB,CACrB,IAAIlM,EAAc,EAClB,QAAc,IAAVqtD,EACArtD,EAAcihE,EAAK4I,YAAY,IAAK39D,OAAK,KAEzB49D,EAFyBC,EAAAvB,EAEzBnb,GAAA,IAAhB,IAAA0c,EAAA9I,MAAA6I,EAAAC,EAAA79D,KAAAygC,MAAuB,KAAZljB,EAAAqgD,EAAArlE,MACP,GAAIglB,EAAIvd,EAAO,MACflM,EAAcypB,CAClB,CAEJ,OAAA/P,GAAAqwD,EAAAz7D,EAAAoL,EAAA,SAAAqwD,EAAA5tD,GAAA,EAAAnc,EAAkB,IACdkM,EAAQlM,EAEhB,CAEA,OAAOkM,CACX,wBChLe,SAAS89D,EAA4B7lB,EAAK8lB,ICD1C,SAAoC9lB,EAAK+lB,GACtD,GAAIA,EAAkB9nE,IAAI+hD,GACxB,MAAM,IAAItuC,UAAU,iEAExB,CDFE,CAA0BsuC,EAAK8lB,GAC/BA,EAAWxmE,IAAI0gD,EACjB,CEJe,SAASgmB,EAAuBC,EAAUH,EAAYrM,GACnE,IAAKqM,EAAW7nE,IAAIgoE,GAClB,MAAM,IAAIv0D,UAAU,kDAEtB,OAAO+nD,CACT,CCMA,SAASyM,IACP,MAAO,CACLpD,OAAO,EACPqD,QAAS,KACTC,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,WAAW,EACXC,aAAc,GACdC,UAAW,KACXC,MAAO,KACPC,WAAY,YACZC,QAAQ,EACRC,UAAU,EACVC,SAAU,KACVC,UAAU,EACVC,UAAW,KACXC,QAAQ,EACRC,aAAa,EACbC,UAAW,KACXC,WAAY,KACZC,OAAO,EAEX,CAEA,IAAIC,EAxBK,CACLxE,OAAO,EACPqD,QAAS,KACTC,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,WAAW,EACXC,aAAc,GACdC,UAAW,KACXC,MAAO,KACPC,WAAY,YACZC,QAAQ,EACRC,UAAU,EACVC,SAAU,KACVC,UAAU,EACVC,UAAW,KACXC,QAAQ,EACRC,aAAa,EACbC,UAAW,KACXC,WAAY,KACZC,OAAO,GAMX,SAASE,EAAeC,GACtBF,EAAWE,CACb,CAKA,IAAMC,EAAa,UACbC,EAAgB,IAAIrhE,OAAOohE,EAAWpiE,OAAQ,KAC9CsiE,EAAqB,oDACrBC,EAAwB,IAAIvhE,OAAOshE,EAAmBtiE,OAAQ,KAC9DwiE,EAAqB,CACzB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SAEDC,EAAuB,SAAC/iC,GAAE,OAAK8iC,EAAmB9iC,EAAG,EAC3D,SAASuwB,EAAOyS,EAAMC,GACpB,GAAIA,GACF,GAAIP,EAAWlhE,KAAKwhE,GAClB,OAAOA,EAAKzhE,QAAQohE,EAAeI,QAGrC,GAAIH,EAAmBphE,KAAKwhE,GAC1B,OAAOA,EAAKzhE,QAAQshE,EAAuBE,GAI/C,OAAOC,CACT,CAEA,IAAME,EAAe,6CAKrB,SAASC,GAASH,GAEhB,OAAOA,EAAKzhE,QAAQ2hE,GAAc,SAACnZ,EAAG/mD,GAEpC,MAAU,WADVA,EAAIA,EAAE4Q,eACoB,IACN,MAAhB5Q,EAAE0I,OAAO,GACY,MAAhB1I,EAAE0I,OAAO,GACZlP,OAAO6wB,aAAa1d,SAAS3M,EAAE0a,UAAU,GAAI,KAC7ClhB,OAAO6wB,cAAcrqB,EAAE0a,UAAU,IAEhC,EACT,GACF,CAEA,IAAM0lD,GAAQ,eAMd,SAASC,GAAKC,EAAOC,GACnBD,EAAyB,kBAAVA,EAAqBA,EAAQA,EAAMhjE,OAClDijE,EAAMA,GAAO,GACb,IAAMtoB,EAAM,CACV15C,QAAS,SAAC+E,EAAM23D,GAId,OAFAA,GADAA,EAAMA,EAAI39D,QAAU29D,GACV18D,QAAQ6hE,GAAO,MACzBE,EAAQA,EAAM/hE,QAAQ+E,EAAM23D,GACrBhjB,CACT,EACAuoB,SAAU,WACR,OAAO,IAAIliE,OAAOgiE,EAAOC,EAC3B,GAEF,OAAOtoB,CACT,CAEA,IAAMwoB,GAAsB,UACtBC,GAAuB,gCAO7B,SAASC,GAAS3B,EAAUlkD,EAAMgV,GAChC,GAAIkvC,EAAU,CACZ,IAAI4B,EACJ,IACEA,EAAOC,mBAAmBV,GAASrwC,IAChCvxB,QAAQkiE,GAAqB,IAC7B7vD,aACL,CAAE,MAAOxO,GACP,OAAO,IACT,CACA,GAAoC,IAAhCw+D,EAAKpmD,QAAQ,gBAAsD,IAA9BomD,EAAKpmD,QAAQ,cAAgD,IAA1BomD,EAAKpmD,QAAQ,SACvF,OAAO,IAEX,CACIM,IAAS4lD,GAAqBliE,KAAKsxB,KACrCA,EAmBJ,SAAoBhV,EAAMgV,GACnBgxC,GAAS,IAAMhmD,KAIdimD,GAAWviE,KAAKsc,GAClBgmD,GAAS,IAAMhmD,GAAQA,EAAO,IAE9BgmD,GAAS,IAAMhmD,GAAQkmD,GAAMlmD,EAAM,KAAK,IAG5CA,EAAOgmD,GAAS,IAAMhmD,GACtB,IAAMmmD,GAAsC,IAAvBnmD,EAAKN,QAAQ,KAElC,MAA6B,OAAzBsV,EAAKpV,UAAU,EAAG,GAChBumD,EACKnxC,EAEFhV,EAAKvc,QAAQ2iE,GAAU,MAAQpxC,EACV,MAAnBA,EAAKpnB,OAAO,GACjBu4D,EACKnxC,EAEFhV,EAAKvc,QAAQ4iE,GAAQ,MAAQrxC,EAE7BhV,EAAOgV,CAElB,CA9CWsxC,CAAWtmD,EAAMgV,IAE1B,IACEA,EAAOuxC,UAAUvxC,GAAMvxB,QAAQ,OAAQ,IACzC,CAAE,MAAO6D,GACP,OAAO,IACT,CACA,OAAO0tB,CACT,CAEA,IAAMgxC,GAAW,CAAC,EACZC,GAAa,mBACbG,GAAW,oBACXC,GAAS,4BAmCf,IAAMG,GAAW,CAAE36D,KAAM,WAAqB,GAE9C,SAAS46D,GAAWC,EAAU9jB,GAG5B,IAaE+jB,EAbUD,EAASjjE,QAAQ,OAAO,SAAC+J,EAAO7O,EAAQioE,GAGhD,IAFA,IAAIC,GAAU,EACZC,EAAOnoE,IACAmoE,GAAQ,GAAmB,OAAdF,EAAIE,IAAgBD,GAAWA,EACrD,OAAIA,EAGK,IAGA,IAEX,IACYhxD,MAAM,OAChB7c,EAAI,EAMR,GAHK2tE,EAAM,GAAGzuD,QAAUyuD,EAAM79C,QAC1B69C,EAAMztE,OAAS,IAAMytE,EAAMA,EAAMztE,OAAS,GAAGgf,QAAUyuD,EAAM16D,MAE7D06D,EAAMztE,OAAS0pD,EACjB+jB,EAAM36D,OAAO42C,QAEb,KAAO+jB,EAAMztE,OAAS0pD,GAAO+jB,EAAMttE,KAAK,IAG1C,KAAOL,EAAI2tE,EAAMztE,OAAQF,IAEvB2tE,EAAM3tE,GAAK2tE,EAAM3tE,GAAGkf,OAAOzU,QAAQ,QAAS,KAE9C,OAAOkjE,CACT,CAUA,SAAST,GAAMU,EAAKzyD,EAAG4yD,GACrB,IAAMvuD,EAAIouD,EAAI1tE,OACd,GAAU,IAANsf,EACF,MAAO,GAOT,IAHA,IAAIwuD,EAAU,EAGPA,EAAUxuD,GAAG,CAClB,IAAMyuD,EAAWL,EAAIh5D,OAAO4K,EAAIwuD,EAAU,GAC1C,GAAIC,IAAa9yD,GAAM4yD,EAEhB,IAAIE,IAAa9yD,IAAK4yD,EAG3B,MAFAC,GAGF,MALEA,GAMJ,CAEA,OAAOJ,EAAIjhE,MAAM,EAAG6S,EAAIwuD,EAC1B,CA8DA,SAASE,GAAWC,EAAK3mD,EAAM4mD,EAAKC,GAClC,IAAMryC,EAAOxU,EAAKwU,KACZsyC,EAAQ9mD,EAAK8mD,MAAQ7U,EAAOjyC,EAAK8mD,OAAS,KAC1C70C,EAAO00C,EAAI,GAAG1jE,QAAQ,cAAe,MAE3C,GAAyB,MAArB0jE,EAAI,GAAGv5D,OAAO,GAAY,CAC5By5D,EAAMljC,MAAMojC,QAAS,EACrB,IAAMC,EAAQ,CACZh8D,KAAM,OACN47D,IAAAA,EACApyC,KAAAA,EACAsyC,MAAAA,EACA70C,KAAAA,EACAg1C,OAAQJ,EAAMK,aAAaj1C,IAG7B,OADA40C,EAAMljC,MAAMojC,QAAS,EACdC,CACT,CACA,MAAO,CACLh8D,KAAM,QACN47D,IAAAA,EACApyC,KAAAA,EACAsyC,MAAAA,EACA70C,KAAMggC,EAAOhgC,GAEjB,CA8BA,IAGMk1C,GAAS,WACb,SAAAA,EAAYx5D,GAASyvC,EAAA,KAAA+pB,GACnB5sE,KAAKoT,QAAUA,GAAWs2D,CAC5B,CAqtBC,OArtBA3mB,EAAA6pB,EAAA,EAAA7tE,IAAA,QAAA2D,MAED,SAAM42C,GACJ,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMC,QAAQj8D,KAAKwoC,GAC1C,GAAI8yB,GAAOA,EAAI,GAAGjuE,OAAS,EACzB,MAAO,CACLsS,KAAM,QACN47D,IAAKD,EAAI,GAGf,GAAC,CAAArtE,IAAA,OAAA2D,MAED,SAAK42C,GACH,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMr4C,KAAK3jB,KAAKwoC,GACvC,GAAI8yB,EAAK,CACP,IAAM10C,EAAO00C,EAAI,GAAG1jE,QAAQ,YAAa,IACzC,MAAO,CACL+H,KAAM,OACN47D,IAAKD,EAAI,GACTY,eAAgB,WAChBt1C,KAAO13B,KAAKoT,QAAQ61D,SAEhBvxC,EADAyzC,GAAMzzC,EAAM,MAGpB,CACF,GAAC,CAAA34B,IAAA,SAAA2D,MAED,SAAO42C,GACL,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMG,OAAOn8D,KAAKwoC,GACzC,GAAI8yB,EAAK,CACP,IAAMC,EAAMD,EAAI,GACV10C,EAjEZ,SAAgC20C,EAAK30C,GACnC,IAAMw1C,EAAoBb,EAAI55D,MAAM,iBAEpC,GAA0B,OAAtBy6D,EACF,OAAOx1C,EAGT,IAAMy1C,EAAeD,EAAkB,GAEvC,OAAOx1C,EACJ5c,MAAM,MACNpM,KAAI,SAAA6J,GACH,IAAM60D,EAAoB70D,EAAK9F,MAAM,QACrC,OAA0B,OAAtB26D,EACK70D,GAGTuiD,EAAAA,EAAAA,GAAuBsS,EAAiB,GAArB,GAEFjvE,QAAUgvE,EAAahvE,OAC/Boa,EAAK3N,MAAMuiE,EAAahvE,QAG1Boa,CACT,IACCtZ,KAAK,KACV,CAuCmBouE,CAAuBhB,EAAKD,EAAI,IAAM,IAEnD,MAAO,CACL37D,KAAM,OACN47D,IAAAA,EACAiB,KAAMlB,EAAI,GAAKA,EAAI,GAAGjvD,OAAOzU,QAAQ1I,KAAK6sE,MAAMU,OAAOC,SAAU,MAAQpB,EAAI,GAC7E10C,KAAAA,EAEJ,CACF,GAAC,CAAA34B,IAAA,UAAA2D,MAED,SAAQ42C,GACN,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMW,QAAQ38D,KAAKwoC,GAC1C,GAAI8yB,EAAK,CACP,IAAI10C,EAAO00C,EAAI,GAAGjvD,OAGlB,GAAI,KAAKxU,KAAK+uB,GAAO,CACnB,IAAMg2C,EAAUvC,GAAMzzC,EAAM,KACxB13B,KAAKoT,QAAQ61D,SACfvxC,EAAOg2C,EAAQvwD,OACLuwD,IAAW,KAAK/kE,KAAK+kE,KAE/Bh2C,EAAOg2C,EAAQvwD,OAEnB,CAEA,MAAO,CACL1M,KAAM,UACN47D,IAAKD,EAAI,GACTvnE,MAAOunE,EAAI,GAAGjuE,OACdu5B,KAAAA,EACAg1C,OAAQ1sE,KAAKssE,MAAMiB,OAAO71C,GAE9B,CACF,GAAC,CAAA34B,IAAA,KAAA2D,MAED,SAAG42C,GACD,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMznD,GAAGvU,KAAKwoC,GACrC,GAAI8yB,EACF,MAAO,CACL37D,KAAM,KACN47D,IAAKD,EAAI,GAGf,GAAC,CAAArtE,IAAA,aAAA2D,MAED,SAAW42C,GACT,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMa,WAAW78D,KAAKwoC,GAC7C,GAAI8yB,EAAK,CACP,IAAM10C,EAAO00C,EAAI,GAAG1jE,QAAQ,eAAgB,IACtC8yB,EAAMx7B,KAAKssE,MAAMljC,MAAM5N,IAC7Bx7B,KAAKssE,MAAMljC,MAAM5N,KAAM,EACvB,IAAMkxC,EAAS1sE,KAAKssE,MAAMsB,YAAYl2C,GAEtC,OADA13B,KAAKssE,MAAMljC,MAAM5N,IAAMA,EAChB,CACL/qB,KAAM,aACN47D,IAAKD,EAAI,GACTM,OAAAA,EACAh1C,KAAAA,EAEJ,CACF,GAAC,CAAA34B,IAAA,OAAA2D,MAED,SAAK42C,GACH,IAAI8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMe,KAAK/8D,KAAKwoC,GACrC,GAAI8yB,EAAK,CACP,IAAIC,EAAKyB,EAAQC,EAAWC,EAAQ/vE,EAAGgwE,EAAWC,EAChDC,EAAMC,EAAUC,EAASC,EAAcC,EAErCC,EAAOpC,EAAI,GAAGjvD,OACZsxD,EAAYD,EAAKrwE,OAAS,EAE1B0vE,EAAO,CACXp9D,KAAM,OACN47D,IAAK,GACLqC,QAASD,EACTzkE,MAAOykE,GAAaD,EAAK5jE,MAAM,GAAI,GAAK,GACxC+jE,OAAO,EACPC,MAAO,IAGTJ,EAAOC,EAAY,aAAHnxC,OAAgBkxC,EAAK5jE,OAAO,IAAE,KAAA0yB,OAAUkxC,GAEpDxuE,KAAKoT,QAAQ61D,WACfuF,EAAOC,EAAYD,EAAO,SAO5B,IAHA,IAAMK,EAAY,IAAIpmE,OAAO,WAAD60B,OAAYkxC,EAAI,kCAGrCl1B,IACLi1B,GAAW,EACLnC,EAAMyC,EAAU/9D,KAAKwoC,MAIvBt5C,KAAK6sE,MAAMC,MAAMznD,GAAG1c,KAAK2wC,IANnB,CAkCV,GAxBA+yB,EAAMD,EAAI,GACV9yB,EAAMA,EAAIz0B,UAAUwnD,EAAIluE,QAExBgwE,EAAO/B,EAAI,GAAGtxD,MAAM,KAAM,GAAG,GAAGpS,QAAQ,QAAQ,SAAC21B,GAAC,MAAK,IAAI3J,OAAO,EAAI2J,EAAElgC,OAAO,IAC/EiwE,EAAW90B,EAAIx+B,MAAM,KAAM,GAAG,GAE1B9a,KAAKoT,QAAQ61D,UACf+E,EAAS,EACTM,EAAeH,EAAKW,aAGpBd,GADAA,EAAS5B,EAAI,GAAG50C,OAAO,SACL,EAAI,EAAIw2C,EAC1BM,EAAeH,EAAKvjE,MAAMojE,GAC1BA,GAAU5B,EAAI,GAAGjuE,QAGnB8vE,GAAY,GAEPE,GAAQ,OAAOxlE,KAAKylE,KACvB/B,GAAO+B,EAAW,KAClB90B,EAAMA,EAAIz0B,UAAUupD,EAASjwE,OAAS,GACtCowE,GAAW,IAGRA,EAOH,IANA,IAAMQ,EAAkB,IAAItmE,OAAO,QAAD60B,OAAS1zB,KAAKsJ,IAAI,EAAG86D,EAAS,GAAE,wDAC5DgB,EAAU,IAAIvmE,OAAO,QAAD60B,OAAS1zB,KAAKsJ,IAAI,EAAG86D,EAAS,GAAE,uDACpDiB,EAAmB,IAAIxmE,OAAO,QAAD60B,OAAS1zB,KAAKsJ,IAAI,EAAG86D,EAAS,GAAE,iBAC7DkB,EAAoB,IAAIzmE,OAAO,QAAD60B,OAAS1zB,KAAKsJ,IAAI,EAAG86D,EAAS,GAAE,OAG7D10B,IAEL80B,EADAC,EAAU/0B,EAAIx+B,MAAM,KAAM,GAAG,GAIzB9a,KAAKoT,QAAQ61D,WACfmF,EAAWA,EAAS1lE,QAAQ,0BAA2B,QAIrDumE,EAAiBtmE,KAAKylE,MAKtBc,EAAkBvmE,KAAKylE,KAKvBW,EAAgBpmE,KAAKylE,KAKrBY,EAAQrmE,KAAK2wC,IAzBP,CA6BV,GAAI80B,EAAS52C,OAAO,SAAWw2C,IAAWI,EAASjxD,OACjDmxD,GAAgB,KAAOF,EAASxjE,MAAMojE,OACjC,CAEL,GAAIC,EACF,MAIF,GAAIE,EAAK32C,OAAO,SAAW,EACzB,MAEF,GAAIy3C,EAAiBtmE,KAAKwlE,GACxB,MAEF,GAAIe,EAAkBvmE,KAAKwlE,GACzB,MAEF,GAAIa,EAAQrmE,KAAKwlE,GACf,MAGFG,GAAgB,KAAOF,CACzB,CAEKH,GAAcG,EAASjxD,SAC1B8wD,GAAY,GAGd5B,GAAOgC,EAAU,KACjB/0B,EAAMA,EAAIz0B,UAAUwpD,EAAQlwE,OAAS,GACrCgwE,EAAOC,EAASxjE,MAAMojE,EACxB,CAGGH,EAAKc,QAEJT,EACFL,EAAKc,OAAQ,EACJ,YAAYhmE,KAAK0jE,KAC1B6B,GAAoB,IAKpBluE,KAAKoT,QAAQs1D,MACfoF,EAAS,cAAch9D,KAAKw9D,MAE1BP,EAA0B,SAAdD,EAAO,GACnBQ,EAAeA,EAAa5lE,QAAQ,eAAgB,KAIxDmlE,EAAKe,MAAMtwE,KAAK,CACdmS,KAAM,YACN47D,IAAAA,EACA8C,OAAQrB,EACR7uD,QAAS8uD,EACTY,OAAO,EACPj3C,KAAM42C,IAGRT,EAAKxB,KAAOA,CACd,CAGAwB,EAAKe,MAAMf,EAAKe,MAAMzwE,OAAS,GAAGkuE,IAAMA,EAAI+C,YAC5CvB,EAAKe,MAAMf,EAAKe,MAAMzwE,OAAS,GAAGu5B,KAAO42C,EAAac,YACtDvB,EAAKxB,IAAMwB,EAAKxB,IAAI+C,YAEpB,IAAM3xD,EAAIowD,EAAKe,MAAMzwE,OAGrB,IAAKF,EAAI,EAAGA,EAAIwf,EAAGxf,IAIjB,GAHA+B,KAAKssE,MAAMljC,MAAM5N,KAAM,EACvBqyC,EAAKe,MAAM3wE,GAAGyuE,OAAS1sE,KAAKssE,MAAMsB,YAAYC,EAAKe,MAAM3wE,GAAGy5B,KAAM,KAE7Dm2C,EAAKc,MAAO,CAEf,IAAMU,EAAUxB,EAAKe,MAAM3wE,GAAGyuE,OAAOvlB,QAAO,SAAA9oB,GAAC,MAAe,UAAXA,EAAE5tB,IAAgB,IAC7D6+D,EAAwBD,EAAQlxE,OAAS,GAAKkxE,EAAQzO,MAAK,SAAAviC,GAAC,MAAI,SAAS11B,KAAK01B,EAAEguC,IAAI,IAE1FwB,EAAKc,MAAQW,CACf,CAIF,GAAIzB,EAAKc,MACP,IAAK1wE,EAAI,EAAGA,EAAIwf,EAAGxf,IACjB4vE,EAAKe,MAAM3wE,GAAG0wE,OAAQ,EAI1B,OAAOd,CACT,CACF,GAAC,CAAA9uE,IAAA,OAAA2D,MAED,SAAK42C,GACH,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAM3C,KAAKr5D,KAAKwoC,GACvC,GAAI8yB,EAAK,CACP,IAAMK,EAAQ,CACZh8D,KAAM,OACNq8D,OAAO,EACPT,IAAKD,EAAI,GACTmD,KAAMvvE,KAAKoT,QAAQg2D,YACF,QAAXgD,EAAI,IAA2B,WAAXA,EAAI,IAA8B,UAAXA,EAAI,IACrD10C,KAAM00C,EAAI,IAEZ,GAAIpsE,KAAKoT,QAAQ+1D,SAAU,CACzB,IAAMzxC,EAAO13B,KAAKoT,QAAQg2D,UAAYppE,KAAKoT,QAAQg2D,UAAUgD,EAAI,IAAM1U,EAAO0U,EAAI,IAClFK,EAAMh8D,KAAO,YACbg8D,EAAM/0C,KAAOA,EACb+0C,EAAMC,OAAS1sE,KAAKssE,MAAMiB,OAAO71C,EACnC,CACA,OAAO+0C,CACT,CACF,GAAC,CAAA1tE,IAAA,MAAA2D,MAED,SAAI42C,GACF,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAM0C,IAAI1+D,KAAKwoC,GACtC,GAAI8yB,EAAK,CACP,IAAM/+D,EAAM++D,EAAI,GAAGrxD,cAAcrS,QAAQ,OAAQ,KAC3CuxB,EAAOmyC,EAAI,GAAKA,EAAI,GAAG1jE,QAAQ,WAAY,MAAMA,QAAQ1I,KAAK6sE,MAAMU,OAAOC,SAAU,MAAQ,GAC7FjB,EAAQH,EAAI,GAAKA,EAAI,GAAGvnD,UAAU,EAAGunD,EAAI,GAAGjuE,OAAS,GAAGuK,QAAQ1I,KAAK6sE,MAAMU,OAAOC,SAAU,MAAQpB,EAAI,GAC9G,MAAO,CACL37D,KAAM,MACNpD,IAAAA,EACAg/D,IAAKD,EAAI,GACTnyC,KAAAA,EACAsyC,MAAAA,EAEJ,CACF,GAAC,CAAAxtE,IAAA,QAAA2D,MAED,SAAM42C,GACJ,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAM2C,MAAM3+D,KAAKwoC,GACxC,GAAI8yB,EAAK,CACP,IAAM7e,EAAO,CACX98C,KAAM,QACNi/D,OAAQhE,GAAWU,EAAI,IAAI19D,KAAI,SAAA0K,GAAO,MAAO,CAAEse,KAAMte,EAAK,IAC1Du2D,MAAOvD,EAAI,GAAG1jE,QAAQ,aAAc,IAAIoS,MAAM,UAC9C80D,KAAMxD,EAAI,IAAMA,EAAI,GAAGjvD,OAASivD,EAAI,GAAG1jE,QAAQ,YAAa,IAAIoS,MAAM,MAAQ,IAGhF,GAAIyyC,EAAKmiB,OAAOvxE,SAAWovD,EAAKoiB,MAAMxxE,OAAQ,CAC5CovD,EAAK8e,IAAMD,EAAI,GAEf,IACInuE,EAAG+hE,EAAGriD,EAAGkyD,EADTpyD,EAAI8vC,EAAKoiB,MAAMxxE,OAEnB,IAAKF,EAAI,EAAGA,EAAIwf,EAAGxf,IACb,YAAY0K,KAAK4kD,EAAKoiB,MAAM1xE,IAC9BsvD,EAAKoiB,MAAM1xE,GAAK,QACP,aAAa0K,KAAK4kD,EAAKoiB,MAAM1xE,IACtCsvD,EAAKoiB,MAAM1xE,GAAK,SACP,YAAY0K,KAAK4kD,EAAKoiB,MAAM1xE,IACrCsvD,EAAKoiB,MAAM1xE,GAAK,OAEhBsvD,EAAKoiB,MAAM1xE,GAAK,KAKpB,IADAwf,EAAI8vC,EAAKqiB,KAAKzxE,OACTF,EAAI,EAAGA,EAAIwf,EAAGxf,IACjBsvD,EAAKqiB,KAAK3xE,GAAKytE,GAAWne,EAAKqiB,KAAK3xE,GAAIsvD,EAAKmiB,OAAOvxE,QAAQuQ,KAAI,SAAA0K,GAAO,MAAO,CAAEse,KAAMte,EAAK,IAO7F,IADAqE,EAAI8vC,EAAKmiB,OAAOvxE,OACX6hE,EAAI,EAAGA,EAAIviD,EAAGuiD,IACjBzS,EAAKmiB,OAAO1P,GAAG0M,OAAS1sE,KAAKssE,MAAMiB,OAAOhgB,EAAKmiB,OAAO1P,GAAGtoC,MAK3D,IADAja,EAAI8vC,EAAKqiB,KAAKzxE,OACT6hE,EAAI,EAAGA,EAAIviD,EAAGuiD,IAEjB,IADA6P,EAAMtiB,EAAKqiB,KAAK5P,GACXriD,EAAI,EAAGA,EAAIkyD,EAAI1xE,OAAQwf,IAC1BkyD,EAAIlyD,GAAG+uD,OAAS1sE,KAAKssE,MAAMiB,OAAOsC,EAAIlyD,GAAG+Z,MAI7C,OAAO61B,CACT,CACF,CACF,GAAC,CAAAxuD,IAAA,WAAA2D,MAED,SAAS42C,GACP,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMgD,SAASh/D,KAAKwoC,GAC3C,GAAI8yB,EACF,MAAO,CACL37D,KAAM,UACN47D,IAAKD,EAAI,GACTvnE,MAA4B,MAArBunE,EAAI,GAAGv5D,OAAO,GAAa,EAAI,EACtC6kB,KAAM00C,EAAI,GACVM,OAAQ1sE,KAAKssE,MAAMiB,OAAOnB,EAAI,IAGpC,GAAC,CAAArtE,IAAA,YAAA2D,MAED,SAAU42C,GACR,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMiD,UAAUj/D,KAAKwoC,GAC5C,GAAI8yB,EAAK,CACP,IAAM10C,EAA4C,OAArC00C,EAAI,GAAGv5D,OAAOu5D,EAAI,GAAGjuE,OAAS,GACvCiuE,EAAI,GAAGxhE,MAAM,GAAI,GACjBwhE,EAAI,GACR,MAAO,CACL37D,KAAM,YACN47D,IAAKD,EAAI,GACT10C,KAAAA,EACAg1C,OAAQ1sE,KAAKssE,MAAMiB,OAAO71C,GAE9B,CACF,GAAC,CAAA34B,IAAA,OAAA2D,MAED,SAAK42C,GACH,IAAM8yB,EAAMpsE,KAAK6sE,MAAMC,MAAMp1C,KAAK5mB,KAAKwoC,GACvC,GAAI8yB,EACF,MAAO,CACL37D,KAAM,OACN47D,IAAKD,EAAI,GACT10C,KAAM00C,EAAI,GACVM,OAAQ1sE,KAAKssE,MAAMiB,OAAOnB,EAAI,IAGpC,GAAC,CAAArtE,IAAA,SAAA2D,MAED,SAAO42C,GACL,IAAM8yB,EAAMpsE,KAAK6sE,MAAMU,OAAO7V,OAAO5mD,KAAKwoC,GAC1C,GAAI8yB,EACF,MAAO,CACL37D,KAAM,SACN47D,IAAKD,EAAI,GACT10C,KAAMggC,EAAO0U,EAAI,IAGvB,GAAC,CAAArtE,IAAA,MAAA2D,MAED,SAAI42C,GACF,IAAM8yB,EAAMpsE,KAAK6sE,MAAMU,OAAOlgE,IAAIyD,KAAKwoC,GACvC,GAAI8yB,EAYF,OAXKpsE,KAAKssE,MAAMljC,MAAMojC,QAAU,QAAQ7jE,KAAKyjE,EAAI,IAC/CpsE,KAAKssE,MAAMljC,MAAMojC,QAAS,EACjBxsE,KAAKssE,MAAMljC,MAAMojC,QAAU,UAAU7jE,KAAKyjE,EAAI,MACvDpsE,KAAKssE,MAAMljC,MAAMojC,QAAS,IAEvBxsE,KAAKssE,MAAMljC,MAAM4mC,YAAc,iCAAiCrnE,KAAKyjE,EAAI,IAC5EpsE,KAAKssE,MAAMljC,MAAM4mC,YAAa,EACrBhwE,KAAKssE,MAAMljC,MAAM4mC,YAAc,mCAAmCrnE,KAAKyjE,EAAI,MACpFpsE,KAAKssE,MAAMljC,MAAM4mC,YAAa,GAGzB,CACLv/D,KAAMzQ,KAAKoT,QAAQ+1D,SACf,OACA,OACJkD,IAAKD,EAAI,GACTI,OAAQxsE,KAAKssE,MAAMljC,MAAMojC,OACzBwD,WAAYhwE,KAAKssE,MAAMljC,MAAM4mC,WAC7BlD,OAAO,EACPp1C,KAAM13B,KAAKoT,QAAQ+1D,SACdnpE,KAAKoT,QAAQg2D,UACZppE,KAAKoT,QAAQg2D,UAAUgD,EAAI,IAC3B1U,EAAO0U,EAAI,IACbA,EAAI,GAGd,GAAC,CAAArtE,IAAA,OAAA2D,MAED,SAAK42C,GACH,IAAM8yB,EAAMpsE,KAAK6sE,MAAMU,OAAO9nD,KAAK3U,KAAKwoC,GACxC,GAAI8yB,EAAK,CACP,IAAM6D,EAAa7D,EAAI,GAAGjvD,OAC1B,IAAKnd,KAAKoT,QAAQ61D,UAAY,KAAKtgE,KAAKsnE,GAAa,CAEnD,IAAM,KAAKtnE,KAAKsnE,GACd,OAIF,IAAMC,EAAa/E,GAAM8E,EAAWrlE,MAAM,GAAI,GAAI,MAClD,IAAKqlE,EAAW9xE,OAAS+xE,EAAW/xE,QAAU,IAAM,EAClD,MAEJ,KAAO,CAEL,IAAMgyE,EAzlBd,SAA4BtE,EAAK1yD,GAC/B,IAA2B,IAAvB0yD,EAAIlnD,QAAQxL,EAAE,IAChB,OAAQ,EAKV,IAHA,IAAMsE,EAAIouD,EAAI1tE,OACViyE,EAAQ,EACVnyE,EAAI,EACCA,EAAIwf,EAAGxf,IACZ,GAAe,OAAX4tE,EAAI5tE,GACNA,SACK,GAAI4tE,EAAI5tE,KAAOkb,EAAE,GACtBi3D,SACK,GAAIvE,EAAI5tE,KAAOkb,EAAE,MACtBi3D,EACY,EACV,OAAOnyE,EAIb,OAAQ,CACV,CAqkB+BoyE,CAAmBjE,EAAI,GAAI,MAClD,GAAI+D,GAAkB,EAAG,CACvB,IACMG,GADgC,IAAxBlE,EAAI,GAAGznD,QAAQ,KAAa,EAAI,GACtBynD,EAAI,GAAGjuE,OAASgyE,EACxC/D,EAAI,GAAKA,EAAI,GAAGvnD,UAAU,EAAGsrD,GAC7B/D,EAAI,GAAKA,EAAI,GAAGvnD,UAAU,EAAGyrD,GAASnzD,OACtCivD,EAAI,GAAK,EACX,CACF,CACA,IAAInyC,EAAOmyC,EAAI,GACXG,EAAQ,GACZ,GAAIvsE,KAAKoT,QAAQ61D,SAAU,CAEzB,IAAMxjD,EAAO,gCAAgC3U,KAAKmpB,GAE9CxU,IACFwU,EAAOxU,EAAK,GACZ8mD,EAAQ9mD,EAAK,GAEjB,MACE8mD,EAAQH,EAAI,GAAKA,EAAI,GAAGxhE,MAAM,GAAI,GAAK,GAYzC,OATAqvB,EAAOA,EAAK9c,OACR,KAAKxU,KAAKsxB,KAGVA,EAFEj6B,KAAKoT,QAAQ61D,WAAc,KAAKtgE,KAAKsnE,GAEhCh2C,EAAKrvB,MAAM,GAEXqvB,EAAKrvB,MAAM,GAAI,IAGnBuhE,GAAWC,EAAK,CACrBnyC,KAAMA,EAAOA,EAAKvxB,QAAQ1I,KAAK6sE,MAAMU,OAAOC,SAAU,MAAQvzC,EAC9DsyC,MAAOA,EAAQA,EAAM7jE,QAAQ1I,KAAK6sE,MAAMU,OAAOC,SAAU,MAAQjB,GAChEH,EAAI,GAAIpsE,KAAKssE,MAClB,CACF,GAAC,CAAAvtE,IAAA,UAAA2D,MAED,SAAQ42C,EAAKi3B,GACX,IAAInE,EACJ,IAAKA,EAAMpsE,KAAK6sE,MAAMU,OAAOiD,QAAQ1/D,KAAKwoC,MAClC8yB,EAAMpsE,KAAK6sE,MAAMU,OAAOkD,OAAO3/D,KAAKwoC,IAAO,CACjD,IAAI7zB,GAAQ2mD,EAAI,IAAMA,EAAI,IAAI1jE,QAAQ,OAAQ,KAE9C,KADA+c,EAAO8qD,EAAM9qD,EAAK1K,gBACP,CACT,IAAM2c,EAAO00C,EAAI,GAAGv5D,OAAO,GAC3B,MAAO,CACLpC,KAAM,OACN47D,IAAK30C,EACLA,KAAAA,EAEJ,CACA,OAAOy0C,GAAWC,EAAK3mD,EAAM2mD,EAAI,GAAIpsE,KAAKssE,MAC5C,CACF,GAAC,CAAAvtE,IAAA,WAAA2D,MAED,SAAS42C,EAAKo3B,GAA0B,IAAfC,EAAQzyE,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAG,GAC9BuU,EAAQzS,KAAK6sE,MAAMU,OAAOqD,SAASC,OAAO//D,KAAKwoC,GACnD,GAAK7mC,MAGDA,EAAM,KAAMk+D,EAASl+D,MAAM,2gSAEdA,EAAM,IAAMA,EAAM,IAAM,MAEvBk+D,GAAY3wE,KAAK6sE,MAAMU,OAAOuD,YAAYhgE,KAAK6/D,KAAW,CAC1E,IACII,EAAQC,EADNC,EAAUx+D,EAAM,GAAGtU,OAAS,EACb+yE,EAAaD,EAASE,EAAgB,EAErDC,EAAyB,MAAhB3+D,EAAM,GAAG,GAAazS,KAAK6sE,MAAMU,OAAOqD,SAASS,UAAYrxE,KAAK6sE,MAAMU,OAAOqD,SAASU,UAMvG,IALAF,EAAOG,UAAY,EAGnBb,EAAYA,EAAU9lE,OAAO,EAAI0uC,EAAIn7C,OAAS8yE,GAEH,OAAnCx+D,EAAQ2+D,EAAOtgE,KAAK4/D,KAG1B,GAFAK,EAASt+D,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,GAM3E,GAFAu+D,EAAUD,EAAO5yE,OAEbsU,EAAM,IAAMA,EAAM,GACpBy+D,GAAcF,OAET,MAAIv+D,EAAM,IAAMA,EAAM,KACvBw+D,EAAU,KAAQA,EAAUD,GAAW,GAQ7C,MAFAE,GAAcF,GAEG,GAAjB,CAGAA,EAAUpnE,KAAKsJ,IAAI89D,EAASA,EAAUE,EAAaC,GAEnD,IAAM9E,EAAM/yB,EAAI1uC,MAAM,EAAGqmE,EAAUx+D,EAAM1S,MAAQixE,EAAU,GAG3D,GAAIpnE,KAAKsJ,IAAI+9D,EAASD,GAAW,EAAG,CAClC,IAAMt5C,EAAO20C,EAAIzhE,MAAM,GAAI,GAC3B,MAAO,CACL6F,KAAM,KACN47D,IAAAA,EACA30C,KAAAA,EACAg1C,OAAQ1sE,KAAKssE,MAAMK,aAAaj1C,GAEpC,CAGA,IAAMA,EAAO20C,EAAIzhE,MAAM,GAAI,GAC3B,MAAO,CACL6F,KAAM,SACN47D,IAAAA,EACA30C,KAAAA,EACAg1C,OAAQ1sE,KAAKssE,MAAMK,aAAaj1C,GAxBN,OAPxBy5C,GAAiBH,CAkCzB,CACF,GAAC,CAAAjyE,IAAA,WAAA2D,MAED,SAAS42C,GACP,IAAM8yB,EAAMpsE,KAAK6sE,MAAMU,OAAO94C,KAAK3jB,KAAKwoC,GACxC,GAAI8yB,EAAK,CACP,IAAI10C,EAAO00C,EAAI,GAAG1jE,QAAQ,MAAO,KAC3B8oE,EAAmB,OAAO7oE,KAAK+uB,GAC/B+5C,EAA0B,KAAK9oE,KAAK+uB,IAAS,KAAK/uB,KAAK+uB,GAK7D,OAJI85C,GAAoBC,IACtB/5C,EAAOA,EAAK7S,UAAU,EAAG6S,EAAKv5B,OAAS,IAEzCu5B,EAAOggC,EAAOhgC,GAAM,GACb,CACLjnB,KAAM,WACN47D,IAAKD,EAAI,GACT10C,KAAAA,EAEJ,CACF,GAAC,CAAA34B,IAAA,KAAA2D,MAED,SAAG42C,GACD,IAAM8yB,EAAMpsE,KAAK6sE,MAAMU,OAAOroD,GAAGpU,KAAKwoC,GACtC,GAAI8yB,EACF,MAAO,CACL37D,KAAM,KACN47D,IAAKD,EAAI,GAGf,GAAC,CAAArtE,IAAA,MAAA2D,MAED,SAAI42C,GACF,IAAM8yB,EAAMpsE,KAAK6sE,MAAMU,OAAOmE,IAAI5gE,KAAKwoC,GACvC,GAAI8yB,EACF,MAAO,CACL37D,KAAM,MACN47D,IAAKD,EAAI,GACT10C,KAAM00C,EAAI,GACVM,OAAQ1sE,KAAKssE,MAAMK,aAAaP,EAAI,IAG1C,GAAC,CAAArtE,IAAA,WAAA2D,MAED,SAAS42C,EAAK0vB,GACZ,IAEMtxC,EAAMuC,EAFNmyC,EAAMpsE,KAAK6sE,MAAMU,OAAOoE,SAAS7gE,KAAKwoC,GAC5C,GAAI8yB,EAUF,OANEnyC,EAFa,MAAXmyC,EAAI,GAEC,WADP10C,EAAOggC,EAAO13D,KAAKoT,QAAQ41D,OAASA,EAAOoD,EAAI,IAAMA,EAAI,KAGzD10C,EAAOggC,EAAO0U,EAAI,IAIb,CACL37D,KAAM,OACN47D,IAAKD,EAAI,GACT10C,KAAAA,EACAuC,KAAAA,EACAyyC,OAAQ,CACN,CACEj8D,KAAM,OACN47D,IAAK30C,EACLA,KAAAA,IAKV,GAAC,CAAA34B,IAAA,MAAA2D,MAED,SAAI42C,EAAK0vB,GACP,IAAIoD,EACJ,GAAIA,EAAMpsE,KAAK6sE,MAAMU,OAAO51C,IAAI7mB,KAAKwoC,GAAM,CACzC,IAAI5hB,EAAMuC,EACV,GAAe,MAAXmyC,EAAI,GAENnyC,EAAO,WADPvC,EAAOggC,EAAO13D,KAAKoT,QAAQ41D,OAASA,EAAOoD,EAAI,IAAMA,EAAI,SAEpD,CAEL,IAAIwF,EACJ,GACEA,EAAcxF,EAAI,GAClBA,EAAI,GAAKpsE,KAAK6sE,MAAMU,OAAOsE,WAAW/gE,KAAKs7D,EAAI,IAAI,SAC5CwF,IAAgBxF,EAAI,IAC7B10C,EAAOggC,EAAO0U,EAAI,IAEhBnyC,EADa,SAAXmyC,EAAI,GACC,UAAYA,EAAI,GAEhBA,EAAI,EAEf,CACA,MAAO,CACL37D,KAAM,OACN47D,IAAKD,EAAI,GACT10C,KAAAA,EACAuC,KAAAA,EACAyyC,OAAQ,CACN,CACEj8D,KAAM,OACN47D,IAAK30C,EACLA,KAAAA,IAIR,CACF,GAAC,CAAA34B,IAAA,aAAA2D,MAED,SAAW42C,EAAKgwB,GACd,IAEM5xC,EAFA00C,EAAMpsE,KAAK6sE,MAAMU,OAAO71C,KAAK5mB,KAAKwoC,GACxC,GAAI8yB,EAOF,OAJE10C,EADE13B,KAAKssE,MAAMljC,MAAM4mC,WACZhwE,KAAKoT,QAAQ+1D,SAAYnpE,KAAKoT,QAAQg2D,UAAYppE,KAAKoT,QAAQg2D,UAAUgD,EAAI,IAAM1U,EAAO0U,EAAI,IAAOA,EAAI,GAEzG1U,EAAO13D,KAAKoT,QAAQk2D,YAAcA,EAAY8C,EAAI,IAAMA,EAAI,IAE9D,CACL37D,KAAM,OACN47D,IAAKD,EAAI,GACT10C,KAAAA,EAGN,KAACk1C,CAAA,CAxtBY,GA8tBTE,GAAQ,CACZC,QAAS,mBACTt4C,KAAM,uCACNw4C,OAAQ,8GACR5nD,GAAI,qEACJooD,QAAS,uCACTE,WAAY,0CACZE,KAAM,uCACN1D,KAAM,mdAUNqF,IAAK,kGACLC,MAAOhE,GACPqE,SAAU,gEAGVgC,WAAY,uFACZp6C,KAAM,UAGRo1C,OAAe,8BACfA,OAAe,gEACfA,GAAM0C,IAAMhF,GAAKsC,GAAM0C,KACpB9mE,QAAQ,QAASokE,GAAMiF,QACvBrpE,QAAQ,QAASokE,GAAMkF,QACvBrH,WAEHmC,GAAMmF,OAAS,wBACfnF,GAAMoF,cAAgB1H,GAAK,iBACxB9hE,QAAQ,OAAQokE,GAAMmF,QACtBtH,WAEHmC,GAAMe,KAAOrD,GAAKsC,GAAMe,MACrBnlE,QAAQ,QAASokE,GAAMmF,QACvBvpE,QAAQ,KAAM,mEACdA,QAAQ,MAAO,UAAYokE,GAAM0C,IAAI/nE,OAAS,KAC9CkjE,WAEHmC,GAAMqF,KAAO,gWAMbrF,GAAMsF,SAAW,+BACjBtF,GAAM3C,KAAOK,GAAKsC,GAAM3C,KAAM,KAC3BzhE,QAAQ,UAAWokE,GAAMsF,UACzB1pE,QAAQ,MAAOokE,GAAMqF,MACrBzpE,QAAQ,YAAa,4EACrBiiE,WAEHmC,GAAMgD,SAAWtF,GAAKsC,GAAMgD,UACzBpnE,QAAQ,QAASokE,GAAMmF,QACvBtH,WAEHmC,GAAMiD,UAAYvF,GAAKsC,GAAMgF,YAC1BppE,QAAQ,KAAMokE,GAAMznD,IACpB3c,QAAQ,UAAW,iBACnBA,QAAQ,YAAa,IACrBA,QAAQ,SAAU,IAClBA,QAAQ,aAAc,WACtBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOokE,GAAMqF,MACrBxH,WAEHmC,GAAMa,WAAanD,GAAKsC,GAAMa,YAC3BjlE,QAAQ,YAAaokE,GAAMiD,WAC3BpF,WAMHmC,GAAMuF,OAAMhrB,EAAA,GAAQylB,IAMpBA,GAAMpE,IAAGrhB,EAAAA,EAAA,GACJylB,GAAMuF,QAAM,IACf5C,MAAO,qKAKT3C,GAAMpE,IAAI+G,MAAQjF,GAAKsC,GAAMpE,IAAI+G,OAC9B/mE,QAAQ,KAAMokE,GAAMznD,IACpB3c,QAAQ,UAAW,iBACnBA,QAAQ,aAAc,WACtBA,QAAQ,OAAQ,cAChBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOokE,GAAMqF,MACrBxH,WAEHmC,GAAMpE,IAAIqH,UAAYvF,GAAKsC,GAAMgF,YAC9BppE,QAAQ,KAAMokE,GAAMznD,IACpB3c,QAAQ,UAAW,iBACnBA,QAAQ,YAAa,IACrBA,QAAQ,QAASokE,GAAMpE,IAAI+G,OAC3B/mE,QAAQ,aAAc,WACtBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOokE,GAAMqF,MACrBxH,WAKHmC,GAAM7D,SAAQ5hB,EAAAA,EAAA,GACTylB,GAAMuF,QAAM,IACflI,KAAMK,GACJ,8IAGC9hE,QAAQ,UAAWokE,GAAMsF,UACzB1pE,QAAQ,OAAQ,qKAIhBiiE,WACH6E,IAAK,oEACL/B,QAAS,yBACTR,OAAQxB,GACRqE,SAAU,mCACVC,UAAWvF,GAAKsC,GAAMuF,OAAOP,YAC1BppE,QAAQ,KAAMokE,GAAMznD,IACpB3c,QAAQ,UAAW,mBACnBA,QAAQ,WAAYokE,GAAMgD,UAC1BpnE,QAAQ,aAAc,WACtBA,QAAQ,UAAW,IACnBA,QAAQ,QAAS,IACjBA,QAAQ,QAAS,IACjBiiE,aAML,IAAM4C,GAAS,CACb7V,OAAQ,8CACRia,SAAU,sCACVh6C,IAAK8zC,GACLp+D,IAAK,2JAMLoY,KAAM,gDACN+qD,QAAS,0BACTC,OAAQ,wBACR6B,cAAe,wBACf1B,SAAU,CACRC,OAAQ,oEAGRQ,UAAW,mPACXC,UAAW,8MAEb78C,KAAM,sCACNvP,GAAI,wBACJwsD,IAAKjG,GACL/zC,KAAM,8EACNo5C,YAAa,8BA0If,SAASxH,GAAY5xC,GACnB,OAAOA,EAEJhvB,QAAQ,OAAQ,UAEhBA,QAAQ,MAAO,UAEfA,QAAQ,0BAA2B,YAEnCA,QAAQ,KAAM,UAEdA,QAAQ,+BAAgC,YAExCA,QAAQ,KAAM,UAEdA,QAAQ,SAAU,SACvB,CAMA,SAASsgE,GAAOtxC,GACd,IACEz5B,EACAkpC,EAFEorC,EAAM,GAIJ90D,EAAIia,EAAKv5B,OACf,IAAKF,EAAI,EAAGA,EAAIwf,EAAGxf,IACjBkpC,EAAKzP,EAAKllB,WAAWvU,GACjB2L,KAAKo0B,SAAW,KAClBmJ,EAAK,IAAMA,EAAGxoC,SAAS,KAEzB4zE,GAAO,KAAOprC,EAAK,IAGrB,OAAOorC,CACT,CA3KAhF,GAAOiF,aAAe,kBACtBjF,GAAOuD,YAActG,GAAK+C,GAAOuD,YAAa,KAAKpoE,QAAQ,eAAgB6kE,GAAOiF,cAAc7H,WAGhG4C,GAAOkF,UAAY,gDACnBlF,GAAOmF,eAAiB,aACxBnF,GAAOC,SAAW,eAElBD,GAAO6E,SAAW5H,GAAKsC,GAAMsF,UAAU1pE,QAAQ,eAAa,UAAOiiE,WAEnE4C,GAAOqD,SAASC,OAASrG,GAAK+C,GAAOqD,SAASC,OAAQ,KACnDnoE,QAAQ,SAAU6kE,GAAOiF,cACzB7H,WAEH4C,GAAOqD,SAASS,UAAY7G,GAAK+C,GAAOqD,SAASS,UAAW,MACzD3oE,QAAQ,SAAU6kE,GAAOiF,cACzB7H,WAEH4C,GAAOqD,SAASU,UAAY9G,GAAK+C,GAAOqD,SAASU,UAAW,MACzD5oE,QAAQ,SAAU6kE,GAAOiF,cACzB7H,WAEH4C,GAAOmF,eAAiBlI,GAAK+C,GAAOmF,eAAgB,MACjDhqE,QAAQ,SAAU6kE,GAAOiF,cACzB7H,WAEH4C,GAAOC,SAAWhD,GAAK+C,GAAOC,SAAU,MACrC9kE,QAAQ,SAAU6kE,GAAOiF,cACzB7H,WAEH4C,GAAOoF,QAAU,+BACjBpF,GAAOqF,OAAS,+IAChBrF,GAAOoE,SAAWnH,GAAK+C,GAAOoE,UAC3BjpE,QAAQ,SAAU6kE,GAAOoF,SACzBjqE,QAAQ,QAAS6kE,GAAOqF,QACxBjI,WAEH4C,GAAOsF,WAAa,8EAEpBtF,GAAOlgE,IAAMm9D,GAAK+C,GAAOlgE,KACtB3E,QAAQ,UAAW6kE,GAAO6E,UAC1B1pE,QAAQ,YAAa6kE,GAAOsF,YAC5BlI,WAEH4C,GAAOwE,OAAS,sDAChBxE,GAAOuF,MAAQ,uCACfvF,GAAOyE,OAAS,8DAEhBzE,GAAO9nD,KAAO+kD,GAAK+C,GAAO9nD,MACvB/c,QAAQ,QAAS6kE,GAAOwE,QACxBrpE,QAAQ,OAAQ6kE,GAAOuF,OACvBpqE,QAAQ,QAAS6kE,GAAOyE,QACxBrH,WAEH4C,GAAOiD,QAAUhG,GAAK+C,GAAOiD,SAC1B9nE,QAAQ,QAAS6kE,GAAOwE,QACxBrpE,QAAQ,MAAOokE,GAAMiF,QACrBpH,WAEH4C,GAAOkD,OAASjG,GAAK+C,GAAOkD,QACzB/nE,QAAQ,MAAOokE,GAAMiF,QACrBpH,WAEH4C,GAAO+E,cAAgB9H,GAAK+C,GAAO+E,cAAe,KAC/C5pE,QAAQ,UAAW6kE,GAAOiD,SAC1B9nE,QAAQ,SAAU6kE,GAAOkD,QACzB9F,WAMH4C,GAAO8E,OAAMhrB,EAAA,GAAQkmB,IAMrBA,GAAOtE,SAAQ5hB,EAAAA,EAAA,GACVkmB,GAAO8E,QAAM,IAChBU,OAAQ,CACN/oE,MAAO,WACPgpE,OAAQ,iEACRC,OAAQ,cACRC,OAAQ,YAEVC,GAAI,CACFnpE,MAAO,QACPgpE,OAAQ,6DACRC,OAAQ,YACRC,OAAQ,WAEVztD,KAAM+kD,GAAK,2BACR9hE,QAAQ,QAAS6kE,GAAOwE,QACxBpH,WACH6F,QAAShG,GAAK,iCACX9hE,QAAQ,QAAS6kE,GAAOwE,QACxBpH,aAOL4C,GAAO7E,IAAGrhB,EAAAA,EAAA,GACLkmB,GAAO8E,QAAM,IAChB3a,OAAQ8S,GAAK+C,GAAO7V,QAAQhvD,QAAQ,KAAM,QAAQiiE,WAClDyI,gBAAiB,4EACjBz7C,IAAK,mEACLk6C,WAAY,6EACZH,IAAK,+CACLh6C,KAAM,+NAGR61C,GAAO7E,IAAI/wC,IAAM6yC,GAAK+C,GAAO7E,IAAI/wC,IAAK,KACnCjvB,QAAQ,QAAS6kE,GAAO7E,IAAI0K,iBAC5BzI,WAKH4C,GAAO/E,OAAMnhB,EAAAA,EAAA,GACRkmB,GAAO7E,KAAG,IACbxjD,GAAIslD,GAAK+C,GAAOroD,IAAIxc,QAAQ,OAAQ,KAAKiiE,WACzCjzC,KAAM8yC,GAAK+C,GAAO7E,IAAIhxC,MACnBhvB,QAAQ,OAAQ,iBAChBA,QAAQ,UAAW,KACnBiiE,aA8CL,IAGM0I,GAAK,WACT,SAAAA,EAAYjgE,GAASyvC,EAAA,KAAAwwB,GACnBrzE,KAAK0sE,OAAS,GACd1sE,KAAK0sE,OAAO6D,MAAQ3xE,OAAOkwC,OAAO,MAClC9uC,KAAKoT,QAAUA,GAAWs2D,EAC1B1pE,KAAKoT,QAAQm2D,UAAYvpE,KAAKoT,QAAQm2D,WAAa,IAAIqD,GACvD5sE,KAAKupE,UAAYvpE,KAAKoT,QAAQm2D,UAC9BvpE,KAAKupE,UAAUn2D,QAAUpT,KAAKoT,QAC9BpT,KAAKupE,UAAU+C,MAAQtsE,KACvBA,KAAKszE,YAAc,GACnBtzE,KAAKopC,MAAQ,CACXojC,QAAQ,EACRwD,YAAY,EACZx0C,KAAK,GAGP,IAAMqxC,EAAQ,CACZC,MAAOA,GAAMuF,OACb9E,OAAQA,GAAO8E,QAGbryE,KAAKoT,QAAQ61D,UACf4D,EAAMC,MAAQA,GAAM7D,SACpB4D,EAAMU,OAASA,GAAOtE,UACbjpE,KAAKoT,QAAQs1D,MACtBmE,EAAMC,MAAQA,GAAMpE,IAChB1oE,KAAKoT,QAAQo1D,OACfqE,EAAMU,OAASA,GAAO/E,OAEtBqE,EAAMU,OAASA,GAAO7E,KAG1B1oE,KAAKupE,UAAUsD,MAAQA,CACzB,CA0BC,OAxBD9pB,EAAAswB,EAAA,EAAAt0E,IAAA,MAAA2D,MA6BA,SAAI42C,GAMF,IAAInT,EACJ,IANAmT,EAAMA,EACH5wC,QAAQ,WAAY,MAEvB1I,KAAK4tE,YAAYt0B,EAAKt5C,KAAK0sE,QAGpBvmC,EAAOnmC,KAAKszE,YAAYvlD,SAC7B/tB,KAAK2sE,aAAaxmC,EAAKmT,IAAKnT,EAAKumC,QAGnC,OAAO1sE,KAAK0sE,MACd,GAEA,CAAA3tE,IAAA,cAAA2D,MAGA,SAAY42C,GAAkB,IASxBmzB,EAAO8G,EAAWC,EAAQC,EATFnvB,EAAA,KAAbooB,EAAMxuE,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAG,GAEtBo7C,EADEt5C,KAAKoT,QAAQ61D,SACT3vB,EAAI5wC,QAAQ,MAAO,QAAQA,QAAQ,SAAU,IAE7C4wC,EAAI5wC,QAAQ,gBAAgB,SAACwoD,EAAGv9C,EAAS+/D,GAC7C,OAAO//D,EAAU,OAAO+gB,OAAOg/C,EAAKv1E,OACtC,IAKF,IAFmD,IAAAw1E,EAAA,WAGjD,GAAIrvB,EAAKlxC,QAAQq1D,YACZnkB,EAAKlxC,QAAQq1D,WAAWqE,OACxBxoB,EAAKlxC,QAAQq1D,WAAWqE,MAAMlM,MAAK,SAACgT,GACrC,SAAInH,EAAQmH,EAAa50E,KAAK,CAAEstE,MAAOhoB,GAAQhL,EAAKozB,MAClDpzB,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,IACL,EAGX,IAAI,iBAKN,GAAIA,EAAQnoB,EAAKilB,UAAUsK,MAAMv6B,GAQ9B,OAPDA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QACL,IAArBsuE,EAAMJ,IAAIluE,QAAgBuuE,EAAOvuE,OAAS,EAG5CuuE,EAAOA,EAAOvuE,OAAS,GAAGkuE,KAAO,KAEjCK,EAAOpuE,KAAKmuE,GACb,WAKH,GAAIA,EAAQnoB,EAAKilB,UAAU90C,KAAK6kB,GAU7B,OATDA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,UAC9Bo1E,EAAY7G,EAAOA,EAAOvuE,OAAS,KAEE,cAAnBo1E,EAAU9iE,MAA2C,SAAnB8iE,EAAU9iE,KAK5Di8D,EAAOpuE,KAAKmuE,IAJZ8G,EAAUlH,KAAO,KAAOI,EAAMJ,IAC9BkH,EAAU77C,MAAQ,KAAO+0C,EAAM/0C,KAC/B4sB,EAAKgvB,YAAYhvB,EAAKgvB,YAAYn1E,OAAS,GAAGm7C,IAAMi6B,EAAU77C,MAG/D,WAKH,GAAI+0C,EAAQnoB,EAAKilB,UAAU0D,OAAO3zB,GAEb,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnoB,EAAKilB,UAAUkE,QAAQn0B,GAEd,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnoB,EAAKilB,UAAUlkD,GAAGi0B,GAET,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnoB,EAAKilB,UAAUoE,WAAWr0B,GAEjB,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnoB,EAAKilB,UAAUsE,KAAKv0B,GAEX,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnoB,EAAKilB,UAAUY,KAAK7wB,GAEX,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnoB,EAAKilB,UAAUiG,IAAIl2B,GAY5B,OAXDA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,UAC9Bo1E,EAAY7G,EAAOA,EAAOvuE,OAAS,KACE,cAAnBo1E,EAAU9iE,MAA2C,SAAnB8iE,EAAU9iE,KAIlD6zC,EAAKooB,OAAO6D,MAAM9D,EAAMp/D,OAClCi3C,EAAKooB,OAAO6D,MAAM9D,EAAMp/D,KAAO,CAC7B4sB,KAAMwyC,EAAMxyC,KACZsyC,MAAOE,EAAMF,SANfgH,EAAUlH,KAAO,KAAOI,EAAMJ,IAC9BkH,EAAU77C,MAAQ,KAAO+0C,EAAMJ,IAC/B/nB,EAAKgvB,YAAYhvB,EAAKgvB,YAAYn1E,OAAS,GAAGm7C,IAAMi6B,EAAU77C,MAM/D,WAKH,GAAI+0C,EAAQnoB,EAAKilB,UAAUkG,MAAMn2B,GAEZ,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnoB,EAAKilB,UAAUuG,SAASx2B,GAEf,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAOrB,GADA+G,EAASl6B,EACLgL,EAAKlxC,QAAQq1D,YAAcnkB,EAAKlxC,QAAQq1D,WAAWqL,WAAY,CACjE,IAEIC,EAFAC,EAAa75B,IACX85B,EAAU36B,EAAI1uC,MAAM,GAE1B05C,EAAKlxC,QAAQq1D,WAAWqL,WAAW1iE,SAAQ,SAAS8iE,GAEzB,kBADzBH,EAAYG,EAAcl1E,KAAK,CAAEstE,MAAOtsE,MAAQi0E,KACXF,GAAa,IAAKC,EAAapqE,KAAKsJ,IAAI8gE,EAAYD,GAC3F,IACIC,EAAa75B,KAAY65B,GAAc,IACzCR,EAASl6B,EAAIz0B,UAAU,EAAGmvD,EAAa,GAE3C,CACA,GAAI1vB,EAAKlb,MAAM5N,MAAQixC,EAAQnoB,EAAKilB,UAAUwG,UAAUyD,IAWhB,OAVtCD,EAAY7G,EAAOA,EAAOvuE,OAAS,GAC/Bs1E,GAA2C,cAAnBF,EAAU9iE,MACpC8iE,EAAUlH,KAAO,KAAOI,EAAMJ,IAC9BkH,EAAU77C,MAAQ,KAAO+0C,EAAM/0C,KAC/B4sB,EAAKgvB,YAAYpiE,MACjBozC,EAAKgvB,YAAYhvB,EAAKgvB,YAAYn1E,OAAS,GAAGm7C,IAAMi6B,EAAU77C,MAE9Dg1C,EAAOpuE,KAAKmuE,GAEdgH,EAAwBD,EAAOr1E,SAAWm7C,EAAIn7C,OAC9Cm7C,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAAQ,WAKxC,GAAIsuE,EAAQnoB,EAAKilB,UAAU7xC,KAAK4hB,GAU7B,OATDA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,SAC9Bo1E,EAAY7G,EAAOA,EAAOvuE,OAAS,KACC,SAAnBo1E,EAAU9iE,MACzB8iE,EAAUlH,KAAO,KAAOI,EAAMJ,IAC9BkH,EAAU77C,MAAQ,KAAO+0C,EAAM/0C,KAC/B4sB,EAAKgvB,YAAYpiE,MACjBozC,EAAKgvB,YAAYhvB,EAAKgvB,YAAYn1E,OAAS,GAAGm7C,IAAMi6B,EAAU77C,MAE9Dg1C,EAAOpuE,KAAKmuE,GACb,WAIH,GAAInzB,EAAK,CACP,IAAM66B,EAAS,0BAA4B76B,EAAI9mC,WAAW,GAC1D,GAAI8xC,EAAKlxC,QAAQi2D,OACO,OAAtB33B,QAAQC,MAAMwiC,GAAQ,QAGtB,MAAM,IAAIv8D,MAAMu8D,EAEpB,CACF,EAzKO76B,GAAK,CAAF,IAAA86B,EAAAT,IAAA,gBAAAS,GAWG,UAAAA,EAyJP,KAAM,CAQZ,OADAp0E,KAAKopC,MAAM5N,KAAM,EACVkxC,CACT,GAAC,CAAA3tE,IAAA,SAAA2D,MAED,SAAO42C,GAAkB,IAAbozB,EAAMxuE,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAG,GAEnB,OADA8B,KAAKszE,YAAYh1E,KAAK,CAAEg7C,IAAAA,EAAKozB,OAAAA,IACtBA,CACT,GAEA,CAAA3tE,IAAA,eAAA2D,MAGA,SAAa42C,GAAkB,IACzBmzB,EAAO8G,EAAWC,EAIlB/gE,EACA4hE,EAAc1D,EANWrhB,EAAA,KAAbod,EAAMxuE,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAG,GAIrBwyE,EAAYp3B,EAKhB,GAAIt5C,KAAK0sE,OAAO6D,MAAO,CACrB,IAAMA,EAAQ3xE,OAAOqG,KAAKjF,KAAK0sE,OAAO6D,OACtC,GAAIA,EAAMpyE,OAAS,EACjB,KAA8E,OAAtEsU,EAAQzS,KAAKupE,UAAUsD,MAAMU,OAAO+E,cAAcxhE,KAAK4/D,KACzDH,EAAMzxE,SAAS2T,EAAM,GAAG7H,MAAM6H,EAAM,GAAGq1D,YAAY,KAAO,GAAI,MAChE4I,EAAYA,EAAU9lE,MAAM,EAAG6H,EAAM1S,OAAS,IAAM,IAAI20B,OAAOjiB,EAAM,GAAGtU,OAAS,GAAK,IAAMuyE,EAAU9lE,MAAM5K,KAAKupE,UAAUsD,MAAMU,OAAO+E,cAAcf,WAI9J,CAEA,KAA0E,OAAlE9+D,EAAQzS,KAAKupE,UAAUsD,MAAMU,OAAOkF,UAAU3hE,KAAK4/D,KACzDA,EAAYA,EAAU9lE,MAAM,EAAG6H,EAAM1S,OAAS,IAAM,IAAI20B,OAAOjiB,EAAM,GAAGtU,OAAS,GAAK,IAAMuyE,EAAU9lE,MAAM5K,KAAKupE,UAAUsD,MAAMU,OAAOkF,UAAUlB,WAIpJ,KAA+E,OAAvE9+D,EAAQzS,KAAKupE,UAAUsD,MAAMU,OAAOmF,eAAe5hE,KAAK4/D,KAC9DA,EAAYA,EAAU9lE,MAAM,EAAG6H,EAAM1S,OAAS,KAAO2wE,EAAU9lE,MAAM5K,KAAKupE,UAAUsD,MAAMU,OAAOmF,eAAenB,WAGlH,IAFC,IAAA+C,EAAA,WASC,GANKD,IACH1D,EAAW,IAEb0D,GAAe,EAGX/kB,EAAKl8C,QAAQq1D,YACZnZ,EAAKl8C,QAAQq1D,WAAW8E,QACxBje,EAAKl8C,QAAQq1D,WAAW8E,OAAO3M,MAAK,SAACgT,GACtC,SAAInH,EAAQmH,EAAa50E,KAAK,CAAEstE,MAAOhd,GAAQhW,EAAKozB,MAClDpzB,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,IACL,EAGX,IAAI,iBAKN,GAAIA,EAAQnd,EAAKia,UAAU7R,OAAOpe,GAEb,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnd,EAAKia,UAAUl8D,IAAIisC,GAQ5B,OAPDA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,SAC9Bo1E,EAAY7G,EAAOA,EAAOvuE,OAAS,KACH,SAAfsuE,EAAMh8D,MAAsC,SAAnB8iE,EAAU9iE,MAClD8iE,EAAUlH,KAAOI,EAAMJ,IACvBkH,EAAU77C,MAAQ+0C,EAAM/0C,MAExBg1C,EAAOpuE,KAAKmuE,GACb,WAKH,GAAIA,EAAQnd,EAAKia,UAAU9jD,KAAK6zB,GAEX,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnd,EAAKia,UAAUiH,QAAQl3B,EAAKgW,EAAKod,OAAO6D,OAQjD,OAPDj3B,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,SAC9Bo1E,EAAY7G,EAAOA,EAAOvuE,OAAS,KACH,SAAfsuE,EAAMh8D,MAAsC,SAAnB8iE,EAAU9iE,MAClD8iE,EAAUlH,KAAOI,EAAMJ,IACvBkH,EAAU77C,MAAQ+0C,EAAM/0C,MAExBg1C,EAAOpuE,KAAKmuE,GACb,WAKH,GAAIA,EAAQnd,EAAKia,UAAUqH,SAASt3B,EAAKo3B,EAAWC,GAE/B,OADnBr3B,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnd,EAAKia,UAAUgL,SAASj7B,GAEf,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnd,EAAKia,UAAUrkD,GAAGo0B,GAET,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnd,EAAKia,UAAUmI,IAAIp4B,GAEV,OADnBA,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,GAAIA,EAAQnd,EAAKia,UAAUoI,SAASr4B,EAAK0vB,IAEpB,OADnB1vB,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAKrB,IAAKnd,EAAKlmB,MAAMojC,SAAWC,EAAQnd,EAAKia,UAAU5xC,IAAI2hB,EAAK0vB,KAEtC,OADnB1vB,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QAC9BuuE,EAAOpuE,KAAKmuE,GAAO,WAOrB,GADA+G,EAASl6B,EACLgW,EAAKl8C,QAAQq1D,YAAcnZ,EAAKl8C,QAAQq1D,WAAW+L,YAAa,CAClE,IAEIT,EAFAC,EAAa75B,IACX85B,EAAU36B,EAAI1uC,MAAM,GAE1B0kD,EAAKl8C,QAAQq1D,WAAW+L,YAAYpjE,SAAQ,SAAS8iE,GAE1B,kBADzBH,EAAYG,EAAcl1E,KAAK,CAAEstE,MAAOtsE,MAAQi0E,KACXF,GAAa,IAAKC,EAAapqE,KAAKsJ,IAAI8gE,EAAYD,GAC3F,IACIC,EAAa75B,KAAY65B,GAAc,IACzCR,EAASl6B,EAAIz0B,UAAU,EAAGmvD,EAAa,GAE3C,CACA,GAAIvH,EAAQnd,EAAKia,UAAUkL,WAAWjB,EAAQlK,IAY3C,OAXDhwB,EAAMA,EAAIz0B,UAAU4nD,EAAMJ,IAAIluE,QACF,MAAxBsuE,EAAMJ,IAAIzhE,OAAO,KACnB+lE,EAAWlE,EAAMJ,IAAIzhE,OAAO,IAE9BypE,GAAe,GACfd,EAAY7G,EAAOA,EAAOvuE,OAAS,KACC,SAAnBo1E,EAAU9iE,MACzB8iE,EAAUlH,KAAOI,EAAMJ,IACvBkH,EAAU77C,MAAQ+0C,EAAM/0C,MAExBg1C,EAAOpuE,KAAKmuE,GACb,WAIH,GAAInzB,EAAK,CACP,IAAM66B,EAAS,0BAA4B76B,EAAI9mC,WAAW,GAC1D,GAAI88C,EAAKl8C,QAAQi2D,OACO,OAAtB33B,QAAQC,MAAMwiC,GAAQ,QAGtB,MAAM,IAAIv8D,MAAMu8D,EAEpB,CACF,EA9IO76B,GAAK,CAAF,IAAAo7B,EAAAJ,IAAA,gBAAAI,GAiBG,UAAAA,EAwHP,KAAM,CAOZ,OAAOhI,CACT,IAAC,EAAA3tE,IAAA,QAAAqB,IA3ZD,WACE,MAAO,CACL0sE,MAAAA,GACAS,OAAAA,GAEJ,GAEA,CAAAxuE,IAAA,MAAA2D,MAGA,SAAW42C,EAAKlmC,GAEd,OADc,IAAIigE,EAAMjgE,GACXuhE,IAAIr7B,EACnB,GAEA,CAAAv6C,IAAA,YAAA2D,MAGA,SAAiB42C,EAAKlmC,GAEpB,OADc,IAAIigE,EAAMjgE,GACXu5D,aAAarzB,EAC5B,KAAC+5B,CAAA,CA3DQ,GAucLuB,GAAQ,WACZ,SAAAA,EAAYxhE,GAASyvC,EAAA,KAAA+xB,GACnB50E,KAAKoT,QAAUA,GAAWs2D,CAC5B,CA6LC,OA7LA3mB,EAAA6xB,EAAA,EAAA71E,IAAA,OAAA2D,MAED,SAAK+xB,EAAMogD,EAAY/I,GACrB,IAAMwB,GAAQuH,GAAc,IAAIpiE,MAAM,OAAO,GAC7C,GAAIzS,KAAKoT,QAAQy1D,UAAW,CAC1B,IAAM0J,EAAMvyE,KAAKoT,QAAQy1D,UAAUp0C,EAAM64C,GAC9B,MAAPiF,GAAeA,IAAQ99C,IACzBq3C,GAAU,EACVr3C,EAAO89C,EAEX,CAIA,OAFA99C,EAAOA,EAAK/rB,QAAQ,MAAO,IAAM,KAE5B4kE,EAME,qBACHttE,KAAKoT,QAAQ21D,WACbrR,EAAO4V,GACP,MACCxB,EAAUr3C,EAAOijC,EAAOjjC,GAAM,IAC/B,kBAVK,eACFq3C,EAAUr3C,EAAOijC,EAAOjjC,GAAM,IAC/B,iBASR,GAEA,CAAA11B,IAAA,aAAA2D,MAGA,SAAWgQ,GACT,MAAO,iBAAP4qB,OAAwB5qB,EAAK,kBAC/B,GAAC,CAAA3T,IAAA,OAAA2D,MAED,SAAKynE,EAAM2C,GACT,OAAO3C,CACT,GAEA,CAAAprE,IAAA,UAAA2D,MAMA,SAAQg1B,EAAM04C,EAAO/D,EAAKyI,GACxB,GAAI90E,KAAKoT,QAAQu1D,UAAW,CAC1B,IAAM/5C,EAAK5uB,KAAKoT,QAAQw1D,aAAekM,EAAQC,KAAK1I,GACpD,MAAO,KAAP/uC,OAAY8yC,EAAK,SAAA9yC,OAAQ1O,EAAE,MAAA0O,OAAK5F,EAAI,OAAA4F,OAAM8yC,EAAK,MACjD,CAGA,MAAO,KAAP9yC,OAAY8yC,EAAK,KAAA9yC,OAAI5F,EAAI,OAAA4F,OAAM8yC,EAAK,MACtC,GAAC,CAAArxE,IAAA,KAAA2D,MAED,WACE,OAAO1C,KAAKoT,QAAQq2D,MAAQ,UAAY,QAC1C,GAAC,CAAA1qE,IAAA,OAAA2D,MAED,SAAK0c,EAAMsvD,EAAS1kE,GAClB,IAAMyG,EAAOi+D,EAAU,KAAO,KAE9B,MAAO,IAAMj+D,GADCi+D,GAAqB,IAAV1kE,EAAgB,WAAaA,EAAQ,IAAO,IACtC,MAAQoV,EAAO,KAAO3O,EAAO,KAC9D,GAEA,CAAA1R,IAAA,WAAA2D,MAGA,SAASg1B,GACP,MAAO,OAAP4F,OAAc5F,EAAI,UACpB,GAAC,CAAA34B,IAAA,WAAA2D,MAED,SAASuc,GACP,MAAO,WACFA,EAAU,cAAgB,IAC3B,+BACCjf,KAAKoT,QAAQq2D,MAAQ,KAAO,IAC7B,IACN,GAEA,CAAA1qE,IAAA,YAAA2D,MAGA,SAAUg1B,GACR,MAAO,MAAP4F,OAAa5F,EAAI,SACnB,GAEA,CAAA34B,IAAA,QAAA2D,MAIA,SAAMgtE,EAAQtwD,GAGZ,OAFIA,IAAMA,EAAO,UAAHke,OAAale,EAAI,aAExB,qBAEHswD,EACA,aACAtwD,EACA,YACN,GAEA,CAAArgB,IAAA,WAAA2D,MAGA,SAASsyE,GACP,MAAO,SAAP13C,OAAgB03C,EAAO,UACzB,GAAC,CAAAj2E,IAAA,YAAA2D,MAED,SAAUsyE,EAAS3sD,GACjB,IAAM5X,EAAO4X,EAAMqnD,OAAS,KAAO,KAInC,OAHYrnD,EAAMsnD,MAAK,IAAAryC,OACf7sB,EAAI,YAAA6sB,OAAWjV,EAAMsnD,MAAK,UAAAryC,OAC1B7sB,EAAI,MACCukE,EAAU,KAAH13C,OAAQ7sB,EAAI,MAClC,GAEA,CAAA1R,IAAA,SAAA2D,MAIA,SAAOg1B,GACL,MAAO,WAAP4F,OAAkB5F,EAAI,YACxB,GAEA,CAAA34B,IAAA,KAAA2D,MAGA,SAAGg1B,GACD,MAAO,OAAP4F,OAAc5F,EAAI,QACpB,GAEA,CAAA34B,IAAA,WAAA2D,MAGA,SAASg1B,GACP,MAAO,SAAP4F,OAAgB5F,EAAI,UACtB,GAAC,CAAA34B,IAAA,KAAA2D,MAED,WACE,OAAO1C,KAAKoT,QAAQq2D,MAAQ,QAAU,MACxC,GAEA,CAAA1qE,IAAA,MAAA2D,MAGA,SAAIg1B,GACF,MAAO,QAAP4F,OAAe5F,EAAI,SACrB,GAEA,CAAA34B,IAAA,OAAA2D,MAKA,SAAKu3B,EAAMsyC,EAAO70C,GAEhB,GAAa,QADbuC,EAAO6wC,GAAS9qE,KAAKoT,QAAQ+1D,SAAUnpE,KAAKoT,QAAQm1D,QAAStuC,IAE3D,OAAOvC,EAET,IAAI66C,EAAM,YAAct4C,EAAO,IAK/B,OAJIsyC,IACFgG,GAAO,WAAahG,EAAQ,KAE9BgG,GAAO,IAAM76C,EAAO,MAEtB,GAEA,CAAA34B,IAAA,QAAA2D,MAKA,SAAMu3B,EAAMsyC,EAAO70C,GAEjB,GAAa,QADbuC,EAAO6wC,GAAS9qE,KAAKoT,QAAQ+1D,SAAUnpE,KAAKoT,QAAQm1D,QAAStuC,IAE3D,OAAOvC,EAGT,IAAI66C,EAAM,aAAHj1C,OAAgBrD,EAAI,WAAAqD,OAAU5F,EAAI,KAKzC,OAJI60C,IACFgG,GAAO,WAAJj1C,OAAeivC,EAAK,MAEzBgG,GAAOvyE,KAAKoT,QAAQq2D,MAAQ,KAAO,GAErC,GAAC,CAAA1qE,IAAA,OAAA2D,MAED,SAAKg1B,GACH,OAAOA,CACT,KAACk9C,CAAA,CAhMW,GAuMRK,GAAY,oBAAAA,IAAApyB,EAAA,KAAAoyB,EAAA,CAoCf,OApCelyB,EAAAkyB,EAAA,EAAAl2E,IAAA,SAAA2D,MAEhB,SAAOg1B,GACL,OAAOA,CACT,GAAC,CAAA34B,IAAA,KAAA2D,MAED,SAAGg1B,GACD,OAAOA,CACT,GAAC,CAAA34B,IAAA,WAAA2D,MAED,SAASg1B,GACP,OAAOA,CACT,GAAC,CAAA34B,IAAA,MAAA2D,MAED,SAAIg1B,GACF,OAAOA,CACT,GAAC,CAAA34B,IAAA,OAAA2D,MAED,SAAKg1B,GACH,OAAOA,CACT,GAAC,CAAA34B,IAAA,OAAA2D,MAED,SAAKg1B,GACH,OAAOA,CACT,GAAC,CAAA34B,IAAA,OAAA2D,MAED,SAAKu3B,EAAMsyC,EAAO70C,GAChB,MAAO,GAAKA,CACd,GAAC,CAAA34B,IAAA,QAAA2D,MAED,SAAMu3B,EAAMsyC,EAAO70C,GACjB,MAAO,GAAKA,CACd,GAAC,CAAA34B,IAAA,KAAA2D,MAED,WACE,MAAO,EACT,KAACuyE,CAAA,CApCe,GA0CZC,GAAO,WACX,SAAAA,IAAcryB,EAAA,KAAAqyB,GACZl1E,KAAKoL,KAAO,CAAC,CACf,CA+CC,OA7CD23C,EAAAmyB,EAAA,EAAAn2E,IAAA,YAAA2D,MAGA,SAAUA,GACR,OAAOA,EACJqY,cACAoC,OAEAzU,QAAQ,kBAAmB,IAE3BA,QAAQ,gEAAiE,IACzEA,QAAQ,MAAO,IACpB,GAEA,CAAA3J,IAAA,kBAAA2D,MAKA,SAAgByyE,EAAcC,GAC5B,IAAIL,EAAOI,EACPE,EAAuB,EAC3B,GAAIr1E,KAAKoL,KAAKtN,eAAei3E,GAAO,CAClCM,EAAuBr1E,KAAKoL,KAAK+pE,GACjC,GAEEJ,EAAOI,EAAe,OADtBE,QAEOr1E,KAAKoL,KAAKtN,eAAei3E,GACpC,CAKA,OAJKK,IACHp1E,KAAKoL,KAAK+pE,GAAgBE,EAC1Br1E,KAAKoL,KAAK2pE,GAAQ,GAEbA,CACT,GAEA,CAAAh2E,IAAA,OAAA2D,MAMA,SAAKA,GAAqB,IAAd0Q,EAAOlV,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAG,CAAC,EACf62E,EAAO/0E,KAAKs1E,UAAU5yE,GAC5B,OAAO1C,KAAKu1E,gBAAgBR,EAAM3hE,EAAQoiE,OAC5C,KAACN,CAAA,CAlDU,GAwDPO,GAAM,WACV,SAAAA,EAAYriE,GAASyvC,EAAA,KAAA4yB,GACnBz1E,KAAKoT,QAAUA,GAAWs2D,EAC1B1pE,KAAKoT,QAAQ81D,SAAWlpE,KAAKoT,QAAQ81D,UAAY,IAAI0L,GACrD50E,KAAKkpE,SAAWlpE,KAAKoT,QAAQ81D,SAC7BlpE,KAAKkpE,SAAS91D,QAAUpT,KAAKoT,QAC7BpT,KAAK01E,aAAe,IAAIT,GACxBj1E,KAAK80E,QAAU,IAAII,EACrB,CAgBC,OAdDnyB,EAAA0yB,EAAA,EAAA12E,IAAA,QAAA2D,MAmBA,SAAMgqE,GAAoB,IAEtBzuE,EACA+hE,EACAriD,EACAg4D,EACAC,EACA/F,EACAgG,EACAnG,EACAtwD,EACAqtD,EACAiC,EACA1kE,EACA2kE,EACAmH,EACAvoB,EACAtuC,EACAkwD,EACA4G,EACAC,EApBUx6C,IAAGt9B,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,KAAAA,UAAA,GACXq0E,EAAM,GAqBJ90D,EAAIivD,EAAOvuE,OACjB,IAAKF,EAAI,EAAGA,EAAIwf,EAAGxf,IAIjB,GAHAwuE,EAAQC,EAAOzuE,KAGX+B,KAAKoT,QAAQq1D,YAAczoE,KAAKoT,QAAQq1D,WAAWwN,WAAaj2E,KAAKoT,QAAQq1D,WAAWwN,UAAUxJ,EAAMh8D,SAE9F,KADZulE,EAAMh2E,KAAKoT,QAAQq1D,WAAWwN,UAAUxJ,EAAMh8D,MAAMzR,KAAK,CAAEk3E,OAAQl2E,MAAQysE,KACrD,CAAC,QAAS,KAAM,UAAW,OAAQ,QAAS,aAAc,OAAQ,OAAQ,YAAa,QAAQ3tE,SAAS2tE,EAAMh8D,MAMtI,OAAQg8D,EAAMh8D,MACZ,IAAK,QACH,SAEF,IAAK,KACH8hE,GAAOvyE,KAAKkpE,SAAS7jD,KACrB,SAEF,IAAK,UACHktD,GAAOvyE,KAAKkpE,SAASuE,QACnBztE,KAAKm2E,YAAY1J,EAAMC,QACvBD,EAAM5nE,MACNylE,GAAStqE,KAAKm2E,YAAY1J,EAAMC,OAAQ1sE,KAAK01E,eAC7C11E,KAAK80E,SACP,SAEF,IAAK,OACHvC,GAAOvyE,KAAKkpE,SAASz0C,KAAKg4C,EAAM/0C,KAC9B+0C,EAAMa,KACNb,EAAMX,SACR,SAEF,IAAK,QAMH,IALA4D,EAAS,GAGTmG,EAAO,GACPF,EAAKlJ,EAAMiD,OAAOvxE,OACb6hE,EAAI,EAAGA,EAAI2V,EAAI3V,IAClB6V,GAAQ71E,KAAKkpE,SAASkN,UACpBp2E,KAAKm2E,YAAY1J,EAAMiD,OAAO1P,GAAG0M,QACjC,CAAEgD,QAAQ,EAAMC,MAAOlD,EAAMkD,MAAM3P,KAOvC,IAJA0P,GAAU1vE,KAAKkpE,SAASmN,SAASR,GAEjCz2D,EAAO,GACPu2D,EAAKlJ,EAAMmD,KAAKzxE,OACX6hE,EAAI,EAAGA,EAAI2V,EAAI3V,IAAK,CAKvB,IAFA6V,EAAO,GACPD,GAHA/F,EAAMpD,EAAMmD,KAAK5P,IAGR7hE,OACJwf,EAAI,EAAGA,EAAIi4D,EAAIj4D,IAClBk4D,GAAQ71E,KAAKkpE,SAASkN,UACpBp2E,KAAKm2E,YAAYtG,EAAIlyD,GAAG+uD,QACxB,CAAEgD,QAAQ,EAAOC,MAAOlD,EAAMkD,MAAMhyD,KAIxCyB,GAAQpf,KAAKkpE,SAASmN,SAASR,EACjC,CACAtD,GAAOvyE,KAAKkpE,SAASuG,MAAMC,EAAQtwD,GACnC,SAEF,IAAK,aACHA,EAAOpf,KAAKs2E,MAAM7J,EAAMC,QACxB6F,GAAOvyE,KAAKkpE,SAASyE,WAAWvuD,GAChC,SAEF,IAAK,OAOH,IANAsvD,EAAUjC,EAAMiC,QAChB1kE,EAAQyiE,EAAMziE,MACd2kE,EAAQlC,EAAMkC,MACdgH,EAAKlJ,EAAMmC,MAAMzwE,OAEjBihB,EAAO,GACF4gD,EAAI,EAAGA,EAAI2V,EAAI3V,IAElB/gD,GADAsuC,EAAOkf,EAAMmC,MAAM5O,IACJ/gD,QACfkwD,EAAO5hB,EAAK4hB,KAEZ2G,EAAW,GACPvoB,EAAK4hB,OACP4G,EAAW/1E,KAAKkpE,SAAS6M,SAAS92D,GAC9B0vD,EACEphB,EAAKmf,OAAOvuE,OAAS,GAA6B,cAAxBovD,EAAKmf,OAAO,GAAGj8D,MAC3C88C,EAAKmf,OAAO,GAAGh1C,KAAOq+C,EAAW,IAAMxoB,EAAKmf,OAAO,GAAGh1C,KAClD61B,EAAKmf,OAAO,GAAGA,QAAUnf,EAAKmf,OAAO,GAAGA,OAAOvuE,OAAS,GAAuC,SAAlCovD,EAAKmf,OAAO,GAAGA,OAAO,GAAGj8D,OACxF88C,EAAKmf,OAAO,GAAGA,OAAO,GAAGh1C,KAAOq+C,EAAW,IAAMxoB,EAAKmf,OAAO,GAAGA,OAAO,GAAGh1C,OAG5E61B,EAAKmf,OAAOntC,QAAQ,CAClB9uB,KAAM,OACNinB,KAAMq+C,IAIVD,GAAYC,GAIhBD,GAAY91E,KAAKs2E,MAAM/oB,EAAKmf,OAAQiC,GACpCvvD,GAAQpf,KAAKkpE,SAASqN,SAAST,EAAU3G,EAAMlwD,GAGjDszD,GAAOvyE,KAAKkpE,SAAS2E,KAAKzuD,EAAMsvD,EAAS1kE,GACzC,SAEF,IAAK,OACHuoE,GAAOvyE,KAAKkpE,SAASiB,KAAKsC,EAAM/0C,KAAM+0C,EAAMK,OAC5C,SAEF,IAAK,YACHyF,GAAOvyE,KAAKkpE,SAAS6G,UAAU/vE,KAAKm2E,YAAY1J,EAAMC,SACtD,SAEF,IAAK,OAEH,IADAttD,EAAOqtD,EAAMC,OAAS1sE,KAAKm2E,YAAY1J,EAAMC,QAAUD,EAAM/0C,KACtDz5B,EAAI,EAAIwf,GAA4B,SAAvBivD,EAAOzuE,EAAI,GAAGwS,MAEhC2O,GAAQ,OADRqtD,EAAQC,IAASzuE,IACKyuE,OAAS1sE,KAAKm2E,YAAY1J,EAAMC,QAAUD,EAAM/0C,MAExE66C,GAAO/2C,EAAMx7B,KAAKkpE,SAAS6G,UAAU3wD,GAAQA,EAC7C,SAGF,QACE,IAAM+0D,EAAS,eAAiB1H,EAAMh8D,KAAO,wBAC7C,GAAIzQ,KAAKoT,QAAQi2D,OAEf,YADA33B,QAAQC,MAAMwiC,GAGd,MAAM,IAAIv8D,MAAMu8D,QAhIlB5B,GAAOyD,GAAO,GAsIpB,OAAOzD,CACT,GAEA,CAAAxzE,IAAA,cAAA2D,MAGA,SAAYgqE,EAAQxD,GAClBA,EAAWA,GAAYlpE,KAAKkpE,SAC5B,IACEjrE,EACAwuE,EACAuJ,EAHEzD,EAAM,GAKJ90D,EAAIivD,EAAOvuE,OACjB,IAAKF,EAAI,EAAGA,EAAIwf,EAAGxf,IAIjB,GAHAwuE,EAAQC,EAAOzuE,KAGX+B,KAAKoT,QAAQq1D,YAAczoE,KAAKoT,QAAQq1D,WAAWwN,WAAaj2E,KAAKoT,QAAQq1D,WAAWwN,UAAUxJ,EAAMh8D,SAE9F,KADZulE,EAAMh2E,KAAKoT,QAAQq1D,WAAWwN,UAAUxJ,EAAMh8D,MAAMzR,KAAK,CAAEk3E,OAAQl2E,MAAQysE,KACrD,CAAC,SAAU,OAAQ,OAAQ,QAAS,SAAU,KAAM,WAAY,KAAM,MAAO,QAAQ3tE,SAAS2tE,EAAMh8D,MAM5H,OAAQg8D,EAAMh8D,MACZ,IAAK,SAoCL,IAAK,OACH8hE,GAAOrJ,EAASxxC,KAAK+0C,EAAM/0C,MAC3B,MAlCF,IAAK,OACH66C,GAAOrJ,EAASiB,KAAKsC,EAAM/0C,MAC3B,MAEF,IAAK,OACH66C,GAAOrJ,EAASzjD,KAAKgnD,EAAMxyC,KAAMwyC,EAAMF,MAAOvsE,KAAKm2E,YAAY1J,EAAMC,OAAQxD,IAC7E,MAEF,IAAK,QACHqJ,GAAOrJ,EAASza,MAAMge,EAAMxyC,KAAMwyC,EAAMF,MAAOE,EAAM/0C,MACrD,MAEF,IAAK,SACH66C,GAAOrJ,EAAS6J,OAAO/yE,KAAKm2E,YAAY1J,EAAMC,OAAQxD,IACtD,MAEF,IAAK,KACHqJ,GAAOrJ,EAASiK,GAAGnzE,KAAKm2E,YAAY1J,EAAMC,OAAQxD,IAClD,MAEF,IAAK,WACHqJ,GAAOrJ,EAASqL,SAAS9H,EAAM/0C,MAC/B,MAEF,IAAK,KACH66C,GAAOrJ,EAAShkD,KAChB,MAEF,IAAK,MACHqtD,GAAOrJ,EAASwI,IAAI1xE,KAAKm2E,YAAY1J,EAAMC,OAAQxD,IACnD,MAMF,QACE,IAAMiL,EAAS,eAAiB1H,EAAMh8D,KAAO,wBAC7C,GAAIzQ,KAAKoT,QAAQi2D,OAEf,YADA33B,QAAQC,MAAMwiC,GAGd,MAAM,IAAIv8D,MAAMu8D,QApDlB5B,GAAOyD,GAAO,GAyDpB,OAAOzD,CACT,IAAC,EAAAxzE,IAAA,QAAA2D,MAnQD,SAAagqE,EAAQt5D,GAEnB,OADe,IAAIqiE,EAAOriE,GACZkjE,MAAM5J,EACtB,GAEA,CAAA3tE,IAAA,cAAA2D,MAGA,SAAmBgqE,EAAQt5D,GAEzB,OADe,IAAIqiE,EAAOriE,GACZ+iE,YAAYzJ,EAC5B,KAAC+I,CAAA,CAxBS,GAmRNe,GAAK,WACT,SAAAA,EAAYpjE,GAASyvC,EAAA,KAAA2zB,GACnBx2E,KAAKoT,QAAUA,GAAWs2D,CAC5B,CAmBC,OAnBA3mB,EAAAyzB,EAAA,EAAAz3E,IAAA,aAAA2D,MAUD,SAAW+zE,GACT,OAAOA,CACT,GAEA,CAAA13E,IAAA,cAAA2D,MAGA,SAAYynE,GACV,OAAOA,CACT,KAACqM,CAAA,CAtBQ,GAsBRlvB,EAtBGkvB,GAAK,mBAKiB,IAAIp1E,IAAI,CAChC,aACA,iBACA,IAAAs1E,GAAA,IAAAx/B,QAAAy/B,GAAA,IAAAz/B,QAiBE0/B,GAAM,WAiBV,SAAAA,IAAqB/zB,EAAA,KAAA+zB,GAAA3O,EAAA,KAAA0O,IAAA1O,EAAA,KAAAyO,IAAApvB,EAAA,gBAv9Ed,CACL4d,OAAO,EACPqD,QAAS,KACTC,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,WAAW,EACXC,aAAc,GACdC,UAAW,KACXC,MAAO,KACPC,WAAY,YACZC,QAAQ,EACRC,UAAU,EACVC,SAAU,KACVC,UAAU,EACVC,UAAW,KACXC,QAAQ,EACRC,aAAa,EACbC,UAAW,KACXC,WAAY,KACZC,OAAO,IAm7EeniB,EAAA,eACdtnD,KAAK62E,YAAUvvB,EAAA,aAAA8gB,EAEjBpoE,KAAI02E,GAAAI,IAAA93E,KAAJgB,KAAoBqzE,GAAMsB,IAAKc,GAAOa,QAAKhvB,EAAA,mBAAA8gB,EACrCpoE,KAAI02E,GAAAI,IAAA93E,KAAJgB,KAAoBqzE,GAAM0D,UAAWtB,GAAOU,cAAW7uB,EAAA,cAE5DmuB,IAAMnuB,EAAA,cACNmuB,GAAOa,OAAKhvB,EAAA,gBACVstB,IAAQttB,EAAA,oBACJ2tB,IAAY3tB,EAAA,aACnB+rB,IAAK/rB,EAAA,aACL+rB,GAAMsB,KAAGrtB,EAAA,iBACLslB,IAAStlB,EAAA,eACX4tB,IAAO5tB,EAAA,aACTkvB,IAGNx2E,KAAKg3E,IAAGt4E,MAARsB,KAAI9B,UACN,CAsLC,OAtLA6kD,EAAA6zB,EAAA,EAAA73E,IAAA,aAAA2D,MAED,SAAWgqE,EAAQnlC,GAAU,IAEDogC,EAFCxX,EAAA,KACvB3uD,EAAS,GAAGomE,EAAAnB,EACIiG,GAAM,QAAAuK,EAAA,WAAE,IAAjBxK,EAAK9E,EAAAjlE,MAEd,OADAlB,EAASA,EAAO87B,OAAOiK,EAASvoC,KAAKmxD,EAAMsc,IACnCA,EAAMh8D,MACZ,IAAK,QAAS,IACmB22D,EADnBC,EAAAZ,EACOgG,EAAMiD,QAAM,IAA/B,IAAArI,EAAAnI,MAAAkI,EAAAC,EAAAl9D,KAAAygC,MAAiC,KAAtBirC,EAAIzO,EAAA1kE,MACblB,EAASA,EAAO87B,OAAO6yB,EAAKqZ,WAAWqM,EAAKnJ,OAAQnlC,GACtD,CAAC,OAAA5vB,GAAA0vD,EAAA96D,EAAAoL,EAAA,SAAA0vD,EAAAjtD,GAAA,KAC2BmtD,EAD3BC,EAAAf,EACiBgG,EAAMmD,MAAI,IAA5B,IAAApI,EAAAtI,MAAAqI,EAAAC,EAAAr9D,KAAAygC,MAA8B,KACN68B,EADVC,EAAAjB,EAAAc,EAAA7kE,OACU,IAAtB,IAAAglE,EAAAxI,MAAAuI,EAAAC,EAAAv9D,KAAAygC,MAAwB,KAAbirC,EAAIpO,EAAA/kE,MACblB,EAASA,EAAO87B,OAAO6yB,EAAKqZ,WAAWqM,EAAKnJ,OAAQnlC,GACtD,CAAC,OAAA5vB,GAAA+vD,EAAAn7D,EAAAoL,EAAA,SAAA+vD,EAAAttD,GAAA,CACH,CAAC,OAAAzC,GAAA6vD,EAAAj7D,EAAAoL,EAAA,SAAA6vD,EAAAptD,GAAA,CACD,MAEF,IAAK,OACH5Y,EAASA,EAAO87B,OAAO6yB,EAAKqZ,WAAWiD,EAAMmC,MAAOrnC,IACpD,MAEF,QACM4oB,EAAKuZ,SAASjB,YAActY,EAAKuZ,SAASjB,WAAWyO,aAAe/mB,EAAKuZ,SAASjB,WAAWyO,YAAYzK,EAAMh8D,MACjH0/C,EAAKuZ,SAASjB,WAAWyO,YAAYzK,EAAMh8D,MAAMW,SAAQ,SAAC8lE,GACxD11E,EAASA,EAAO87B,OAAO6yB,EAAKqZ,WAAWiD,EAAMyK,GAAc3vC,GAC7D,IACSklC,EAAMC,SACflrE,EAASA,EAAO87B,OAAO6yB,EAAKqZ,WAAWiD,EAAMC,OAAQnlC,KAI7D,EA5BA,IAAAqgC,EAAA1I,MAAAyI,EAAAC,EAAAz9D,KAAAygC,MAAAqsC,GA4BC,OAAAt/D,GAAAiwD,EAAAr7D,EAAAoL,EAAA,SAAAiwD,EAAAxtD,GAAA,CACD,OAAO5Y,CACT,GAAC,CAAAzC,IAAA,MAAA2D,MAED,WACoF,IADvE,IAAAmuD,EAAA,KACL4X,EAAazoE,KAAK0pE,SAASjB,YAAc,CAAEwN,UAAW,CAAC,EAAGiB,YAAa,CAAC,GAAI9yB,EAAAlmD,UAAAC,OAD7E8V,EAAI,IAAA1V,MAAA6lD,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJpwC,EAAIowC,GAAAnmD,UAAAmmD,GA4IT,OAzIApwC,EAAK7C,SAAQ,SAAC+lE,GAEZ,IAAMC,EAAI/vB,EAAA,GAAQ8vB,GA2DlB,GAxDAC,EAAKlS,MAAQrU,EAAK6Y,SAASxE,OAASkS,EAAKlS,QAAS,EAG9CiS,EAAK1O,aACP0O,EAAK1O,WAAWr3D,SAAQ,SAACimE,GACvB,IAAKA,EAAI5pE,KACP,MAAM,IAAImK,MAAM,2BAElB,GAAIy/D,EAAInO,SAAU,CAChB,IAAMoO,EAAe7O,EAAWwN,UAAUoB,EAAI5pE,MAG5Cg7D,EAAWwN,UAAUoB,EAAI5pE,MAFvB6pE,EAE+B,WAAkB,QAAAC,EAAAr5E,UAAAC,OAAN8V,EAAI,IAAA1V,MAAAg5E,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJvjE,EAAIujE,GAAAt5E,UAAAs5E,GAC/C,IAAIxB,EAAMqB,EAAInO,SAASxqE,MAAMsB,KAAMiU,GAInC,OAHY,IAAR+hE,IACFA,EAAMsB,EAAa54E,MAAMsB,KAAMiU,IAE1B+hE,CACT,EAEiCqB,EAAInO,QAEzC,CACA,GAAImO,EAAI9N,UAAW,CACjB,IAAK8N,EAAIjH,OAAwB,UAAdiH,EAAIjH,OAAmC,WAAdiH,EAAIjH,MAC9C,MAAM,IAAIx4D,MAAM,+CAEd6wD,EAAW4O,EAAIjH,OACjB3H,EAAW4O,EAAIjH,OAAO7wC,QAAQ83C,EAAI9N,WAElCd,EAAW4O,EAAIjH,OAAS,CAACiH,EAAI9N,WAE3B8N,EAAIrtE,QACY,UAAdqtE,EAAIjH,MACF3H,EAAWqL,WACbrL,EAAWqL,WAAWx1E,KAAK+4E,EAAIrtE,OAE/By+D,EAAWqL,WAAa,CAACuD,EAAIrtE,OAER,WAAdqtE,EAAIjH,QACT3H,EAAW+L,YACb/L,EAAW+L,YAAYl2E,KAAK+4E,EAAIrtE,OAEhCy+D,EAAW+L,YAAc,CAAC6C,EAAIrtE,QAItC,CACIqtE,EAAIH,cACNzO,EAAWyO,YAAYG,EAAI5pE,MAAQ4pE,EAAIH,YAE3C,IACAE,EAAK3O,WAAaA,GAIhB0O,EAAKjO,SAAU,CACjB,IAAMA,EAAWrY,EAAK6Y,SAASR,UAAY,IAAI0L,GAAS/jB,EAAK6Y,UAAU+N,EAAA,SAAA9iB,GAErE,IAAM2iB,EAAepO,EAASvU,GAE9BuU,EAASvU,GAAQ,WAAa,QAAA+iB,EAAAx5E,UAAAC,OAAT8V,EAAI,IAAA1V,MAAAm5E,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ1jE,EAAI0jE,GAAAz5E,UAAAy5E,GACvB,IAAI3B,EAAMmB,EAAKjO,SAASvU,GAAMj2D,MAAMwqE,EAAUj1D,GAI9C,OAHY,IAAR+hE,IACFA,EAAMsB,EAAa54E,MAAMwqE,EAAUj1D,IAE9B+hE,CACT,CACF,EAVA,IAAK,IAAMrhB,KAAQwiB,EAAKjO,SAAQuO,EAAA9iB,GAWhCyiB,EAAKlO,SAAWA,CAClB,CACA,GAAIiO,EAAK5N,UAAW,CAClB,IAAMA,EAAY1Y,EAAK6Y,SAASH,WAAa,IAAIqD,GAAU/b,EAAK6Y,UAAUkO,EAAA,SAAAC,GAExE,IAAMC,EAAgBvO,EAAU5U,GAEhC4U,EAAU5U,GAAQ,WAAa,QAAAojB,EAAA75E,UAAAC,OAAT8V,EAAI,IAAA1V,MAAAw5E,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ/jE,EAAI+jE,GAAA95E,UAAA85E,GACxB,IAAIhC,EAAMmB,EAAK5N,UAAU5U,GAAMj2D,MAAM6qE,EAAWt1D,GAIhD,OAHY,IAAR+hE,IACFA,EAAM8B,EAAcp5E,MAAM6qE,EAAWt1D,IAEhC+hE,CACT,CACF,EAVA,IAAK,IAAMrhB,KAAQwiB,EAAK5N,UAASqO,EAAAC,GAWjCT,EAAK7N,UAAYA,CACnB,CAGA,GAAI4N,EAAKrO,MAAO,CACd,IAAMA,EAAQjY,EAAK6Y,SAASZ,OAAS,IAAI0N,GAAQyB,EAAA,SAAAC,GAE/C,IAAMC,EAAWrP,EAAMnU,GACnB6hB,GAAM4B,iBAAiB/3E,IAAIs0D,GAC7BmU,EAAMnU,GAAQ,SAACv2D,GACb,GAAIyyD,EAAK6Y,SAASxE,MAChB,OAAO/jE,QAAQ8O,QAAQknE,EAAKrO,MAAMnU,GAAM31D,KAAK8pE,EAAO1qE,IAAMkiC,MAAK,SAAA01C,GAC7D,OAAOmC,EAASn5E,KAAK8pE,EAAOkN,EAC9B,IAGF,IAAMA,EAAMmB,EAAKrO,MAAMnU,GAAM31D,KAAK8pE,EAAO1qE,GACzC,OAAO+5E,EAASn5E,KAAK8pE,EAAOkN,EAC9B,EAEAlN,EAAMnU,GAAQ,WAAa,QAAA0jB,EAAAn6E,UAAAC,OAAT8V,EAAI,IAAA1V,MAAA85E,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJrkE,EAAIqkE,GAAAp6E,UAAAo6E,GACpB,IAAItC,EAAMmB,EAAKrO,MAAMnU,GAAMj2D,MAAMoqE,EAAO70D,GAIxC,OAHY,IAAR+hE,IACFA,EAAMmC,EAASz5E,MAAMoqE,EAAO70D,IAEvB+hE,CACT,CAEJ,EAtBA,IAAK,IAAMrhB,KAAQwiB,EAAKrO,MAAKmP,EAAAC,GAuB7Bd,EAAKtO,MAAQA,CACf,CAGA,GAAIqO,EAAK3N,WAAY,CACnB,IAAMA,EAAa3Y,EAAK6Y,SAASF,WACjC4N,EAAK5N,WAAa,SAASiD,GACzB,IAAIjrE,EAAS,GAKb,OAJAA,EAAOlD,KAAK64E,EAAK3N,WAAWxqE,KAAKgB,KAAMysE,IACnCjD,IACFhoE,EAASA,EAAO87B,OAAOksC,EAAWxqE,KAAKgB,KAAMysE,KAExCjrE,CACT,CACF,CAEAqvD,EAAK6Y,SAAQriB,EAAAA,EAAA,GAAQwJ,EAAK6Y,UAAa0N,EACzC,IAEOp3E,IACT,GAAC,CAAAjB,IAAA,aAAA2D,MAED,SAAWgoE,GAET,OADA1qE,KAAK0pE,SAAQriB,EAAAA,EAAA,GAAQrnD,KAAK0pE,UAAagB,GAChC1qE,IACT,KAAC42E,CAAA,CAzMS,GAyMT,SAAAE,GAEcxK,EAAO4J,GAAQ,IAAAtkB,EAAA,KAC5B,OAAO,SAACtY,EAAKoxB,EAAKnjC,GACG,oBAARmjC,IACTnjC,EAAWmjC,EACXA,EAAM,MAGR,IAAM6N,EAAOlxB,EAAA,GAAQqjB,GACrBA,EAAGrjB,EAAAA,EAAA,GAAQuK,EAAK8X,UAAa6O,GAC7B,IAAMC,EAAUpQ,EAAGxW,EAAI+kB,GAAA8B,IAAAz5E,KAAJ4yD,EAAc8Y,EAAIrB,OAAQqB,EAAIxF,MAAO39B,GAGxD,GAAmB,qBAAR+R,GAA+B,OAARA,EAChC,OAAOk/B,EAAW,IAAI5gE,MAAM,mDAE9B,GAAmB,kBAAR0hC,EACT,OAAOk/B,EAAW,IAAI5gE,MAAM,wCACxBhZ,OAAOC,UAAUF,SAASK,KAAKs6C,GAAO,sBAS5C,GAn6EN,SAA2BoxB,EAAKnjC,GACzBmjC,IAAOA,EAAIrB,SAIZ9hC,GACFmK,QAAQ8iB,KAAK,sKAGXkW,EAAIvB,UAAYuB,EAAItB,YACtB13B,QAAQ8iB,KAAK,4MAGXkW,EAAI7B,WAAgC,cAAnB6B,EAAI3B,aACvBr3B,QAAQ8iB,KAAK,uMAGXkW,EAAI1B,QACNt3B,QAAQ8iB,KAAK,oPAGXkW,EAAInC,SACN72B,QAAQ8iB,KAAK,mLAGXkW,EAAIpB,aACN53B,QAAQ8iB,KAAK,0LAGXkW,EAAIjB,OACN/3B,QAAQ8iB,KAAK,+KAGXkW,EAAI/B,WAAa+B,EAAI9B,eACvBl3B,QAAQ8iB,KAAK,mRAEjB,CAy3EMkkB,CAAkBhO,EAAKnjC,GAEnBmjC,EAAI5B,QACN4B,EAAI5B,MAAM11D,QAAUs3D,GAGlBnjC,EAAU,CACZ,IACImlC,EADE7D,EAAY6B,EAAI7B,UAGtB,IACM6B,EAAI5B,QACNxvB,EAAMoxB,EAAI5B,MAAM6P,WAAWr/B,IAE7BozB,EAASJ,EAAMhzB,EAAKoxB,EACtB,CAAE,MAAOn+D,GACP,OAAOisE,EAAWjsE,EACpB,CAEA,IAAMq+B,EAAO,SAACjzB,GACZ,IAAI46D,EAEJ,IAAK56D,EACH,IACM+yD,EAAIlB,YACN5X,EAAK4X,WAAWkD,EAAQhC,EAAIlB,YAE9B+I,EAAM2D,EAAOxJ,EAAQhC,GACjBA,EAAI5B,QACNyJ,EAAM7H,EAAI5B,MAAM8P,YAAYrG,GAEhC,CAAE,MAAOhmE,GACPoL,EAAMpL,CACR,CAKF,OAFAm+D,EAAI7B,UAAYA,EAETlxD,EACH6gE,EAAW7gE,GACX4vB,EAAS,KAAMgrC,EACrB,EAEA,IAAK1J,GAAaA,EAAU1qE,OAAS,EACnC,OAAOysC,IAKT,UAFO8/B,EAAI7B,WAEN6D,EAAOvuE,OAAQ,OAAOysC,IAE3B,IAAI5D,EAAU,EA2Bd,OA1BA4qB,EAAK4X,WAAWkD,GAAQ,SAACD,GACJ,SAAfA,EAAMh8D,OACRu2B,IACAzyB,YAAW,WACTs0D,EAAU4D,EAAM/0C,KAAM+0C,EAAMa,MAAM,SAAC31D,EAAK8c,GACtC,GAAI9c,EACF,OAAOizB,EAAKjzB,GAEF,MAAR8c,GAAgBA,IAASg4C,EAAM/0C,OACjC+0C,EAAM/0C,KAAOjD,EACbg4C,EAAMX,SAAU,GAIF,MADhB9kC,GAEE4D,GAEJ,GACF,GAAG,GAEP,SAEgB,IAAZ5D,GACF4D,IAIJ,CAEA,GAAI8/B,EAAIxF,MACN,OAAO/jE,QAAQ8O,QAAQy6D,EAAI5B,MAAQ4B,EAAI5B,MAAM6P,WAAWr/B,GAAOA,GAC5DhZ,MAAK,SAAAgZ,GAAG,OAAIgzB,EAAMhzB,EAAKoxB,EAAI,IAC3BpqC,MAAK,SAAAosC,GAAM,OAAIhC,EAAIlB,WAAaroE,QAAQq9D,IAAI5M,EAAK4X,WAAWkD,EAAQhC,EAAIlB,aAAalpC,MAAK,kBAAMosC,CAAM,IAAIA,CAAM,IAChHpsC,MAAK,SAAAosC,GAAM,OAAIwJ,EAAOxJ,EAAQhC,EAAI,IAClCpqC,MAAK,SAAA6pC,GAAI,OAAIO,EAAI5B,MAAQ4B,EAAI5B,MAAM8P,YAAYzO,GAAQA,CAAI,IAC3D5pC,MAAMi4C,GAGX,IACM9N,EAAI5B,QACNxvB,EAAMoxB,EAAI5B,MAAM6P,WAAWr/B,IAE7B,IAAMozB,EAASJ,EAAMhzB,EAAKoxB,GACtBA,EAAIlB,YACN5X,EAAK4X,WAAWkD,EAAQhC,EAAIlB,YAE9B,IAAIW,EAAO+L,EAAOxJ,EAAQhC,GAI1B,OAHIA,EAAI5B,QACNqB,EAAOO,EAAI5B,MAAM8P,YAAYzO,IAExBA,CACT,CAAE,MAAO59D,GACP,OAAOisE,EAAWjsE,EACpB,CACF,CACF,CAAC,SAAAksE,GAEQpP,EAAQnE,EAAO39B,GACtB,OAAO,SAACh7B,GAGN,GAFAA,EAAEmB,SAAW,8DAET27D,EAAQ,CACV,IAAMwP,EAAM,iCACRnhB,EAAOnrD,EAAEmB,QAAU,IAAI,GACvB,SACJ,OAAIw3D,EACK/jE,QAAQ8O,QAAQ4oE,GAErBtxC,OACFA,EAAS,KAAMsxC,GAGVA,CACT,CAEA,GAAI3T,EACF,OAAO/jE,QAAQg/D,OAAO5zD,GAExB,IAAIg7B,EAIJ,MAAMh7B,EAHJg7B,EAASh7B,EAIb,CACF,CAGF,IAAMusE,GAAiB,IAAIlC,GAAOlN,GAKlC,SAASqP,GAAOz/B,EAAKoxB,EAAKnjC,GACxB,OAAOuxC,GAAexC,MAAMh9B,EAAKoxB,EAAKnjC,EACxC,CAMAwxC,GAAO3lE,QACP2lE,GAAOlC,WAAa,SAASnM,GAI3B,OAHAoO,GAAejC,WAAWnM,GAC1BqO,GAAOrP,SAAWoP,GAAepP,SACjCC,EAAeoP,GAAOrP,UACfqP,EACT,EAEAA,GAAOzQ,YAAcA,EAErByQ,GAAOrP,SAAWA,EAMlBqP,GAAO/B,IAAM,WAIX,OAHA8B,GAAe9B,IAAGt4E,MAAlBo6E,GAAc56E,WACd66E,GAAOrP,SAAWoP,GAAepP,SACjCC,EAAeoP,GAAOrP,UACfqP,EACT,EAMAA,GAAOvP,WAAa,SAASkD,EAAQnlC,GACnC,OAAOuxC,GAAetP,WAAWkD,EAAQnlC,EAC3C,EAMAwxC,GAAO5C,YAAc2C,GAAe3C,YAKpC4C,GAAOtD,OAASA,GAChBsD,GAAO7C,OAAST,GAAOa,MACvByC,GAAOnE,SAAWA,GAClBmE,GAAO9D,aAAeA,GACtB8D,GAAO1F,MAAQA,GACf0F,GAAOzM,MAAQ+G,GAAMsB,IACrBoE,GAAOnM,UAAYA,GACnBmM,GAAO7D,QAAUA,GACjB6D,GAAOvC,MAAQA,GACfuC,GAAOzC,MAAQyC,GAECA,GAAO3lE,QACJ2lE,GAAOlC,WACdkC,GAAO/B,IACA+B,GAAOvP,WACNuP,GAAO5C,YAEZV,GAAOa,MACRjD,GAAMsB,IAPpB,iLCx3FA,SAAAqE,KACI,MAAM,IAAIphE,MADC1Z,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAkB,yBACb,CAGb,SAAA+6E,GAAgBC,GACnB,IAAIA,EACJ,OAAOF,GAF2B96E,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAkB,mBAEvC,CAGV,SAAAi7E,GAAqBC,GACxB,OAAOJ,GAAM,mBAajB,IAAM34E,GAAMzB,OAAOC,UAAUf,eAEtB,SAAAu7E,GAAmBC,EAAUC,GAChC,IAAIxU,EAAWnK,EACf,GAAI0e,IAAQC,EAAK,OAAO,EAGxB,GAAID,GAAOC,IAAQxU,EAAOuU,EAAInrE,eAAiBorE,EAAIprE,YAAa,CAC5D,GAAI42D,IAAS7uD,KAAM,OAAOojE,EAAIE,YAAcD,EAAIC,UAChD,GAAIzU,IAASt8D,OAAQ,OAAO6wE,EAAI36E,aAAe46E,EAAI56E,WAEnD,GAAIomE,IAASxmE,MAAO,CAChB,IAAKq8D,EAAM0e,EAAIn7E,UAAYo7E,EAAIp7E,OAC3B,KAAOy8D,KAASye,GAAUC,EAAI1e,GAAM2e,EAAI3e,MAE5C,OAAgB,IAATA,CAAQ,CAInB,IAAKmK,GAAuB,kBAARuU,EAAkB,CAGlC,IAAKvU,KAFLnK,EAAM,EAEO0e,EAAK,CACd,GAAIj5E,GAAIrB,KAAKs6E,EAAKvU,MAAWnK,IAAQv6D,GAAIrB,KAAKu6E,EAAKxU,GAAO,OAAO,EACjE,KAAMA,KAAQwU,KAASF,GAAUC,EAAIvU,GAAOwU,EAAIxU,IAAQ,OAAO,EAEnE,OAAOnmE,OAAOqG,KAAKs0E,GAAKp7E,SAAWy8D,CAAA,EAI3C,OAAO0e,IAAQA,GAAOC,IAAQA,CAAA,CCpDlC,IAAAE,GAAA,SAAAC,GAAAn2B,EAAAk2B,EAAAC,GAAA,IAAAvtB,EAAAZ,EAAAkuB,GAAA,SAAAA,IALA,IAAAn1B,EA4BuB,OA5BvBzB,EAAA,KAAA42B,IAKAn1B,EAAA6H,EAAAztD,MAAA,KAAAR,YACYy7E,WAAmB/b,EAAAA,YAYnBtZ,EAAAs1B,aAAe,SAAC5hD,GACpB,GAAgC,OAA5BssB,EAAKq1B,WAAW9wD,UAAqBy7B,EAAKq1B,WAAW9wD,QAAQ+Q,SAAS5B,EAAM7R,QAAwB,CAEpG,IADA,IAAI5N,EAAOyf,EAAM7R,OACD,OAAT5N,GAAe,CAClB,GAAIA,EAAKshE,UAAUjgD,SAAS,wBACxB,OAGJrhB,EAAOA,EAAKuhE,aAAA,CAEhBx1B,EAAKp4C,MAAM6tE,gBAAA,GAAAz1B,CAAA,CAQK,OARLvB,EAAA02B,EAAA,EAAA16E,IAAA,oBAAA2D,MApBZ,WACHkX,SAAS2N,iBAAiB,YAAavnB,KAAK45E,cAAc,GAC1DhgE,SAAS2N,iBAAiB,cAAevnB,KAAK45E,cAAc,MAAA76E,IAAA,uBAAA2D,MAGzD,WACHkX,SAAS4N,oBAAoB,YAAaxnB,KAAK45E,cAC/ChgE,SAAS4N,oBAAoB,cAAexnB,KAAK45E,aAAA,IAAA76E,IAAA,SAAA2D,MAiB9C,WACH,IAAAouD,EAAoC9wD,KAAKkM,MAAd4xD,GAAnBhN,EAAAipB,eAAmBn3B,EAAAkO,EAAAkpB,KAC3B,OACIpc,EAAAA,cAAC,MAAAvW,EAAAA,EAAA,GAAQyW,GAAA,IAAM9zB,IAAKhqC,KAAK25E,aACpB35E,KAAKkM,MAAMsU,SAAA,KAAAi5D,CAAA,CA/B5B,CAAyD7b,EAAAA,eCAlD,SAAAqc,GAAsBC,GAL7B,IAAAC,EAAAC,EAMI,MAAO,CACH,qBAAsBF,EAAMG,YAC5B,kBAAmBH,EAAMI,SACzB,qBAAsBJ,EAAMK,YAC5B,kBAAmBL,EAAMM,SACzB,oBAAqBN,EAAMO,WAC3B,mBAAoBP,EAAMQ,UAC1B,oBAAqBR,EAAMS,WAC3B,uBAAwBT,EAAMU,aAC9B,uBAAwBV,EAAMW,aAC9B,oBAAqBX,EAAMY,WAC3B,0BAA2B,OAAAX,EAAAD,EAAMa,iBAANZ,EAAyBD,EAAMY,WAC1D,6BAA8BZ,EAAMc,mBACpC,gBAAiBd,EAAMe,OACvB,uBAAwBf,EAAMgB,aAC9B,kBAAmBhB,EAAMiB,SACzB,4BAA6BjB,EAAMkB,iBACnC,0BAA2BlB,EAAMmB,gBACjC,kBAAmBnB,EAAMoB,SACzB,2BAA4BpB,EAAMqB,iBAClC,yBAA0BrB,EAAMsB,eAChC,qBAAsBtB,EAAMuB,YAC5B,gCAAiC,OAAArB,EAAAF,EAAMwB,uBAANtB,EAA+BF,EAAMuB,YACtE,yBAA0BvB,EAAMyB,gBAChC,mBAAoBzB,EAAM0B,UAC1B,gCAAiC,GAAjCt+C,OAAoC48C,EAAM2B,sBAAA,MAC1C,8BAA+B,GAA/Bv+C,OAAkC48C,EAAM4B,oBAAA,MACxC,0BAA2B5B,EAAM6B,gBACjC,wBAAyB7B,EAAM8B,cAC/B,oBAAqB9B,EAAM+B,WAC3B,yBAA0B/B,EAAMgC,eAAA,CAyCxC,IAAMC,GAA6B,CAC/B9B,YAAa,UACbC,SAAU,UACVC,YAAa,0BAEbC,SAAU,UACVC,WAAY,UACZC,UAAW,UACXC,WAAY,UAEZC,aAAc,UACdC,aAAc,UACdC,WAAY,UACZC,gBAAiB,YACjBC,mBAAoB,UAEpBC,OAAQ,UACRC,aAAc,UACdC,SAAU,UACVC,iBAAkB,UAClBC,gBAAiB,UAEjBC,SAAU,UACVC,iBAAkB,UAElBC,eAAgB,UAEhBC,YAAa,4BACbE,gBAAiB,mBAEjBC,UAAW,UAEXC,sBAAuB,EACvBC,oBAAqB,EAErBM,eAAgB,GAEhBL,gBAAiB,WACjBC,cAAe,OACfC,WACI,8IACJC,eAAgB,OAChB34D,WAAY,KAIT,SAAA84D,KACH,OAAOF,EAAA,CAIJ,IAAMG,GAAeC,EAAAA,cAA2BJ,IC7DhD,IA2HKK,GAAAC,GAgBAC,GAAAC,GA3ICC,GAAe,KAEfC,QAAuB,EAiCvBC,GAAa,SAUbC,GAAkB,eAUlBC,GAAkB,iBAoEnBP,GAAAD,KAAAA,GAAA,KACR,IAAM,MACNC,GAAA,KAAO,OACPA,GAAA,MAAQ,QACRA,GAAA,MAAQ,SACRA,GAAA,OAAS,SACTA,GAAA,OAAS,SACTA,GAAA,QAAU,UACVA,GAAA,QAAU,UACVA,GAAA,SAAW,WACXA,GAAA,UAAY,YACZA,GAAA,UAAY,YACZA,GAAA,OAAS,UAIDE,GAAAD,KAAAA,GAAA,KACR,YAAc,cACdC,GAAA,WAAa,aACbA,GAAA,aAAe,eACfA,GAAA,aAAe,eACfA,GAAA,cAAgB,gBAChBA,GAAA,eAAiB,iBACjBA,GAAA,eAAiB,iBACjBA,GAAA,YAAc,cACdA,GAAA,YAAc,cACdA,GAAA,UAAY,YACZA,GAAA,YAAc,cACdA,GAAA,eAAiB,iBACjBA,GAAA,WAAa,aACbA,GAAA,WAAa,aACbA,GAAA,YAAc,cACdA,GAAA,gBAAkB,kBAClBA,GAAA,iBAAmB,mBACnBA,GAAA,kBAAoB,oBACpBA,GAAA,aAAe,eACfA,GAAA,mBAAqB,qBACrBA,GAAA,WAAa,aACbA,GAAA,aAAe,eACfA,GAAA,kBAAoB,oBACpBA,GAAA,kBAAoB,oBACpBA,GAAA,kBAAoB,oBACpBA,GAAA,YAAc,cACdA,GAAA,gBAAkB,kBAClBA,GAAA,uBAAyB,yBAUtB,IAsTKM,GAAAC,GAuDRC,GA7WSC,GAA2B,sBAE3BC,GAA0BD,GAA2B,UAErDE,GAA2BF,GAA2B,YAEtDG,GAAgCH,GAA2B,gBAqBjE,SAAAI,GAA2BpkE,GAC9B,MAAO,UAAWA,GAAwB,kBAAZA,EAAE2b,KAAU,UAe9C0oD,GAAAviB,GAAA,OAAAwiB,GAAAh/E,MAAA,KAAAR,UAAA,UAAAw/E,KAEiB,OAFjBA,GAAAlX,EAAArF,IAAA6D,MAAA,SAAA2Y,EAAwCC,GAAA,OAAAzc,IAAAO,MAAA,SAAAmc,GAAA,cAAAA,EAAAre,KAAAqe,EAAA13C,MAAA,UACf,kBAAVy3C,EAAU,CAAAC,EAAA13C,KAAA,eAAA03C,EAAAha,OAAA,SAAiB+Z,GAAA,cAAAC,EAAA13C,KAAA,EACzBy3C,IAAA,cAAAC,EAAAha,OAAA,SAAAga,EAAAna,MAAA,wBAAAma,EAAAtY,OAAA,GAAAoY,EAAA,MAAAj/E,MAAA,KAAAR,UAAA,CAyBV,SAAA4/E,GAA4BjI,GAC/B,OACIA,EAAKkI,OAASvB,GAAawB,SAC3BnI,EAAKkI,OAASvB,GAAayB,QAC3BpI,EAAKkI,OAASvB,GAAa0B,OAC3BrI,EAAKkI,OAASvB,GAAa2B,WAC3BtI,EAAKkI,OAASvB,GAAa4B,SAMxB,CAuBJ,SAAAC,GAAyBxI,GAC5B,OAAOA,EAAKkI,OAASd,GAAkBqB,QAAUzI,EAAKkI,OAASd,GAAkBsB,MAAA,CAI9E,SAAAC,GAAyB3I,GAC5B,SAAKiI,GAAmBjI,IAASA,EAAKkI,OAASvB,GAAaiC,SAGxD5I,EAAKkI,OAASvB,GAAakC,MAC3B7I,EAAKkI,OAASvB,GAAatb,QAC3B2U,EAAKkI,OAASvB,GAAamC,UAC3B9I,EAAKkI,OAASvB,GAAaoC,KAC3B/I,EAAKkI,OAASvB,GAAaqC,QAC3BhJ,EAAKkI,OAASvB,GAAavgB,SAEF,IAAlB4Z,EAAKiJ,cAEhB3F,KAAY,CAqHT,SAAA4F,GACH38B,GAEA,OAAO48B,EAAI58B,EAAK,UAyCb,SAAA68B,GAA+BpJ,GA/gBtC,IAAAsE,EAghBI,QAAS,OAAAA,EAAAtE,EAAKiJ,WAAL3E,EAAiB,EAyBlB+C,GAAAD,KAAAA,GAAA,KACR,OAAS,UACTC,GAAA,OAAS,SAwDN,IAAAgC,GAAA,SAAAC,GACK,SAAAD,EAA6BtQ,GAA+B,IAAAtf,EAAA,KAAAzM,EAAA,KAAAq8B,GAA/B,KAAAtQ,MAAAA,EAUrC,KAAAhrE,OAAS,SAACw7E,GACN,OAAe,IAAXA,EAAqB9vB,EAElB,IAAI4vB,EADM5vB,EAAKsf,MAAMlgE,KAAI,SAAA6vB,GAAA,MAAK,CAACA,EAAE,GAAK6gD,EAAQ7gD,EAAE,GAAK6gD,EAAA,IAChC,EAGhC,KAAA19E,IAAM,SAAC29E,GACH,IAAMz0E,EAAoC,kBAAdy0E,EAAyB,CAACA,EAAWA,EAAY,GAAKA,EAE5EC,EAlDd,SAAqB/5D,GACjB,GAAqB,IAAjBA,EAAMpnB,OACN,MAAO,GAEX,IAAMohF,EAAAC,EAAaj6D,GAEblf,EAA4B,GAElCk5E,EAAOE,MAAK,SAAUvmE,EAAGC,GACrB,OAAOD,EAAE,GAAKC,EAAE,MAGpB9S,EAAM/H,KAAAkhF,EAASD,EAAO,SAEWnY,EAFXC,EAAAZ,EAEF8Y,EAAO30E,MAAM,QAAjC,IAAAy8D,EAAAnI,MAAAkI,EAAAC,EAAAl9D,KAAAygC,MAAqC,KAA1B80C,EAAAtY,EAAA1kE,MACD84B,EAAMn1B,EAAMA,EAAMlI,OAAS,GAE7Bq9B,EAAI,GAAKkkD,EAAM,GACfr5E,EAAM/H,KAAAkhF,EAASE,IACRlkD,EAAI,GAAKkkD,EAAM,KACtBlkD,EAAI,GAAKkkD,EAAM,WAAA/nE,GAAA0vD,EAAA96D,EAAAoL,EAAA,SAAA0vD,EAAAjtD,GAAA,CAIvB,OAAO/T,CAAA,CA0Bcs5E,CAAA,GAAAriD,OAAAkiD,EAAgBlwB,EAAKsf,OAAA,CAAOhkE,KAE7C,OAAO,IAAIs0E,EAAiBI,EAAA,EAGhC,KAAAM,OAAS,SAACP,GACN,IAK+B9X,EALzBsY,EAAAL,EAAYlwB,EAAKsf,OAEjBkR,EAA8B,kBAAdT,EAAyBA,EAAYA,EAAU,GAC/DU,EAA8B,kBAAdV,EAAyBA,EAAY,EAAIA,EAAU,GAAA7X,EAAAf,EAEhDoZ,EAAM//E,WAAA,IAA/B,IAAA0nE,EAAAtI,MAAAqI,EAAAC,EAAAr9D,KAAAygC,MAA0C,KAAAo1C,GAAAllB,EAAAA,EAAAA,GAAAyM,EAAA7kE,MAAA,GAA9BzE,EAAA+hF,EAAA,GAAGp1E,EAAAo1E,EAAA,GACXC,GAAAnlB,EAAAA,EAAAA,GAAqBlwD,EAAA,GAAdZ,EAAAi2E,EAAA,GAAOh2E,EAAAg2E,EAAA,GAEd,GAAIj2E,GAAS+1E,GAAUD,GAAU71E,EAAK,CAClC,IAAMi2E,EAAiB,GACnBl2E,EAAQ81E,GACRI,EAAM5hF,KAAK,CAAC0L,EAAO81E,IAEnBC,EAAS91E,GACTi2E,EAAM5hF,KAAK,CAACyhF,EAAQ91E,IAExB41E,EAAM5uE,OAAAvS,MAANmhF,EAAA,CAAa5hF,EAAG,GAAAq/B,OAAM4iD,GAAA,SAAAvoE,GAAA6vD,EAAAj7D,EAAAoL,EAAA,SAAA6vD,EAAAptD,GAAA,CAG9B,OAAO,IAAI8kE,EAAiBW,EAAA,EAGhC,KAAAM,MAAQ,WACJ,GAA0B,IAAtB7wB,EAAKsf,MAAMzwE,OACf,OAAOmxD,EAAKsf,MAAM,GAAG,IAGzB,KAAAj5B,KAAO,WACH,GAA0B,IAAtB2Z,EAAKsf,MAAMzwE,OACf,OAAOmxD,EAAKsf,MAAMhkE,OAAO,GAAG,GAAG,GAAK,GAGxC,KAAAw1E,SAAW,SAACrgF,GACR,IAAK,IAAI9B,EAAI,EAAGA,EAAIqxD,EAAKsf,MAAMzwE,OAAQF,IAAK,CACxC,IAAAoiF,GAAAvlB,EAAAA,EAAAA,GAAqBxL,EAAKsf,MAAM3wE,GAAA,GAAzB+L,EAAAq2E,EAAA,GAAOp2E,EAAAo2E,EAAA,GACd,GAAItgF,GAASiK,GAASjK,EAAQkK,EAAK,OAAO,EAE9C,OAAO,GAGX,KAAAq2E,OAAS,SAACvgF,GACN,IAAK,IAAIw+B,EAAIx+B,EAAM,GAAIw+B,EAAIx+B,EAAM,GAAIw+B,IACjC,IAAK+wB,EAAK8wB,SAAS7hD,GAAI,OAAO,EAElC,OAAO,GAGX,KAAAqiC,KAAO,SAACj+D,GAAmD,IACvC8kE,EADuCC,EAAAjB,EACvCnX,GAAA,IAAhB,IAAAoY,EAAAxI,MAAAuI,EAAAC,EAAAv9D,KAAAygC,MAAsB,CAClB,GAAIjoC,EADG8kE,EAAA/kE,OACW,OAAO,SAAAiV,GAAA+vD,EAAAn7D,EAAAoL,EAAA,SAAA+vD,EAAAttD,GAAA,CAE7B,OAAO,GAGX,KAAAmmE,OAAS,SAACr6E,GACN,GAAIA,IAAUopD,EAAM,OAAO,EAE3B,GAAIppD,EAAM0oE,MAAMzwE,SAAWmxD,EAAKsf,MAAMzwE,OAAQ,OAAO,EAErD,IAAK,IAAIF,EAAI,EAAGA,EAAIqxD,EAAKsf,MAAMzwE,OAAQF,IAAK,CACxC,IAAMq9B,EAAOp1B,EAAM0oE,MAAM3wE,GACnB+rD,EAAQsF,EAAKsf,MAAM3wE,GAEzB,GAAIq9B,EAAK,KAAO0uB,EAAM,IAAM1uB,EAAK,KAAO0uB,EAAM,GAAI,OAAO,EAG7D,OAAO,GAOX,KAAAsE,QAAU,WACN,IACgCyZ,EAD1BllE,EAAmB,GAAAmlE,EAAAvB,EACEnX,EAAKsf,OAAA,IAAhC,IAAA5G,EAAA9I,MAAA6I,EAAAC,EAAA79D,KAAAygC,MACI,IADmC,IAAA41C,GAAA1lB,EAAAA,EAAAA,GAAAiN,EAAArlE,MAAA,GAA3BsH,EAAAw2E,EAAA,GAAOv2E,EAAAu2E,EAAA,GACNjiD,EAAIv0B,EAAOu0B,EAAIt0B,EAAKs0B,IACzB17B,EAAOvE,KAAKigC,EAAA,OAAA5mB,GAAAqwD,EAAAz7D,EAAAoL,EAAA,SAAAqwD,EAAA5tD,GAAA,CAGpB,OAAOvX,CAAA,EAeO,OAfPkgD,EAAAm8B,EAAA,EAAAngF,IAAA,SAAAqB,IAAA,WAIP,IACgCqgF,EAD5B7lB,EAAM,EAAA8lB,EAAAja,EACiBzmE,KAAK4uE,OAAA,IAAhC,IAAA8R,EAAAxhB,MAAAuhB,EAAAC,EAAAv2E,KAAAygC,MAAuC,KAAA+1C,GAAA7lB,EAAAA,EAAAA,GAAA2lB,EAAA/9E,MAAA,GAA3BsH,EAAA22E,EAAA,GACR/lB,GADe+lB,EAAA,GACF32E,CAAA,QAAA2N,GAAA+oE,EAAAn0E,EAAAoL,EAAA,SAAA+oE,EAAAtmE,GAAA,CAGjB,OAAOwgD,CAAA,IAAA77D,IAGToD,OAAO0a,SAHEna,MAAAy+D,IAAA6D,MAAA,SAAAtiE,IAAA,IAAAk+E,EAAAC,EAAAC,EAAA92E,EAAAC,EAAAs0B,EAAA,OAAA4iC,IAAAO,MAAA,SAAAzjD,GAAA,cAAAA,EAAAuhD,KAAAvhD,EAAAkoB,MAAA,OAAAy6C,EAAAna,EAIoBzmE,KAAK4uE,OAAA3wD,EAAAuhD,KAAA,EAAAohB,EAAA1hB,IAAA,WAAA2hB,EAAAD,EAAAz2E,KAAAygC,KAAA,CAAA3sB,EAAAkoB,KAAA,SAAA26C,GAAAhmB,EAAAA,EAAAA,GAAA+lB,EAAAn+E,MAAA,GAApBsH,EAAA82E,EAAA,GAAO72E,EAAA62E,EAAA,GACNviD,EAAIv0B,EAAA,YAAOu0B,EAAIt0B,GAAA,CAAAgU,EAAAkoB,KAAA,SACpB,OADoBloB,EAAAkoB,KAAA,EACd5H,EAAA,OADmBA,IAAAtgB,EAAAkoB,KAAA,gBAAAloB,EAAAkoB,KAAA,gBAAAloB,EAAAkoB,KAAA,iBAAAloB,EAAAuhD,KAAA,GAAAvhD,EAAA8iE,GAAA9iE,EAAA,SAAA2iE,EAAAr0E,EAAA0R,EAAA8iE,IAAA,eAAA9iE,EAAAuhD,KAAA,GAAAohB,EAAAxmE,IAAA6D,EAAAgoD,OAAA,6BAAAhoD,EAAAsnD,OAAA,GAAA7iE,EAAA,2BACnBw8E,CAAA,CAzHf,GAAA8B,GAAA9B,GAAA8B,GAGIC,MAAQ,WACX,OAAO,MAAA9D,GAAAA,GAA0BA,GAAwB,IAAI+B,GAAiB,KAJ/E8B,GAOIE,oBAAsB,SAAC7B,GAC1B,OAAOH,GAAiB+B,QAAQv/E,IAAI29E,EAAA,MCpmB/B8B,IAA6BrkB,EAAAA,EAAAA,GAA7B,MAA6BA,CAA7B,CAAArvD,KAAA,6BAAAyvD,MAAA,WAAAK,KAAA,eAQQ,SAAAtkD,GAAA,OAAKA,EAAEmoE,OAAA,EARf,oBAUD,SAAAnoE,GAAA,OAAKA,EAAEooE,QAAU,GAVhB,oBAWF,SAAApoE,GAAA,OAAKA,EAAEmoE,QAAU,GAXf,oBAYI,SAAAnoE,GAAA,OAAKA,EAAEqoE,YAAc,GAZzB,oBAaK,SAAAroE,GAAA,OAAKA,EAAEsoE,aAAe,GAb3B,oBAgBkB,SAAAtoE,GAAA,OAAKA,EAAEmoE,QAAU,IAhBnC,oBA0CM,SAAAnoE,GAAA,OAAKrP,KAAKG,IAAI,GAAIkP,EAAEsoE,aAAe,IAAM,EAApC,EA1CX,SCIN,SAAAC,KACH,IAAAC,EAXJ,WACI,IAAAC,EAAsCC,EAAAA,WAAAC,GAAA9mB,EAAAA,EAAAA,GAAA4mB,EAAA,GAA/BG,EAAAD,EAAA,GACP,MAAO,CAAC,MAAAC,EAAAA,OAAY,EADHD,EAAA,GACc,CASTE,GAAAC,GAAAjnB,EAAAA,EAAAA,GAAA2mB,EAAA,GAAfz3C,EAAA+3C,EAAA,GAAKC,EAAAD,EAAA,GACZE,EAAoCN,EAAAA,SAAS,GAAAO,GAAApnB,EAAAA,EAAAA,GAAAmnB,EAAA,GAAtCE,EAAAD,EAAA,GAASE,EAAAF,EAAA,GAChBG,EAAkDV,EAAAA,UAAS,GAAAW,GAAAxnB,EAAAA,EAAAA,GAAAunB,EAAA,GAApDE,EAAAD,EAAA,GAAgBE,EAAAF,EAAA,GAyCvB,OAvCMX,EAAAA,iBAAgB,WAClB,QAAY,IAAR33C,GACE,yBAA0BrwB,OAAhC,CAEA,IAAM8oE,EAAW,IAAIC,sBACjB,SAAAC,GACwB,IAAhBA,EAAKxkF,QACTqkF,EAAkBG,EAAK,GAAGJ,eAAA,GAE9B,CAAEK,UAAW,IAIjB,OAFAH,EAASI,QAAQ74C,GAEV,kBAAMy4C,EAASK,YAAA,CAXyB,CAWzB,GACvB,CAAC94C,IAEE23C,EAAAA,WAAU,WACZ,IAAIY,QAA0B,IAARv4C,EAAtB,CAEA,IAAI+4C,EASJ,OADAA,EAAYC,uBAPD,SAALnnB,IACF,IAAeonB,EAAaj5C,EAAIk5C,wBAAxBl5B,MAERo4B,GAAW,SAAAe,GAAA,OAAMv5E,KAAKsJ,IAAIiwE,EAAKxpE,OAAOypE,WAAaH,EAAW,GAAI,MAClEF,EAAYC,sBAAsBnnB,EAAA,IAI/B,gBACe,IAAdknB,GACAM,qBAAqBN,EAAA,CAbkB,CAalB,GAG9B,CAAC/4C,EAAKu4C,IAMF,CACHv4C,IAAKg4C,EACLt9D,MANgBi9D,EAAAA,SAAQ,WACxB,MAAO,CAAE5vE,UAAA,cAAAurB,OAAyB6kD,EAAA,UACnC,CAACA,IAIA,CCZR,IAuLAmB,GAvLmF,SAAArqE,GAC/E,IACIkN,EAeAlN,EAfAkN,OACA6uD,EAcA/7D,EAdA+7D,QACiBuO,EAajBtqE,EAbAuqE,gBACAC,EAYAxqE,EAZAwqE,cACA/jE,EAWAzG,EAXAyG,aACAgkE,EAUAzqE,EAVAyqE,oBACAC,EASA1qE,EATA0qE,sBACA9a,EAQA5vD,EARA4vD,UACA5iB,EAOAhtC,EAPAgtC,UACAi0B,EAMAjhE,EANAihE,MACAtrD,EAKA3V,EALA2V,GACAinD,EAIA58D,EAJA48D,KACA+N,EAGA3qE,EAHA2qE,aACAC,EAEA5qE,EAFA4qE,gBACAC,EACA7qE,EADA6qE,cAGJC,EAA2CC,EAAAA,SAA+BP,EAAgBzO,OAAU,GAAAiP,GAAAnpB,EAAAA,EAAAA,GAAAipB,EAAA,GAA7FG,EAAAD,EAAA,GAAWE,EAAAF,EAAA,GACZG,EAAqBJ,EAAAA,OAAO,MAAAE,EAAAA,EAAalP,GAC/CoP,EAAav7D,QAAU,MAAAq7D,EAAAA,EAAalP,EAEpC,IAuFIqP,EAEAC,EAzFJC,EAAoCP,EAAAA,UAAS,WACzC,YAAqB,IAAjBJ,KACK9F,GAAmB9I,KAAoE,KAAxD,MAAA4O,OAAA,EAAAA,EAAe/N,EAAMb,EAASoP,EAAav7D,UAAa,IAAA27D,GAAA1pB,EAAAA,EAAAA,GAAAypB,EAAA,GAF7FE,EAAAD,EAAA,GAASE,EAAAF,EAAA,GAKVhB,EAAwBQ,EAAAA,aAC1B,SAACW,EAASC,GACNrB,EAAkBkB,EAAUE,OAAU,EAAWC,EAAA,GAErD,CAACH,EAASlB,IAGRsB,EAAqBb,EAAAA,aACvB,SAACc,GACG,QAAqB,IAAjBlB,QAAyC,IAAXkB,GAAwBhH,GAAmBgH,GAAS,CAClF,IAAMC,EAAcnB,EAAa/N,EAAMiP,EAAQV,EAAav7D,UACxC,IAAhBk8D,EACAL,GAAW,GACmB,kBAAhBK,GACdD,EAASC,EACTL,GAAW,IAEXA,GAAW,GAGnBP,EAAgBW,EAAA,GAEpB,CAACjP,EAAM+N,IAGLoB,EAAiBhB,EAAAA,QAAO,GACxBiB,EAAqBjB,EAAAA,YAA6C,GAElEjK,EAAuBiK,EAAAA,aAAY,WACrCR,EAAgBU,EAAW,CAAC,EAAG,IAC/Bc,EAASn8D,SAAU,IACpB,CAACq7D,EAAWV,IAET0B,EAAyBlB,EAAAA,aAC3B,SAACmB,GA5GT,IAAAhL,EA6GYqJ,EAAgB2B,EAAU,OAAAhL,EAAA8K,EAAap8D,SAAbsxD,EAAwB,CAAC,EAAG,IACtD6K,EAASn8D,SAAU,IAEvB,CAAC26D,IAGCpvB,EAAkB4vB,EAAAA,YAAA,eAAA7/B,EAAAqiB,EAAArF,IAAA6D,MACpB,SAAAogB,EAAOptD,GAAA,IAAAqtD,EAAA,OAAAlkB,IAAAO,MAAA,SAAA4jB,GAAA,cAAAA,EAAA9lB,KAAA8lB,EAAAn/C,MAAA,OACCk/C,GAAO,EACO,WAAdrtD,EAAMj5B,KACNi5B,EAAMlJ,kBACNkJ,EAAM/H,iBACNg1D,EAAap8D,QAAU,CAAC,EAAG,IACN,UAAdmP,EAAMj5B,KAAoBi5B,EAAMrG,SAKlB,QAAdqG,EAAMj5B,MACbi5B,EAAMlJ,kBACNkJ,EAAM/H,iBACNg1D,EAAap8D,QAAU,CAACmP,EAAMrG,UAAY,EAAI,EAAG,GACjD0zD,GAAO,IARPrtD,EAAMlJ,kBACNkJ,EAAM/H,iBACNg1D,EAAap8D,QAAU,CAAC,EAAG,GAC3Bw8D,GAAO,GAQX1rE,OAAOpF,YAAW,WACTywE,EAASn8D,cAAoC,IAAzBo8D,EAAap8D,UAClC26D,EAAgB6B,EAAOnB,OAAY,EAAWe,EAAap8D,SAC3Dm8D,EAASn8D,SAAU,KAExB,2BAAAy8D,EAAA/f,OAAA,GAAA6f,EAAA,qBAAAG,GAAA,OAAAphC,EAAAzlD,MAAA,KAAAR,UAAA,EAxBa,GA0BpB,CAACslF,EAAiBU,IAGhBsB,EAAc,MAAAtB,EAAAA,EAAalP,EAEjCyQ,EAAyCzB,EAAAA,SAAQ,WAlJrD,IAAA7J,EAAAC,EAmJQ,GAAIiE,GAAgBrJ,GAAU,MAAO,GACrC,IAAM0Q,EAAW,MAAA5B,OAAA,EAAAA,EAAgB9O,GACjC,YAAiB,IAAb0Q,EAA+B,CAACA,GAAU,GACvC,CAAC,OAAAtL,EAAA,OAAAD,EAAA0J,EAAgB7O,SAAhB,EAAAmF,EAA0B2J,oBAA1B,EAAA1J,EAAAp7E,KAAAm7E,EAA0CnF,IAAU,KAC7D,CAACA,EAAS6O,EAAiBC,IAAA6B,GAAA7qB,EAAAA,EAAAA,GAAA2qB,EAAA,GALvBG,EAAAD,EAAA,GAAgBE,EAAAF,EAAA,GAOvBG,EAA0CtE,KAAlCx3C,EAAA87C,EAAA97C,IAAY+7C,EAAAD,EAAPphE,MAETshE,GAAM,EAENthE,GAAQ,EAGZ,QAAuB,IAAnBkhE,EAA8B,CAC9BI,GAAwC,IAAlCJ,EAAeK,eACrBvhE,GAA0C,IAAlCkhE,EAAeM,eACvB,IAAMC,EAAiBpH,GAA6B6G,GAChDO,IACA7B,EAAgBsB,EAAetB,eAEnC,IAAM8B,EAAeD,EAAiBP,EAAevB,OAASuB,EAC9DvB,EACIL,EAAAA,cAACoC,EAAD,CACIC,cAAexd,EACfpb,SAAUo3B,EACVniF,MAAO8iF,EACP9lE,aAAAA,EACA4mE,kBAAmBpB,EACnBqB,mBAAoBzI,GAAmB0H,GAAeA,EAAYlrD,oBAAiB,EACnFmpD,cAAAA,EACAt9D,OAAAA,EACAu9D,oBAAAA,EACAC,sBAAAA,EACAc,QAAAA,GAAA,CAKZH,EAAAj9B,EAAAA,EAAA,GAAqBi9B,GAAkByB,GAGvC,IAAMS,EAAgB5sE,SAAS6sE,eAAe,UAC9C,GAAsB,OAAlBD,EAKA,OAHA90C,QAAQC,MACJ,yIAEG,KAGX,IAAI+0C,EAAYhiE,EAAQ,YAAc,cAStC,OARK+/D,IACDiC,GAAa,YAGbV,IACAU,GAAa,SAGVzlC,EAAAA,EAAAA,cACH+iC,EAAAA,cAAC1H,GAAa/jB,SAAd,CAAuB71D,MAAOw3E,GAC1B8J,EAAAA,cAACvK,GAAD,CAAuB/0D,MAAOu1D,GAAaC,GAAQj0B,UAAAA,EAAsB8zB,eAAAA,GACrEiK,EAAAA,cAAC7C,GAAD,CACIn3C,IAAAA,EACApb,GAAAA,EACAq3B,UAAWygC,EACXhiE,MAAO4/D,EACPtnB,IAAiB,IAAb6oB,EAAoB,aAAU,EAClCxE,QAASl7D,EAAOoY,EAChB6iD,QAASj7D,EAAO4hB,EAChBu5C,YAAan7D,EAAO4O,MACpBwsD,aAAcp7D,EAAO6O,QACrBgvD,EAAAA,cAAC,MAAD,CAAK/9B,UAAU,cAAcmO,UAAAA,GACxBiwB,MAKjBmC,EAAA,ECvNFG,GAAW,MAEXC,GAA8B,GAEpC,SAAAC,GAA4B1hE,EAAa0qD,GACrC,OAAOA,EAAM8W,GAAWxhE,CAAA,CAG5B,SAAA2hE,GAAmBC,GACf,OAAOA,EAASJ,EAAA,CAGpB,SAAAK,GAAmBD,EAAgB5hE,GAC/B,OAAQ4hE,EAAS5hE,GAAOwhE,EAAA,CAG5B,SAAAM,GAA8BF,GAC1B,IAAM5hE,EAAM2hE,GAAUC,GAEtB,MAAO,CAAC5hE,EADI6hE,GAAUD,EAAQ5hE,GACjB,CAGjB,IAAA+hE,GAAA,oBAAAA,IAhCA,IAAA/2B,EAAA,KAAAtN,EAAA,KAAAqkC,GAiCY,KAAAC,YAAoD,WAAM,EAC1D,KAAAC,gBAAsC,GAEtC,KAAAC,cAA2B,CAC/B9oD,EAAG,EACHwJ,EAAG,EACHhT,MAAO,EACPC,OAAQ,GAGJ,KAAAsyD,WAAqB,EAErB,KAAAC,WAAa,SAACR,GAClB,IAAM5hE,EAAM2hE,GAAUC,GAChBlX,EAAMmX,GAAUD,EAAQ5hE,GACxBsZ,EAAI0xB,EAAKk3B,cACf,OAAIliE,EAAMgrC,EAAKm3B,YAAczX,GAAOpxC,EAAEsJ,GAAK8nC,GAAOpxC,EAAEsJ,EAAItJ,EAAEzJ,QACnD7P,GAAOsZ,EAAEF,GAAKpZ,GAAOsZ,EAAEF,EAAIE,EAAE1J,OAAS86C,GAAOpxC,EAAEsJ,GAAK8nC,GAAOpxC,EAAEsJ,EAAItJ,EAAEzJ,MAAA,EAGtE,KAAAxpB,MAAoC,CAAC,EAOrC,KAAAg8E,WAAaC,GAAS,WAC1Bt3B,EAAKg3B,YAAYh3B,EAAKi3B,iBACtBj3B,EAAKi3B,gBAAkB,KACxB,IAEK,KAAAM,iBAAmB,WAEvB,IADA,IACAC,EAAA,EAAAC,EADahpF,OAAOqG,KAAKkrD,EAAK3kD,OACZm8E,EAAAC,EAAAzpF,OAAAwpF,IAAM,CAIpB,IAJJ,IAAW5oF,EAAA6oF,EAAAD,GACDvlC,EAAM+N,EAAK3kD,MAAMzM,GAEnB8oF,GAAO,EACF7nB,EAAI,EAAGA,EAAI5d,EAAIwpB,MAAMztE,OAAQ6hE,IAAK,CACvC,IAAM+mB,EAAS3kC,EAAIwpB,MAAM5L,GACzB,GAAI7P,EAAKo3B,WAAWR,GAAS,CACzBc,GAAO,EACP,OAIJA,EACAzlC,EAAIwpB,MAAQxpB,EAAIwpB,MAAMzkB,OAAOgJ,EAAKo3B,aAElCnlC,EAAIttC,gBACGq7C,EAAK3kD,MAAMzM,GAAA,GA2EnB,OA3EmBgkD,EAAAmkC,EAAA,EAAAnoF,IAAA,cAAA2D,MA5BvB,SAAYykF,GACfnnF,KAAKmnF,YAAcA,CAAA,IAAApoF,IAAA,YAAA2D,MAgChB,SAAUolF,EAAsBR,GAE/BtnF,KAAKqnF,cAAc9oD,IAAMupD,EAAUvpD,GACnCv+B,KAAKqnF,cAAct/C,IAAM+/C,EAAU//C,GACnC/nC,KAAKqnF,cAActyD,QAAU+yD,EAAU/yD,OACvC/0B,KAAKqnF,cAAcryD,SAAW8yD,EAAU9yD,QACxCh1B,KAAKsnF,aAAeA,IAGxBtnF,KAAKqnF,cAAgBS,EACrB9nF,KAAKsnF,WAAaA,EAClBtnF,KAAK0nF,mBAAA,IAAA3oF,IAAA,YAAA2D,MAGD,SAAUi1B,EAAaxS,EAAa0qD,EAAa9wE,GAAa,IArG1Eo7E,EAqG0EtpB,EAAA,KAC9DuN,GAAS,EACP94C,EAAM,OAAA60D,EAAAyM,GAAQ11E,OAARipE,EAAiB,IAAIsE,MAE7BsJ,GAAW,EACTllF,EAAqB,CACvByiB,SAAK,EACLsmD,MAAO,CAACib,GAAmB1hE,EAAK0qD,IAChCl4C,IAAAA,EACA7iB,OAAQ,WACAizE,IACJA,GAAW,EACPnB,GAAQzoF,OAAS,GACjByoF,GAAQrnD,QAAQja,GACR84C,IACR94C,EAAIg0B,IAAM,OAKhB0uC,EAAc,IAAI7mF,SAAQ,SAAA2mC,GAAA,OAAKxiB,EAAIiC,iBAAiB,QAAQ,kBAAMugB,EAAE,YAE1Ek7C,sBAAAxc,EAAArF,IAAA6D,MAAsB,SAAAijB,IAAA,IAAAC,EAAAC,EAAAC,EAAArB,EAAA,OAAA5lB,IAAAO,MAAA,SAAA2mB,GAAA,cAAAA,EAAA7oB,KAAA6oB,EAAAliD,MAAA,OAEJ,OAFIkiD,EAAA7oB,KAAA,EAEdl6C,EAAIg0B,IAAM3hB,EAAA0wD,EAAAliD,KAAA,EACJ6hD,EAAA,cAAAK,EAAAliD,KAAA,EACA7gB,EAAIgjE,SAAA,OAEV,QAAgB,KADVJ,EAAUr3B,EAAKrlD,MAAMzM,MACGgpF,EAAU,CACpCG,EAAQ5iE,IAAMA,EAAA6iE,EAAA1hB,EACOyhB,EAAQtc,OAAA,IAA7B,IAAAuc,EAAAjpB,MAAAkpB,EAAAD,EAAAh+E,KAAAygC,MAAWm8C,EAAAqB,EAAA1lF,MACPmuD,EAAKu2B,gBAAgB9oF,KAAK2oF,GAAqBF,GAAA,OAAApvE,GAAAwwE,EAAA57E,EAAAoL,EAAA,SAAAwwE,EAAA/tE,GAAA,CAEnDgkD,GAAS,EACTvN,EAAK22B,YAAA,CAAAa,EAAAliD,KAAA,iBAAAkiD,EAAA7oB,KAAA,GAAA6oB,EAAAtH,GAAAsH,EAAA,SAGTxlF,EAAOiS,SAAA,yBAAAuzE,EAAA9iB,OAAA,GAAA0iB,EAAA,oBAGfjoF,KAAKwL,MAAMzM,GAAO8D,CAAA,IAAA9D,IAAA,iBAAA2D,MAGf,SAAei1B,EAAaxS,EAAa0qD,GAC5C,IAAM9wE,EAAM44B,EAEN9O,EAAU7oB,KAAKwL,MAAMzM,GAC3B,QAAgB,IAAZ8pB,EAAuB,CACvB,IAAMk+D,EAASF,GAAmB1hE,EAAK0qD,GAIvC,OAHKhnD,EAAQ+iD,MAAM9sE,SAASioF,IACxBl+D,EAAQ+iD,MAAMttE,KAAKyoF,GAEhBl+D,EAAQvD,GAAA,CAEftlB,KAAKuoF,UAAU5wD,EAAKxS,EAAK0qD,EAAK9wE,EAE3B,KAAAmoF,CAAA,CA9Hf,GAkIAsB,GAAetB,GC/JR,SAAAuB,GACHC,EACApzB,EACAl9C,EACAgmB,GAEF,IADED,EAAAjgC,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,IAAAA,UAAA,GAGMyqF,EAAqBC,EAAAA,SAM3BD,EAAa9/D,QAAUysC,EACjBszB,EAAAA,WACF,WAEI,GAAgB,OAAZxwE,QAAiD,IAA7BA,EAAQmP,iBAAhC,CACA,IAAMk2B,EAAKrlC,EAGLywE,EAAgB,SAAC7wD,GAzBnC,IAAAmiD,EA0BgB,OAAAA,EAAAwO,EAAa9/D,UAAbsxD,EAAsBn7E,KAAKy+C,EAAIzlB,EAAA,EAMnC,OAHAylB,EAAGl2B,iBAAiBmhE,EAAWG,EAAe,CAAEzqD,QAAAA,EAASD,QAAAA,IAGlD,WACHsf,EAAGj2B,oBAAoBkhE,EAAWG,EAAe,CAAE1qD,QAAAA,GAAA,CAZe,CAYf,GAG3D,CAACuqD,EAAWtwE,EAASgmB,EAASD,GAAA,CAI/B,SAAA2qD,GAAwB1mC,EAAUv/C,GACrC,YAAe,IAARu/C,OAAoB,EAAYv/C,CAAA,CAG3C,IAAMkmF,GAAKn/E,KAAKm/E,GACT,SAAAC,GAA0BC,GAC7B,OAAQA,EAAUF,GAAM,IAQrB,IAAMG,GAA4D,SAACh9E,GAtD1E,IAAAiuE,EAuDU13C,EAAK,OAAA03C,EAAAjuE,EAAMi9E,SAANhP,EAAiB,eAC5B,OACIyO,EAAAA,cAAC,MAAD,CAAKQ,QAAQ,YAAYC,KAAK,OAAOC,MAAM,8BACvCV,EAAAA,cAAC,OAAD,CACIzuE,EAAE,kQACFovE,OAAQ9mD,EACRne,YAAY,MACZklE,cAAc,QACdC,eAAe,QACfJ,KAAK,OACLK,aAAa,uBAEjBd,EAAAA,cAAC,OAAD,CACIzuE,EAAE,gNACFovE,OAAQ9mD,EACRne,YAAY,MACZklE,cAAc,QACdC,eAAe,QACfJ,KAAK,OACLK,aAAa,yBAMhBC,GAA2D,SAACz9E,GAhFzE,IAAAiuE,EAiFU13C,EAAK,OAAA03C,EAAAjuE,EAAMi9E,SAANhP,EAAiB,eAE5B,OACIyO,EAAAA,cAAC,MAAD,CAAKQ,QAAQ,YAAYC,KAAK,OAAOC,MAAM,8BACvCV,EAAAA,cAAC,OAAD,CACIzuE,EAAE,mCACFuvE,aAAa,qBACbH,OAAQ9mD,EACRne,YAAY,MACZklE,cAAc,QACdC,eAAe,YAoC/B,IAAMG,GAAW,0CACXC,GACF,6GAKEC,GAAM,IAAIrhF,OAAO,MAAQohF,GAAW,MAAQD,GAAW,KACvDG,GAAM,IAAIthF,OAAO,MAAQmhF,GAAW,MAAQC,GAAW,KAO7D,IAAIG,QAA0C,EAuC9C,IAAM/I,GAAQ9+E,SC9IP,SAAA8nF,GAAsB3uD,EAA0B0uB,GACnD,OAAQ,MAAA1uB,EAAAA,EAAQ,OAAS,MAAA0uB,EAAAA,EAAS,IAiBtC,SAAAkgC,GAAsB1yE,EAAgBq+D,EAAqBsU,GACvD,IAAMC,EAASD,EAAK5rD,EACd8rD,EAAOF,EAAK5rD,EAAI4rD,EAAKp1D,MAAQ,EAC7Bu1D,EAASH,EAAKpiD,EACdwiD,EAAOJ,EAAKpiD,EAAIoiD,EAAKn1D,OAAS,EAEpCw1D,GAAA1vB,EAAAA,EAAAA,GAA2BtjD,EAAA,GAApBizE,EAAAD,EAAA,GAASE,EAAAF,EAAA,GAChB,GAAIE,EAAUJ,GAAUI,EAAUH,EAAM,OAAO,EAE/C,QAAkB,IAAd1U,EAAK8U,KACL,OAAOF,GAAWL,GAAUK,GAAWJ,EAG3C,IAAAO,GAAA9vB,EAAAA,EAAAA,GAA6B+a,EAAK8U,KAAA,GAA3BE,EAAAD,EAAA,GAAWE,EAAAF,EAAA,GAClB,OACKC,GAAaT,GAAUS,GAAaR,GACpCS,GAAWV,GAAUS,GAAaR,GAClCQ,EAAYT,GAAUU,EAAUT,CAAA,CAiBzC,SAAAU,GACI1oE,EACA2oE,GAKA,IAAIC,EAAa5oE,EACjB,QAAiB,IAAb2oE,EAAwB,CACxB,IAAI9nC,EAAAs8B,EAAen9D,GACb6oE,EAAOD,EAAWD,EAAS1xC,KAC7B0xC,EAAS1xC,IAAM0xC,EAASG,MACxBjoC,EAASjyC,OAAO+5E,EAAS1xC,IAAK,GAC9B4J,EAASjyC,OAAO+5E,EAASG,KAAM,EAAGD,KAElChoC,EAASjyC,OAAO+5E,EAASG,KAAO,EAAG,EAAGD,GACtChoC,EAASjyC,OAAO+5E,EAAS1xC,IAAK,IAMlC2xC,EAJA/nC,EAAWA,EAASx0C,KAAI,SAAC0K,EAAGnb,GAAA,OAAAopD,EAAAA,EAAA,GACrBjuC,GAAA,IACHgyE,OAAQ/oE,EAAQpkB,GAAGmtF,QAAA,GAEV,CAEjB,OAAOH,CAAA,CAGJ,SAAAI,GACHhpE,EACA2oE,GAOA,IAFA,IAAInoF,EAAS,EACPyoF,EAAWP,GAAiB1oE,EAAS2oE,GAClC/sF,EAAI,EAAGA,EAAIqtF,EAASntF,OAAQF,IAAK,CACtC,IAAMmb,EAAIkyE,EAASrtF,GACnB,IAAImb,EAAEgyE,OACD,MADSvoF,GAAUuW,EAAE2b,KACrB,CAGT,OAAOlyB,CAAA,CAGJ,SAAA0oF,GACHlpE,EACAmpE,EACAz2D,EACAi2D,EAIAS,GAEA,IAGgBC,EAHVT,EAAaF,GAAiB1oE,EAAS2oE,GAEvCI,EAA6B,GAAAO,EAAAllB,EACnBwkB,GAAA,IAAhB,IAAAU,EAAAzsB,MAAAwsB,EAAAC,EAAAxhF,KAAAygC,MAA4B,KAAjBxxB,EAAAsyE,EAAAhpF,MACP,IAAI0W,EAAEgyE,OAGF,MAFAA,EAAO9sF,KAAK8a,EAEZ,QAAAzB,GAAAg0E,EAAAp/E,EAAAoL,EAAA,SAAAg0E,EAAAvxE,GAAA,CAGR,GAAIgxE,EAAOjtF,OAAS,EAAG,KACHytF,EADGC,EAAAplB,EACH2kB,GAAA,IAAhB,IAAAS,EAAA3sB,MAAA0sB,EAAAC,EAAA1hF,KAAAygC,MAAwB,CACpB7V,GADO62D,EAAAlpF,MACIqyB,KAAA,QAAApd,GAAAk0E,EAAAt/E,EAAAoL,EAAA,SAAAk0E,EAAAzxE,GAAA,EAMnB,IAHA,IAAI0xE,EAAWN,EACXO,EAAO,MAAAN,EAAAA,EAAM,EAEVM,GAAQh3D,GAAS+2D,EAAWb,EAAW9sF,QAC1C4tF,GAAQd,EAAWa,GAAU/2D,MAC7B+2D,IAGJ,IAAK,IAAI7tF,EAAIutF,EAAavtF,EAAI6tF,EAAU7tF,IAAK,CACzC,IAAMmb,EAAI6xE,EAAWhtF,GAChBmb,EAAEgyE,QACHA,EAAO9sF,KAAK8a,EAAA,CAIpB,OAAOgyE,CAAA,CA0DX,IAAIY,GAAc,EACdC,GAAwD,CAAC,EACvDC,GAA0B,qBAAXvyE,OAErB,SAAAwyE,KAKI,OALJA,GAAA3lB,EAAArF,IAAA6D,MAAA,SAAAonB,IAAA,IAAAjS,EAAA,OAAAhZ,IAAAO,MAAA,SAAA2qB,GAAA,cAAAA,EAAA7sB,KAAA6sB,EAAAlmD,MAAA,WACQ+lD,SAAoC,KAA3B,OAAA/R,EAAA,MAAAvgE,cAAA,EAAAA,SAAU0yE,YAAV,EAAAnS,EAAiBoS,OAAU,CAAAF,EAAAlmD,KAAA,eAAAkmD,EAAAxoB,OAAA,wBAAAwoB,EAAAlmD,KAAA,EAClCvsB,SAAS0yE,MAAMC,MAAA,OACrBP,GAAc,EACdC,GAAe,CAAC,EdxOhB9xE,EAAYla,QACZ4a,EAAU5a,QACVkZ,EAAQlZ,QcuOR,wBAAAosF,EAAA9mB,OAAA,GAAA6mB,EAAA,MAAA1tF,MAAA,KAAAR,UAAA,CAUG,SAAAsuF,GAA2BttB,EAAWutB,EAA+BC,GACxE,IAAM3tF,EANV,SAAsBmgE,EAAWutB,EAA+BE,EAAmCD,GAC/F,MAAO,GAAPpvD,OAAU4hC,EAAA,KAAA5hC,OAAK,MAAAovD,EAAAA,EAAQD,EAAIC,KAAA,KAAApvD,OAAQqvD,EAAA,CAKvBC,CAAa1tB,EAAGutB,EAAK,SAAUC,GACvCG,EAAUZ,GAAaltF,GAY3B,YAXgB,IAAZ8tF,IACAA,EAAUJ,EAAInlB,YAAYpI,GAC1B+sB,GAAaltF,GAAO8tF,EACpBb,MAGAA,GAAc,MACdC,GAAe,CAAC,EAChBD,GAAc,GAGXa,CAAA,CAIJ,SAAAC,GAA6BL,EAA+BC,GAI/D,MAHoB,kBAATA,IACPA,EAAA,GAAApvD,OAAUovD,EAAK1Q,cAAA,KAAA1+C,OAAiBovD,EAAKzQ,aAmB7C,SAAkCwQ,EAA+BC,GAAsB,IACnEK,EADmEC,EAAAvmB,EACnEwmB,IAAA,IAAhB,IAAAD,EAAA9tB,MAAA6tB,EAAAC,EAAA7iF,KAAAygC,MAA2B,KAAhBrM,EAAAwuD,EAAArqF,MACP,GAAI67B,EAAEx/B,MAAQ2tF,EAAM,OAAOnuD,EAAE6mC,GAAA,QAAAztD,GAAAq1E,EAAAzgF,EAAAoL,EAAA,SAAAq1E,EAAA5yE,GAAA,CAGjC,IAAM8yE,EAAoBC,GAAWV,EAAK,cACpCW,EAAgBD,GAAWV,EAAK,UAEhCY,IACAD,EAAcE,yBAA2BJ,EAAkBI,0BAC7DJ,EAAkBK,wBAA0B,EAOhD,OALAN,GAAU3uF,KAAK,CACXS,IAAK2tF,EACLtnB,IAAKioB,IAGFA,CAAA,CAlCAG,CAAyBf,EAAKC,EAAA,CAGzC,SAAAS,GAAoBV,EAA+BE,GAG/CF,EAAIpH,OACJoH,EAAIgB,aAAed,EACnB,IAAM9pF,EAAS4pF,EAAInlB,YAJJ,8BAQf,OAFAmlB,EAAIiB,UAEG7qF,CAAA,EAnDqB,WAEhCspF,GAAAztF,MAAA,KAAAR,UAAA,CAQKyvF,GA4CL,IAAMV,GAA4C,GAqD3C,SAAAW,GACH35E,EACA45E,EACAC,GAEA,IAAQrB,EAAex4E,EAAfw4E,IAAKvS,EAAUjmE,EAAVimE,MACPr3E,EAA8B,MAAAgrF,EAAAA,EAAY,CAAC,EAE3CE,EAAU,MAAAD,EAAAA,EAAiB5T,EAAMM,SAKvC,OAJIuT,IAAYlrF,EAAOmrF,YACnBvB,EAAIuB,UAAYD,EAChBlrF,EAAOmrF,UAAYD,GAEhBlrF,CAAA,CAmBX,SAAAorF,GACIxB,EACAxqF,EACAs8B,EACAwJ,EACAtJ,EACA/gB,EACA2vE,EACAnT,EACAgU,GAEqB,UAAjBA,EACAzB,EAAI0B,SAASlsF,EAAMs8B,EAAIE,GAAKy7C,EAAM2B,sBAAwB,IAAM9zC,EAAIrqB,EAAI,EAAI2vE,GACpD,WAAjBa,EACPzB,EAAI0B,SAASlsF,EAAMs8B,EAAIE,EAAI,EAAGsJ,EAAIrqB,EAAI,EAAI2vE,GAE1CZ,EAAI0B,SAASlsF,EAAMs8B,EAAI27C,EAAM2B,sBAAwB,GAAK9zC,EAAIrqB,EAAI,EAAI2vE,EAAA,CAI9E,SAAAe,GAAqB3B,EAA+B4B,GAChD,IAAMC,EAAc9B,GAAkB,cAAeC,EAAK4B,GAC1D,OAAOC,EAAYf,wBAA0Be,EAAYhB,wBAAA,CAItD,SAAAiB,GACHt6E,EACAhS,EACAisF,EACAM,EACAC,GAEA,IAAQhC,EAAqBx4E,EAArBw4E,IAAKtC,EAAgBl2E,EAAhBk2E,KAAMjQ,EAAUjmE,EAAVimE,MAEX37C,EAA8B4rD,EAA9B5rD,EAAGwJ,EAA2BoiD,EAA3BpiD,EAAUtJ,EAAiB0rD,EAAxBp1D,MAAkBrX,EAAMysE,EAAdn1D,OAIxB,KAFAw5D,EAAgB,MAAAA,GAAAA,GAEI,CACZvsF,EAAKnD,SAAS,QAGdmD,EAAOA,EAAK6Y,MAAM,SAAS,IAE/B,IAAM/Q,EAAM00B,EAAI,EACZx8B,EAAK9D,OAAS4L,IACd9H,EAAOA,EAAK2I,MAAM,EAAGb,GAAA,CAI7B,IDhSsBrH,ECgShB2qF,EAAOP,GAAoBL,EAAKvS,GAEhCwU,EAA4B,SDlSZhsF,ECkSET,EDjSjB6nF,GAAInhF,KAAKjG,GAAS,MAAQqnF,GAAIphF,KAAKjG,GAAS,MAAQ,WC2S3D,QARqB,IAAjBwrF,GAA8BQ,IAC9BR,EAAe,SAGfQ,IACAjC,EAAIkC,UAAY,OAGhB1sF,EAAK9D,OAAS,EAAG,CACjB,IAAIywF,GAAU,EAWd,GAVqB,UAAjBV,GAEAzB,EAAIoC,UAAY,QAChBD,GAAU,QACc,IAAjBV,GAA+C,SAAjBA,IAErCzB,EAAIoC,UAAYX,EAChBU,GAAU,GAGTJ,EAEE,CACH,IAAMH,EAAA,GAAA/wD,OAAe48C,EAAM+B,WAAA,KAAA3+C,OAAc48C,EAAM8B,eACzClhE,EdlRX,SACH2C,EACAyhD,EACA3yD,EACA6M,EACAilB,EACAjkB,GAEA,IAAMlB,EAAA,GAAAokB,OAAS4hC,EAAA,KAAA5hC,OAAS/wB,EAAA,KAAA+wB,OAAalkB,EAAA,MAC/BiB,EAAcF,EAAY/Z,IAAI8Y,GACpC,QAAoB,IAAhBmB,EAA2B,OAAOA,EAEtC,GAAIjB,GAAS,EAET,MAAO,GAGX,IAOiBqnE,EAPbt2E,EAAmB,GACjB29B,EAAyBo3B,EAAMpkD,MAAA,MAE/BwwC,EAAcnyC,EAAQ/Y,IAAImM,GAC1BtO,OAAgC,IAAhBqtD,EAA4B4T,EAAM/gE,OAAUib,EAAQkyC,EAAYppD,KAAQ,IACxFwlB,EAAY2W,QAAwC,IAAhBitB,GAA6BA,EAAYzD,MAAQ,IAE3F64B,EAAAja,EAAiB3+B,GAAA,IAAjB,IAAA44C,EAAAxhB,MAAAuhB,EAAAC,EAAAv2E,KAAAygC,MAA+B,KAAtBpM,EAAAiiD,EAAA/9E,MACDgb,EAAYzE,EAAYwE,EAAK+gB,EAAK5zB,MAAM,EAAGhB,KAAKG,IAAI,EAAG9L,IAAiBsO,EAAWmb,GACnF+jB,EAAgB7hC,KAAKsJ,IAAIsrB,EAAKrgC,OAAQF,GAC1C,GAAIyf,GAAatE,EAEbjP,EAAO7L,KAAKkgC,OACT,CACH,KAAO9gB,EAAYtE,GAAO,CACtB,IAAM0S,EAAa6qB,EACfl5B,EACA+gB,EACAplB,EACA7M,EACAmR,EACA+tB,EACA/jB,EACAtN,GAEEuD,EAAU6gB,EAAK5zB,MAAM,EAAGhB,KAAKG,IAAI,EAAG+hB,IAE1C0S,EAAOA,EAAK5zB,MAAM+S,EAAQxf,QAC1BgM,EAAO7L,KAAKqf,GACZD,EAAYzE,EAAYwE,EAAK+gB,EAAK5zB,MAAM,EAAGhB,KAAKG,IAAI,EAAG9L,IAAiBsO,EAAWmb,GACnF+jB,EAAgB7hC,KAAKsJ,IAAIsrB,EAAKrgC,OAAQF,EAC1C,CACAyf,EAAgB,GACZvT,EAAO7L,KAAKkgC,EAEpB,CACJ,CAEA,OAAA7mB,GAAA+oE,EAAAn0E,EAAAoL,EAAA,SAAA+oE,EAAAtmE,GAAA,QAAAjQ,EAASA,EAAOuE,KAAI,SAAC8vB,EAAG9gB,GAAA,OAAa,IAANA,EAAU8gB,EAAEswD,UAAYtwD,EAAErhB,MAAO,IAChEhD,EAAYha,IAAI+Y,EAAK/O,GACjBgQ,EAAYjY,KAAO,KAEnBiY,EAAY4S,OAAO5S,EAAYlV,OAAOkhC,OAAOzjC,OAE1CyH,CACX,CcoN0B4kF,CAAUtC,EAAKxqF,EAAMosF,EAAW5vD,EAAkC,EAA9By7C,EAAM2B,sBAA2B,MAAA4S,GAAAA,GAE7EO,EAAWZ,GAAY3B,EAAK4B,GAC5B9qE,EAAa22D,EAAM32D,WAAayrE,EAEhCC,EAAeD,EAAWzrE,GAAczI,EAAM3c,OAAS,GACvD+wF,EAAWD,EAAe/U,EAAM4B,oBAAsBp+D,EAExDwxE,IAEAzC,EAAIpH,OACJoH,EAAItC,KAAK5rD,EAAGwJ,EAAGtJ,EAAG/gB,GAClB+uE,EAAI0C,QAGR,IAEmBC,EAFbC,EAAWtnD,EAAIrqB,EAAI,EAAIuxE,EAAe,EACxCK,EAAQ1lF,KAAKG,IAAIg+B,EAAImyC,EAAM4B,oBAAqBuT,GAAAE,EAAA9oB,EACjC3rD,GAAA,IAAnB,IAAAy0E,EAAArwB,MAAAkwB,EAAAG,EAAAplF,KAAAygC,MAA0B,CAGtB,GAFAqjD,GAAmBxB,EADZ2C,EAAA1sF,MACuB67B,EAAG+wD,EAAO7wD,EAAGuwD,EAAU3B,EAAMnT,EAAOgU,IAClEoB,GAAS/rE,GACGwkB,EAAIrqB,EAAG,aAAA/F,GAAA43E,EAAAhjF,EAAAoL,EAAA,SAAA43E,EAAAn1E,GAAA,CAEnB80E,GACAzC,EAAIiB,SAAA,MA1BRO,GAAmBxB,EAAKxqF,EAAMs8B,EAAGwJ,EAAGtJ,EAAG/gB,EAAG2vE,EAAMnT,EAAOgU,GA8BvDU,IAEAnC,EAAIoC,UAAY,SAGhBH,IACAjC,EAAIkC,UAAY,YAoDrB,SAAAa,GACH/C,EACAvS,EACAj7D,EACAsf,EACAwJ,EACAhT,EACAC,EACAy6D,GAGF,IAFEC,EAAAxxF,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,IAAkB,GAClByxF,EAAAzxF,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,IAAkB,GAEZ0xF,EAAUrxD,EAAIxJ,EAAQ,EACtB86D,EAAU9nD,EAAI/S,EAAS,EAEvB86D,EAAgB96D,EAAS,KACzB+6D,EAAqB/6D,EAAS,EAE9Bg7D,EAAch7D,EAAS,IACvBi7D,EAAUrmF,KAAK4/C,IAAIkmC,EAAS36D,EAAQ,GAAKi7D,GAAepmF,KAAK4/C,IAAImmC,EAAS36D,EAAS,GAAKg7D,EAGxFE,EAAmBl7D,EAAS,KAC5Bm7D,EAAiBn7D,EAAS,EAC1Bo7D,EAAiBp7D,EAAS,IAEhC,OAAQ/V,QACC,EACDwtE,EAAI4D,YACJC,GACI7D,EACAmD,EAAUE,EAAgB,EAC1BD,EAAUC,EAAgB,EAC1BA,EACAA,EAbW,GAiBfrD,EAAIuB,UAAYyB,EAAcvV,EAAMG,YAAcH,EAAMO,WACxDgS,EAAIpD,OAEJoD,EAAI4D,YACJ5D,EAAI9+B,OAAOiiC,EAAUM,EAAmBl7D,EAAS,KAAM66D,EAAUK,EAAmBl7D,EAAS,MAC7Fy3D,EAAI8D,OAAOX,EAAUM,EAAmBl7D,EAAS,KAAM66D,EAAUK,EAAmBl7D,EAAS,MAC7Fy3D,EAAI8D,OAAOX,EAAUM,EAAmBl7D,EAAS,KAAM66D,EAAUK,EAAmBl7D,EAAS,MAE7Fy3D,EAAI+D,YAActW,EAAMe,OACxBwR,EAAIgE,SAAW,QACfhE,EAAIiE,QAAU,QACdjE,EAAIkE,UAAY,IAChBlE,EAAIlD,SACJ,WAGC3M,QACA,EACD6P,EAAI4D,YACJC,GACI7D,EACAmD,EAAUO,EACVN,EAAUM,EACVJ,EACAA,EAzCW,GA6CftD,EAAIkE,UAAY,EAChBlE,EAAI+D,YAAcP,EAAU/V,EAAMM,SAAWN,EAAMO,WACnDgS,EAAIlD,SACJ,WAGC1M,GACD4P,EAAI4D,YACJC,GACI7D,EACAmD,EAAUO,EACVN,EAAUM,EACVJ,EACAA,EA1DW,GA8DftD,EAAIuB,UAAYiC,EAAU/V,EAAMO,WAAaP,EAAMQ,UACnD+R,EAAIpD,OAEJoD,EAAI4D,YACJ5D,EAAI9+B,OAAOiiC,EAAUQ,EAAgBP,GACrCpD,EAAI8D,OAAOX,EAAUQ,EAAgBP,GACrCpD,EAAI+D,YAActW,EAAMe,OACxBwR,EAAIiE,QAAU,QACdjE,EAAIkE,UAAY,IAChBlE,EAAIlD,SACJ,cAIApQ,KAAY,CAiBjB,SAAAyX,GAA6B38E,GAChBA,EAARw4E,IACJoC,UAAY,QA4FpB,SAAAyB,GACI7D,EACAluD,EACAwJ,EACAhT,EACAC,EACA67D,GAEsB,kBAAXA,IACPA,EAAS,CAAE5xC,GAAI4xC,EAAQC,GAAID,EAAQ3rE,GAAI2rE,EAAQxzC,GAAIwzC,IAIvDA,EAAS,CACL5xC,GAAIr1C,KAAKsJ,IAAI29E,EAAO5xC,GAAIjqB,EAAS,EAAGD,EAAQ,GAC5C+7D,GAAIlnF,KAAKsJ,IAAI29E,EAAOC,GAAI97D,EAAS,EAAGD,EAAQ,GAC5CsoB,GAAIzzC,KAAKsJ,IAAI29E,EAAOxzC,GAAIroB,EAAS,EAAGD,EAAQ,GAC5C7P,GAAItb,KAAKsJ,IAAI29E,EAAO3rE,GAAI8P,EAAS,EAAGD,EAAQ,IAGhD03D,EAAI9+B,OAAOpvB,EAAIsyD,EAAO5xC,GAAIlX,GAC1B0kD,EAAIsE,MAAMxyD,EAAIxJ,EAAOgT,EAAGxJ,EAAIxJ,EAAOgT,EAAI8oD,EAAOC,GAAID,EAAOC,IACzDrE,EAAIsE,MAAMxyD,EAAIxJ,EAAOgT,EAAI/S,EAAQuJ,EAAIxJ,EAAQ87D,EAAO3rE,GAAI6iB,EAAI/S,EAAQ67D,EAAO3rE,IAC3EunE,EAAIsE,MAAMxyD,EAAGwJ,EAAI/S,EAAQuJ,EAAGwJ,EAAI/S,EAAS67D,EAAOxzC,GAAIwzC,EAAOxzC,IAC3DovC,EAAIsE,MAAMxyD,EAAGwJ,EAAGxJ,EAAIsyD,EAAO5xC,GAAIlX,EAAG8oD,EAAO5xC,GAAA,CAsE7C,IAAM+xC,GAEF,CAAC,EAwFE,SAAAC,GAA2Bh9E,EAAoBhS,GAClD,IAgBiBivF,EAhBT/G,EAA4Cl2E,EAA5Ck2E,KAAMjQ,EAAsCjmE,EAAtCimE,MAAOuS,EAA+Bx4E,EAA/Bw4E,IAAK0E,EAA0Bl9E,EAA1Bk9E,YAAahsE,EAAalR,EAAbkR,IAAK0qD,EAAQ57D,EAAR47D,IACpCtxC,EAAgB4rD,EAAhB5rD,EAAUE,EAAM0rD,EAAbp1D,MAEL23D,EAAA,GAAApvD,OAAU48C,EAAM8B,cAAA,KAAA1+C,OAAiB48C,EAAM+B,YACvC+S,EAAWZ,GAAY3B,EAAKC,GAC5BhvE,EAAI9T,KAAKsJ,IAAIi3E,EAAKn1D,OAAQprB,KAAKG,IAAI,GAA6C,EAAzCH,KAAKC,KAAKmlF,EAAW9U,EAAM32D,cAClEwkB,EAAIn+B,KAAKurD,MAAMg1B,EAAKpiD,GAAKoiD,EAAKn1D,OAAStX,GAAK,GAE5C0zE,EAAe1zE,EAAI,GAGrB2zE,EAAU9yD,EAAI27C,EAAM2B,sBAElByV,EApGV,SACIrW,EACAsW,EACAv8D,GAUA,IAAMw8D,EAAM5nF,KAAKC,KAAK8P,OAAO83E,kBAEvBlQ,EAAevsD,EAAS08D,GAIxBC,EAAc38D,EAASw8D,EAGvBpO,EAAA,GAA8CoO,EAE9CzyF,EAAA,GAAAu+B,OAAS29C,EAAA,KAAA39C,OAAUi0D,EAAA,KAAAj0D,OAAUk0D,EAAA,KAAAl0D,OAAOtI,GAC1C,QAA4B,IAAxBg8D,GAAejyF,GACf,MAAO,CACH0+C,GAAIuzC,GAAejyF,GACnBi2B,OAAQ28D,EACR58D,MAAOquD,EACPwO,YAdY,EAceJ,EAC3BK,UAXUC,GAWaN,EACvBO,QAlBW,EAkBWP,EACtBA,IAAAA,GAIR,IAAMQ,EAASp4E,SAASC,cAAc,UAChC4yE,EAAMuF,EAAOC,WAAW,MAE9B,GAAY,OAARxF,EAAc,OAAO,KAEzBuF,EAAOj9D,MAAQquD,EACf4O,EAAOh9D,OAAS28D,EAEhBlF,EAAIyF,MAAMV,EAAKA,GAEfR,GAAejyF,GAAOizF,EAEtB,IAAMG,EAAevoF,KAAKsJ,IAhCT,EAgCuBouE,EAAiBC,EAAe,GA0BxE,OAzBAkL,EAAI4D,YACJC,GAAY7D,EArCO,IAOCqF,GA8BkCvQ,EAAc4Q,GAEpE1F,EAAI2F,YAAc,wBAClB3F,EAAIiF,WAAa,EACjBjF,EAAIuB,UAAY/S,EAChBwR,EAAIpD,OAEJoD,EAAI2F,YAAc,wBAClB3F,EAAI4F,cAAgB,EACpB5F,EAAIiF,WAAa,EACjBjF,EAAIuB,UAAY/S,EAChBwR,EAAIpD,OAEJoD,EAAI4F,cAAgB,EACpB5F,EAAIiF,WAAa,EACjBjF,EAAIiF,WAAa,EAEjBjF,EAAI4D,YACJC,GAAY7D,EAAKiF,IAAkBA,IAhDfI,GAgD8CvQ,EAAc4Q,GAEhF1F,EAAI+D,YAAce,EAClB9E,EAAIkE,UAAY,EAChBlE,EAAIlD,SAEG,CACH9rC,GAAIu0C,EACJh9D,OAAQ28D,EACR58D,MAAOquD,EACPyO,UA3DcC,GA2DSN,EACvBI,YA/Da,EA+DWJ,EACxBO,QAnEe,EAmEOP,EACtBA,IAAAA,EAAA,CAkBYc,CAA2BpY,EAAMe,OAAQf,EAAMyB,gBAAiBj+D,GAE1E60E,EAA8C,GAAAC,EAAA/rB,EACnCxkE,GAAA,IAAjB,IAAAuwF,EAAAtzB,MAAAgyB,EAAAsB,EAAAroF,KAAAygC,MAAuB,KAAZ6S,EAAAyzC,EAAAxuF,MACP,GAAI2uF,EAAU9yD,EAAIE,EAAG,MACrB,IACMg0D,EADcjG,GAAkB/uC,EAAG/lB,KAAM+0D,EAAKC,GACtB33D,MAC1B29D,EAAW,EACf,QAAe,IAAXj1C,EAAGn4B,SAES,IADA6rE,EAAYwB,eAAel1C,EAAGn4B,IAAKH,EAAK0qD,KAEhD6iB,EAAWtB,EAAe,EAAI,GAGtC,IAAMwB,EAAcH,EAAYC,EAAWG,GAC3CN,EAAYj0F,KAAK,CACbigC,EAAG8yD,EACHt8D,MAAO69D,IAGXvB,GAAWuB,EAvKA,CAuKc,QAAAj7E,GAAA66E,EAAAjmF,EAAAoL,EAAA,SAAA66E,EAAAp4E,GAAA,CAG7B,GAAgB,OAAZk3E,EAAkB,CAClB,IAGuBwB,EAHfr1C,EAA4D6zC,EAA5D7zC,GAAIzoB,EAAwDs8D,EAAxDt8D,OAAQ48D,EAAgDN,EAAhDM,YAAaC,EAAmCP,EAAnCO,UAAW98D,EAAwBu8D,EAAxBv8D,MAAOy8D,EAAiBF,EAAjBE,IAC7CuB,EAAiBlB,EAAYL,EAC7BwB,EAF8D1B,EAAZS,QAEzBP,EAAAyB,EAAAxsB,EACR8rB,GAAA,IAAvB,IAAAU,EAAA/zB,MAAA4zB,EAAAG,EAAA9oF,KAAAygC,MAAoC,KAAzBsoD,EAAAJ,EAAApwF,MACDywF,EAAKvpF,KAAKurD,MAAM+9B,EAAS30D,GACzB60D,EAAKxpF,KAAKurD,MAAM+9B,EAASn+D,OAC/B03D,EAAI4G,uBAAwB,EAE5B5G,EAAI6G,UAAU71C,EAAI,EAAG,EAAGo0C,EAAW78D,EAAQm+D,EAAKH,EAAcjrD,EAAGgrD,EAAgBr1E,GAC7Ew1E,EAASn+D,MAAoB,EAAZ88D,GACjBpF,EAAI6G,UACA71C,EACAo0C,EACA,EACAD,EACA58D,EACAm+D,GAAMJ,EAAiBC,GACvBjrD,EACAqrD,EAAuC,GAAjCL,EAAiBC,GACvBt1E,GAER+uE,EAAI6G,UACA71C,EACA1oB,EAAQ88D,EACR,EACAA,EACA78D,EACAm+D,EAAKC,GAAML,EAAiBC,GAC5BjrD,EACAgrD,EACAr1E,GAEJ+uE,EAAI4G,uBAAwB,SAAA17E,GAAAs7E,EAAA1mF,EAAAoL,EAAA,SAAAs7E,EAAA74E,GAAA,EAIpCqyE,EAAI4D,YAAA,IAEoCkD,EAFpCC,EAAA/sB,EAEwB8rB,EAAYzyF,WAAA,IAAxC,IAAA0zF,EAAAt0B,MAAAq0B,EAAAC,EAAArpF,KAAAygC,MAAmD,KAAA6oD,GAAA34B,EAAAA,EAAAA,GAAAy4B,EAAA7wF,MAAA,GAAvCzE,EAAAw1F,EAAA,GAAGP,EAAAO,EAAA,GACLt5E,EAAIlY,EAAKhE,GACXy1F,EAAQR,EAAS30D,EApEP,EAsEd,QAAc,IAAVpkB,EAAEmL,IAAmB,CACrB,IAAMA,EAAM6rE,EAAYwB,eAAex4E,EAAEmL,IAAKH,EAAK0qD,GACnD,QAAY,IAARvqD,EAAmB,CACnB,IAAMquE,EAAUvC,EAAe,EAC3BwC,EAAO,EACPC,EAAO,EACPC,EAAWxuE,EAAIyP,MACfg/D,EAAYzuE,EAAI0P,OAEhB8+D,EAAWC,GAEXH,IAASE,EAAWC,GAAa,EACjCD,EAAWC,GACJA,EAAYD,IAEnBD,IAASE,EAAYD,GAAY,EACjCC,EAAYD,GAEhBrH,EAAI4D,YACJC,GAAY7D,EAAKiH,EAAO3rD,EAAIrqB,EAAI,EAAIi2E,EAAU,EAAGA,EAASA,EAAS,GACnElH,EAAIpH,OACJoH,EAAI0C,OACJ1C,EAAI6G,UAAUhuE,EAAKsuE,EAAMC,EAAMC,EAAUC,EAAWL,EAAO3rD,EAAIrqB,EAAI,EAAIi2E,EAAU,EAAGA,EAASA,GAC7FlH,EAAIiB,UAEJgG,GAASC,EAAU,GAI3BlH,EAAI4D,YACJ5D,EAAIuB,UAAY9T,EAAMS,WACtB8R,EAAI0B,SAASh0E,EAAEud,KAAMg8D,EAAO3rD,EAAIrqB,EAAI,EAAIovE,GAAoBL,EAAKvS,GAAA,QAAAviE,GAAA67E,EAAAjnF,EAAAoL,EAAA,SAAA67E,EAAAp5E,GAAA,EA4IlE,SAAA45E,GACH7uE,EACA0qD,EACA96C,EACAC,EACAi/D,EACAC,EACA1I,EACA2I,EACAC,EACAC,EACAzkB,EACA0kB,EACAC,EACAC,EACAC,GAEA,IAAM5xF,EAAoB,CACtB07B,EAAG,EACHwJ,EAAGmsD,EAAoBG,EACvBt/D,MAAO,EACPC,OAAQ,GAGN0/D,EAAeR,EAAoBD,EAEzC,GAAI9uE,GAAOmvE,EAAe,CACtB,IAAMK,EAAMnJ,EAAcrmE,GAAO,EAAI,EAC/ByvE,EAAcvJ,GAAemJ,GACnC3xF,EAAO07B,GAAKq2D,EAAcR,EAC1B,IAAK,IAAIn2F,EAAIutF,EAAavtF,IAAMknB,EAAKlnB,GAAK02F,EACtC9xF,EAAO07B,GAAKi2D,EAAsB,IAARG,EAAY12F,EAAIA,EAAI,GAAG82B,MAAQ4/D,CAAA,MAG7D,IAAK,IAAI12F,EAAI,EAAGA,EAAIknB,EAAKlnB,IACrB4E,EAAO07B,GAAKi2D,EAAcv2F,GAAG82B,MAKrC,GAFAlyB,EAAOkyB,MAAQy/D,EAAcrvE,GAAK4P,MAAQ,GAE7B,IAAT86C,EACAhtE,EAAOklC,EAAIksD,EACXpxF,EAAOmyB,OAAS0/D,OAAA,IACA,IAAT7kB,EAAY,CACnBhtE,EAAOklC,EAAI,EACXllC,EAAOmyB,OAASi/D,EAKhB,IAHA,IAAIjqF,EAAQmb,EACN0vE,EAAQL,EAAcrvE,GAAK0vE,MAC3BzJ,EAASoJ,EAAcrvE,GAAKimE,OAE9BphF,EAAQ,GACRigF,GAAauK,EAAcxqF,EAAQ,GAAG6qF,MAAOA,IAC7CL,EAAcxqF,EAAQ,GAAGohF,SAAWA,GACtC,CACE,IAAMhyE,EAAIo7E,EAAcxqF,EAAQ,GAChCnH,EAAO07B,GAAKnlB,EAAE2b,MACdlyB,EAAOkyB,OAAS3b,EAAE2b,MAClB/qB,GAAA,CAIJ,IADA,IAAIC,EAAMkb,EAENlb,EAAM,EAAIuqF,EAAcr2F,QACxB8rF,GAAauK,EAAcvqF,EAAM,GAAG4qF,MAAOA,IAC3CL,EAAcvqF,EAAM,GAAGmhF,SAAWA,GACpC,CACE,IAAMhyE,EAAIo7E,EAAcvqF,EAAM,GAC9BpH,EAAOkyB,OAAS3b,EAAE2b,MAClB9qB,GAAA,CAEJ,IAAKmhF,EAAQ,CACT,IAAMwJ,EAAcvJ,GAAemJ,GAC7BrF,EAAOtsF,EAAO07B,EAAIq2D,EACpBzF,EAAO,IACPtsF,EAAO07B,GAAK4wD,EACZtsF,EAAOkyB,OAASo6D,GAGhBtsF,EAAO07B,EAAI17B,EAAOkyB,MAAQA,IAC1BlyB,EAAOkyB,MAAQA,EAAQlyB,EAAO07B,EAAA,UAG/Bg2D,GAAiB1kB,IAAQD,EAAO,EAAG,CAC1C,IAAMklB,EAAoC,kBAAdL,EAAyBA,EAAYA,EAAU5kB,GAC3EhtE,EAAOklC,EAAI/S,EAAS8/D,EACpBjyF,EAAOmyB,OAAS8/D,CAAA,KACb,CACH,IAAMH,EAAMR,EAActkB,GAAO,EAAI,EACrC,GAAyB,kBAAd4kB,EAAwB,CAC/B,IAAM1rC,EAAQ8mB,EAAMskB,EACpBtxF,EAAOklC,GAAKghB,EAAQ0rC,CAAA,MAEpB,IAAK,IAAI3sD,EAAIqsD,EAAarsD,IAAM+nC,EAAK/nC,GAAK6sD,EACtC9xF,EAAOklC,GAAK0sD,EAAU3sD,GAAK6sD,EAGnC9xF,EAAOmyB,QAA+B,kBAAdy/D,EAAyBA,EAAYA,EAAU5kB,IAAQ,EAGnF,OAAOhtE,CAAA,CChwCX,IAAMkyF,GAAA,8EAmDAC,GAAY,SAAC9oF,GACf,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,0JAAAz3D,OACwI6E,EAAA,wVAAA7E,OAC2LmF,EAAA,oVAAAnF,OACJmF,EAAA,oBAqOhUyyD,GAAU,CACnBC,YA9RgB,SAACjpF,GACjB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QAEjB,MAAO,SAAP33D,OACEy3D,GAAA,0DAAAz3D,OAAiE6E,EAAA,8SAAA7E,OAA+SmF,EAAA,cA0RlX2yD,aAhRiB,SAAClpF,GAClB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,oJAAAz3D,OACkI6E,EAAA,8uCAAA7E,OACulCmF,EAAA,kBA4QnuC4yD,WAxRe,SAACnpF,GAChB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,0DAAAz3D,OAAiE6E,EAAA,6YAAA7E,OAA8YmF,EAAA,cAqRjd6yD,aAzQiB,SAACppF,GAClB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,4JAAAz3D,OAC0I6E,EAAA,+HAAA7E,OAChCmF,EAAA,gBAqQpH8yD,cAjQkB,SAACrpF,GACnB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,uMAAAz3D,OAGE6E,EAAA,ydAAA7E,OAMAmF,EAAA,sBAsPZ+yD,eA5NmBR,GA6NnBS,eA3NmB,SAACvpF,GACpB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,4JAAAz3D,OAC0I6E,EAAA,+JAAA7E,OACAmF,EAAA,gBAuNpJizD,YAnNgB,SAACxpF,GACjB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,yKAAAz3D,OAC+JmF,EAAA,uIAAAnF,OACrCmF,EAAA,+IAAAnF,OACQmF,EAAA,uJAAAnF,OACQ6E,EAAA,4GAAA7E,OAC3CmF,EAAA,2GAAAnF,OACDmF,EAAA,+IAAAnF,OACoCmF,EAAA,kBAyMpIkzD,YArMgB,SAACzpF,GACjB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,4JAAAz3D,OAC0I6E,EAAA,qLAAA7E,OACsBmF,EAAA,gOAAAnF,OAC2CmF,EAAA,gBAgMrNuyD,UAAAA,GACAY,YA7LgB,SAAC1pF,GACjB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,sBAAAz3D,OACYmF,EAAA,ycAAAnF,OAC8Z6E,EAAA,kBAwL5a0zD,eApLmB,SAAC3pF,GACpB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,oJAAAz3D,OAC0I6E,EAAA,qIAAA7E,OAClBmF,EAAA,kBA+K1HqzD,WA3Ke,SAAC5pF,GAChB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,4JAAAz3D,OAC0I6E,EAAA,2NAAA7E,OAC4DmF,EAAA,gBAuKhNszD,WAnKe,SAAC7pF,GAChB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,oJAAAz3D,OAC0I6E,EAAA,+IAAA7E,OACRmF,EAAA,kEAAAnF,OAC7EmF,EAAA,kBA6JvDuzD,YAzJgB,SAAC9pF,GACjB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,8DAAAz3D,OAC4C6E,EAAA,yLAAA7E,OACwHmF,EAAA,yQAAAnF,OACgFmF,EAAA,gBAoJ9PwzD,gBAhJoB,SAAC/pF,GACrB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,+DAAAz3D,OACqD6E,EAAA,kEAAA7E,OACA6E,EAAA,yHAAA7E,OACuDmF,EAAA,kBA0I9GyzD,iBAtIqB,SAAChqF,GACtB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,oBAAAz3D,OACEmF,EAAA,m8BAAAnF,OAC05B6E,EAAA,gBAkIt6Bg0D,kBA9HsB,SAACjqF,GACvB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,gEAAAz3D,OACsD6E,EAAA,ofAAA7E,OACibmF,EAAA,kBAyHze2zD,aArHiB,SAAClqF,GAClB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,gEAAAz3D,OACsD6E,EAAA,wcAAA7E,OACqYmF,EAAA,kBAgH7b4zD,mBA5GuB,SAACnqF,GACxB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,8DAAAz3D,OAC4C6E,EAAA,2OAAA7E,OAC0KmF,EAAA,gBAwGhO6zD,WApGe,SAACpqF,GAChB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,8DAAAz3D,OAC4C6E,EAAA,uIAAA7E,OACsEmF,EAAA,uSAAAnF,OACgKmF,EAAA,8JAAAnF,OACzImF,EAAA,wNAAAnF,OAC0DmF,EAAA,gBA6F7M8zD,aAzFiB,SAACrqF,GAClB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,oJAAAz3D,OAC0I6E,EAAA,6eAAA7E,OACsVmF,EAAA,kBAoFle+zD,kBAhFsB,SAACtqF,GACvB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,8DAAAz3D,OAC4C6E,EAAA,6OAAA7E,OAC4KmF,EAAA,gBA4ElOg0D,kBAxEsB,SAACvqF,GACvB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,SAAP33D,OACEy3D,GAAA,gEAAAz3D,OACsD6E,EAAA,sMAAA7E,OACmImF,EAAA,kBAmE3Li0D,kBA/DsB,SAACxqF,GACvB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,4JAAAz3D,OAC0I6E,EAAA,wPAAA7E,OACyFmF,EAAA,gbAAAnF,OACwLmF,EAAA,gBA0Drak0D,YAtDgB,SAACzqF,GACjB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,8DAAAz3D,OAC4C6E,EAAA,0XAAA7E,OACyTmF,EAAA,gBAkD/Wm0D,gBA9CoB,SAAC1qF,GACrB,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,8SAAP33D,OAEsN6E,EAAA,cAAA7E,OAAemF,EAAA,mCA0CrOo0D,uBAtC2B,SAAC3qF,GAC5B,IAAMu2B,EAAKv2B,EAAMi9E,QACXhnD,EAAKj2B,EAAM+oF,QACjB,MAAO,6SAAP33D,OAEqN6E,EAAA,cAAA7E,OAAemF,EAAA,qCAkCpOq0D,WA7Pe,SAAC5qF,GAChB,IAAMi2B,EAAKj2B,EAAM+oF,QACjB,MAAO,GAAP33D,OAAUy3D,GAAA,wBAAAz3D,OACM6E,EAAA,yDAAA7E,OACA6E,EAAA,8PAAA7E,OACuK6E,EAAA,qBC9CpL,IAAA40D,GAAA,WAKH,SAAAA,EAAYC,EAA4CC,GAAuBp0C,EAAA,KAAAk0C,GAAvB,KAAAE,UAAAA,EAJhD,KAAAC,UAA4C,IAAIt2F,IAEhD,KAAAu2F,SAAW,EAGfn3F,KAAKg3F,YAAA3vC,EAAAA,EAAA,GACE6tC,IACA8B,EAAA,CAqDmB,OArDnBj0C,EAAAg0C,EAAA,EAAAh4F,IAAA,aAAA2D,MAIJ,SACH00F,EACAC,EACA5K,EACAluD,EACAwJ,EACA7lC,EACAg4E,GAEF,IAAAtoB,EAAA,KADE0lC,EAAAp5F,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAgB,EAEhBq5F,EAjCR,SAAmBF,EAAwBnd,GACvC,MAAgB,WAAZmd,EACO,CAACnd,EAAMU,aAAcV,EAAMW,cACf,aAAZwc,EACA,CAAC,QAASnd,EAAMG,aAEhB,CAACH,EAAMG,YAAaH,EAAMiB,SAAA,CA2BNqc,CAAUH,EAASnd,GAAAud,GAAA38B,EAAAA,EAAAA,GAAAy8B,EAAA,GAAvCtC,EAAAwC,EAAA,GAAStO,EAAAsO,EAAA,GACVC,EAAQx1F,EAAO0H,KAAKC,KAAK8P,OAAO83E,kBAChC1yF,EAAA,GAAAu+B,OAAS23D,EAAA,KAAA33D,OAAW6rD,EAAA,KAAA7rD,OAAWo6D,EAAA,KAAAp6D,OAAS85D,GAE1CO,EAAe33F,KAAKk3F,UAAU92F,IAAIrB,GACtC,QAAqB,IAAjB44F,EAA4B,CAC5B,IAAMC,EAAW53F,KAAKg3F,YAAYI,GAElC,QAAiB,IAAbQ,EAAwB,OAG5B,IAAMC,GADNF,EAAe/9E,SAASC,cAAc,WACPo4E,WAAW,MAE1C,GAAkB,OAAd4F,EAAoB,OAExB,IAAMC,EAAY,IAAIrZ,MACtBqZ,EAAUx+C,IAAA,oCAAAhc,OAA0CjkB,mBAAmBu+E,EAAS,CAAEzO,QAAAA,EAAS8L,QAAAA,MAC3Fj1F,KAAKk3F,UAAU/2F,IAAIpB,EAAK44F,GACxB,IAAMz3B,EAAqC43B,EAAUxP,SAErD,QAAgB,IAAZpoB,EAAuB,OAE3BlgE,KAAKm3F,WACLj3B,EACK5/B,MAAK,WACFu3D,EAAUvE,UAAUwE,EAAW,EAAG,EAAGJ,EAAOA,EAAA,IAE/CK,SAAQ,WACLnmC,EAAKulC,WACiB,IAAlBvlC,EAAKulC,UACLvlC,EAAKqlC,WAAA,SAIbK,EAAQ,IACR7K,EAAIuL,YAAcV,GAEtB7K,EAAI6G,UAAUqE,EAAc,EAAG,EAAGD,EAAOA,EAAOn5D,EAAGwJ,EAAG7lC,EAAMA,GACxDo1F,EAAQ,IACR7K,EAAIuL,YAAc,OAAAjB,CAAA,CA7D3B,GCpBDvrF,GAEF,CAAC,EAEDysF,GAA6B,KAa1B,SAAAC,GAAqBhhE,GAExB,IAAMihE,EAAkBjhE,EAAMnc,cAAcoC,OAE5C,QAA+B,IAA3B3R,GAAM2sF,GAAgC,OAAO3sF,GAAM2sF,GAEvDF,GAAMA,IAjBV,WACI,IAAM99E,EAAIP,SAASC,cAAc,OAMjC,OALAM,EAAEuK,MAAMlB,QAAU,IAClBrJ,EAAEuK,MAAM6rC,cAAgB,OACxBp2C,EAAEuK,MAAM4hC,SAAW,QAEnB1sC,SAASwF,KAAKg5E,OAAOj+E,GACdA,CAAA,CAUMk+E,GAEbJ,GAAIvzE,MAAMwS,MAAQ,OAClB+gE,GAAIvzE,MAAMwS,MAAQihE,EAClB,IAAMG,EAAUrhC,iBAAiBghC,IAAK/gE,MAEtC+gE,GAAIvzE,MAAMwS,MAAQ,OAClB+gE,GAAIvzE,MAAMwS,MAAQihE,EAClB,IAAMI,EAAgBthC,iBAAiBghC,IAAK/gE,MAE5C,GAAIqhE,IAAkBD,EAAS,MAAM,IAAI1gF,MAAM,yBAE/C,IAAM/U,EAAS01F,EAEV7vF,QAAQ,WAAY,IACpBoS,MAAM,KACNpM,IAAIwyD,OAAOs3B,YAOhB,OALI31F,EAAO1E,OAAS,GAChB0E,EAAOvE,KAAK,GAGhBkN,GAAM2sF,GAAmBt1F,EAClBA,CAAA,CAIJ,SAAA41F,GAAmBvhE,EAAeogE,GACrC,IAAAoB,EAAkBR,GAAYhhE,GAAAyhE,GAAA79B,EAAAA,EAAAA,GAAA49B,EAAA,GAAvB5wD,EAAA6wD,EAAA,GAAGt+E,EAAAs+E,EAAA,GAAGx/E,EAAAw/E,EAAA,GACb,MAAO,QAAPr7D,OAAewK,EAAA,MAAAxK,OAAMjjB,EAAA,MAAAijB,OAAMnkB,EAAA,MAAAmkB,OAAMg6D,EAAA,KAI9B,SAAAsB,GAAe1hE,EAAe2hE,GACjC,QAAmB,IAAfA,EAA0B,OAAO3hE,EACrC,IAAA4hE,EAAqBZ,GAAYhhE,GAAA6hE,GAAAj+B,EAAAA,EAAAA,GAAAg+B,EAAA,GAA1BhxD,EAAAixD,EAAA,GAAG1+E,EAAA0+E,EAAA,GAAG5/E,EAAA4/E,EAAA,GAAG7/E,EAAA6/E,EAAA,GAChB,GAAU,IAAN7/E,EAAS,OAAOge,EACpB,IAAA8hE,EAAyBd,GAAYW,GAAAI,GAAAn+B,EAAAA,EAAAA,GAAAk+B,EAAA,GAA9B9zE,EAAA+zE,EAAA,GAAI92D,EAAA82D,EAAA,GAAIp5E,EAAAo5E,EAAA,GAAI95D,EAAA85D,EAAA,GACbC,EAAKhgF,EAAIimB,GAAM,EAAIjmB,GAGnBigF,GAAMjgF,EAAImB,EAAI8kB,EAAKgD,GAAM,EAAIjpB,IAAMggF,EACnCE,GAAMlgF,EAAIC,EAAIgmB,EAAKtf,GAAM,EAAI3G,IAAMggF,EACzC,MAAO,QAAP57D,QAHYpkB,EAAI4uB,EAAI3I,EAAKja,GAAM,EAAIhM,IAAMggF,EAG1B,MAAA57D,OAAO67D,EAAA,MAAA77D,OAAO87D,EAAA,MAAA97D,OAAO47D,EAAA,KCOxC,IAAMG,GAA6B,CAC/Btb,KAAMvB,GAAawB,QACnBsb,cAAc,GAiBX,SAAAC,GACH9M,EACA5c,EACAgG,EACA1wD,EACAoZ,EACAwJ,EACAtJ,EACA/gB,EACA+xE,EACAvV,EACAsf,EACArI,EACAsI,EACAC,EACAC,EACAlL,EACAmL,EACA/L,EACAgM,EACAhW,GAEA,IAAI6L,EACAC,OACc,IAAdgK,GAA2BA,EAAU,GAAG,KAAOx0E,GAAOw0E,EAAU,GAAG,KAAO9pB,IAC1E6f,EAASiK,EAAU,GAAG,GACtBhK,EAASgK,EAAU,GAAG,IAE1B,IAAI92F,OAAiC,EAC/BoR,EAA8B,CAChCw4E,IAAAA,EACAvS,MAAAA,EACA/0D,IAAAA,EACA0qD,IAAAA,EACAgG,KAAAA,EACAsU,KAAM,CAAE5rD,EAAAA,EAAGwJ,EAAAA,EAAGhT,MAAO0J,EAAGzJ,OAAQtX,GAChC+xE,YAAAA,EACAiK,YAAAA,EACAhK,OAAAA,EACAC,OAAAA,EACAwB,YAAAA,EACAsI,cAAAA,EACAhL,cAAAA,EACAzL,sBAAuB,WACnB8W,GAAY,IAGhBA,GAAY,EACVC,EJ0KH,SACH9lF,EACA+lF,EACAJ,EACA/L,EACAoM,GAEA,IAAQxN,EAAqBx4E,EAArBw4E,IAAKtC,EAAgBl2E,EAAhBk2E,KAAMjQ,EAAUjmE,EAAVimE,MACfggB,EAAWh5B,OAAOi5B,iBAEtB,QAAmB,IAAfH,IACAE,EAAWN,EAAYI,GAFV,IAIY,CACrB,IAAMI,EAAO,EAAIF,EALR,IAMTzN,EAAIuL,YAAcoC,EAClB3N,EAAIuB,UAAY9T,EAAMsB,eACtBiR,EAAI4N,SAASlQ,EAAK5rD,EAAG4rD,EAAKpiD,EAAGoiD,EAAKp1D,MAAOo1D,EAAKn1D,QAC9Cy3D,EAAIuL,YAAc,OACD,IAAbnK,IACAA,EAASG,UAAY9T,EAAMsB,eAAA,CAOvC,OAFAye,IAEOC,EAlBU,GAkBC,CIrMAI,CAAmBrmF,EAAM4hE,EAAK0kB,YAAaX,EAAW/L,GAAU,WA9ItF,IAAA1T,EAAAC,EAgJQ,MADciE,GAAgBxI,KAAiE,KAAjD,MAAA2jB,OAAA,EAAAA,EAAiBvlF,KACnD,CACR,IAAM6zB,EAAI+7C,EAAgBhO,GAC1B,QAAU,IAAN/tC,EAAiB,EACb,MAAA+lD,OAAA,EAAAA,EAAU3kB,YAAaphC,IACvB,OAAAqyC,EAAA,MAAA0T,OAAA,EAAAA,EAAU2M,SAAVrgB,EAAAn7E,KAAA6uF,EAAmB55E,GACnB45E,OAAW,GAEf,IAAM4M,EAAoB,OAAArgB,EAAAtyC,EAAE4yD,eAAF,EAAAtgB,EAAAp7E,KAAA8oC,EAAa7zB,EAAM45E,GAC7C/lD,EAAEmyD,KAAKhmF,EAAM4hE,GACbhzE,EAAS,CACL23F,OAAQ,MAAAC,OAAA,EAAAA,EAAmBD,OAC3BxM,UAAW,MAAAyM,OAAA,EAAAA,EAAmBzM,UAC9BtB,KAAM,MAAA+N,OAAA,EAAAA,EAAmB/N,KACzBxjB,SAAUphC,EAAA,MAM1B,OADIiyD,GAAaD,KAAW,MAAAD,GAAAA,EAAU,CAAC10E,EAAK0qD,KACrChtE,CAAA,CA4MX,SAAA83F,GACIlO,EACAmO,EACAzG,EACAC,EACAC,EACAt/D,EACAC,EACA6lE,EACAC,EACA7G,EACAC,EACA6G,EACAC,EACAC,EACAC,EACAtrB,EACAsK,GAEF,IAlYFC,EAAAC,EAAA+gB,EAiYIC,EAAAl9F,UAAAC,OAAA,SAAAkG,IAAAnG,UAAA,KAAAA,UAAA,IAEA,QAAc,IAAV48F,EAAqB,CACrBrO,EAAI4D,YACJ5D,EAAIpH,OACJoH,EAAItC,KAAK,EAAG,EAAGp1D,EAAOC,GAAA,IACHqmE,EADGC,EAAA70B,EACHq0B,GAAA,IAAnB,IAAAQ,EAAAp8B,MAAAm8B,EAAAC,EAAAnxF,KAAAygC,MAA0B,KAAf+/C,EAAA0Q,EAAA34F,MACP+pF,EAAItC,KAAKQ,EAAKpsD,EAAI,EAAGosD,EAAK5iD,EAAI,EAAG4iD,EAAK51D,MAAQ,EAAG41D,EAAK31D,OAAS,UAAArd,IAAA2jF,EAAA/uF,EAAAoL,GAAA,SAAA2jF,EAAAlhF,GAAA,CAEnEqyE,EAAI0C,KAAK,WAEb,IAAMoM,EAAS,OAAAphB,EAAAD,EAAMwB,uBAANvB,EAA+BD,EAAMuB,YAC9C+f,EAASthB,EAAMuB,YAEjBggB,EAAO,EACPC,EAAO3mE,EACP4mE,EAAO,EACPC,EAAO5mE,EAEX,QAAoB,IAAhB6lE,GAA6BA,EAAY18F,OAAS,EAAG,CACrDs9F,EAAOv6B,OAAOi5B,iBACdwB,EAAOz6B,OAAOi5B,iBACduB,EAAOx6B,OAAO26B,iBACdD,EAAO16B,OAAO26B,iBAAA,IACEC,EADFC,EAAAt1B,EACEo0B,GAAA,IAAhB,IAAAkB,EAAA78B,MAAA48B,EAAAC,EAAA5xF,KAAAygC,MAA6B,KAAlB9C,EAAAg0D,EAAAp5F,MACP+4F,EAAO7xF,KAAKsJ,IAAIuoF,EAAM3zD,EAAEvJ,EAAI,GAC5Bm9D,EAAO9xF,KAAKG,IAAI2xF,EAAM5zD,EAAEvJ,EAAIuJ,EAAE/S,MAAQ,GACtC4mE,EAAO/xF,KAAKsJ,IAAIyoF,EAAM7zD,EAAEC,EAAI,GAC5B6zD,EAAOhyF,KAAKG,IAAI6xF,EAAM9zD,EAAEC,EAAID,EAAE9S,OAAS,UAAArd,IAAAokF,EAAAxvF,EAAAoL,GAAA,SAAAokF,EAAA3hF,GAAA,EAI/C,IAAM4hF,EAA8E,GAEpFvP,EAAI4D,YAIJ,IADA,IAAI9xD,EAAI,GACCx+B,EAAQ,EAAGA,EAAQ66F,EAAcz8F,OAAQ4B,IAAS,CACvD,IAAMqZ,EAAIwhF,EAAc76F,GACxB,GAAgB,IAAZqZ,EAAE2b,MAAN,CACAwJ,GAAKnlB,EAAE2b,MACP,IAAM02D,EAAKryE,EAAEgyE,OAAS7sD,EAAIA,EAAI61D,EAC1B3I,GAAMgQ,GAAQhQ,GAAMiQ,GAAQT,EAAel7F,EAAQ,IACnDi8F,EAAO19F,KAAK,CACR29F,GAAIxQ,EACJyQ,GAAItyF,KAAKG,IAAIkqF,EAAmB0H,GAChCQ,GAAI1Q,EACJ2Q,GAAIxyF,KAAKsJ,IAAI8hB,EAAQ4mE,GACrB1kE,MAAOskE,GATY,CASZ,CAKnB,IAAM1G,EAAeiG,EAAanrB,EAAO,GACnCysB,EAAarnE,EAAS8/D,EAAe,GACrCP,EAAoC,WAApB2G,EAKtB,GAJI3G,GACAyH,EAAO19F,KAAK,CAAE29F,GAAIR,EAAMS,GAAIG,EAAYF,GAAIT,EAAMU,GAAIC,EAAYnlE,MAAOqkE,KAGxD,IAAjBH,EAKA,IAHA,IAAIrzD,EAAImsD,EAAoB,GACxBrkB,EAAMskB,EACJhuE,EAASouE,EAAgBv/D,EAAS8/D,EAAe9/D,EAChD+S,EAAIssD,GAAcluE,GAAQ,CAC7B,IAAMm2E,EAAKv0D,EAAIssD,EAEf,GAAIiI,GAAMX,GAAQW,GAAMV,EAAO,KAAOrH,GAAiB1kB,IAAQD,EAAO,GAAKhmE,KAAK4/C,IAAI8yC,EAAKD,GAAc,GAAI,CACvG,IAAME,EAAW,MAAAvB,OAAA,EAAAA,EAAsBnrB,GACvCmsB,EAAO19F,KAAK,CACR29F,GAAIR,EACJS,GAAII,EACJH,GAAIT,EACJU,GAAIE,EACJplE,MAAO,OAAAikE,EAAA,OAAA/gB,EAAA,MAAAmiB,OAAA,EAAAA,EAAU7gB,uBAAVtB,EAAmC,MAAAmiB,OAAA,EAAAA,EAAU9gB,aAA7C0f,EAA4DI,GAAA,CAI3ExzD,GAAKgzD,EAAalrB,GAClBA,GAAA,CAKR,IADA,IAAM2sB,EAASrnF,EAAQ6mF,GAAQ,SAAA7tB,GAAA,OAAQA,EAAKj3C,KAAA,IAC5CulE,EAAA,EAAA50B,EAAgBjpE,OAAOqG,KAAKu3F,GAAAC,EAAA50B,EAAA1pE,OAAAs+F,IAAS,CAArC,IAAWpiF,EAAAwtD,EAAA40B,GACPhQ,EAAI+D,YAAcn2E,EAAA,IACQqiF,EADRC,EAAAl2B,EACC+1B,EAAOniF,IAAA,IAA1B,IAAAsiF,EAAAz9B,MAAAw9B,EAAAC,EAAAxyF,KAAAygC,MAA8B,KAAnBujC,GAAAuuB,EAAAh6F,MACP+pF,EAAI9+B,OAAOwgB,GAAK8tB,GAAI9tB,GAAK+tB,IACzBzP,EAAI8D,OAAOpiB,GAAKguB,GAAIhuB,GAAKiuB,GAAA,QAAAzkF,IAAAglF,EAAApwF,EAAAoL,GAAA,SAAAglF,EAAAviF,GAAA,CAE7BqyE,EAAIlD,SACJkD,EAAI4D,WAAA,MAGM,IAAVyK,GACArO,EAAIiB,SAAA,CAIL,SAAAkP,GACHC,EACAC,GAOA,IALA,IAAMj6F,EAAsB,GACxB07B,EAAIs+D,EAAIt+D,EAAIs+D,EAAI9nE,MAAQ,GAAK+nE,EAAQ3+F,OACnC4pC,EAAI80D,EAAI90D,EAAI80D,EAAI7nE,OAAS,EAAI,GAG1B/2B,EAAI,EAAGA,EAAI6+F,EAAQ3+F,OAAQF,IAChC4E,EAAOvE,KAAK,CACRigC,EAAAA,EACAwJ,EAAAA,EACAhT,MALM,GAMNC,OAPO,KASXuJ,GAAK,GAET,OAAO17B,CAAA,CAGJ,SAAAk6F,GAAqB5S,EAAiB5rD,EAAWwJ,GACpD,OAAOxJ,GAAK4rD,EAAK5rD,GAAKA,GAAK4rD,EAAK5rD,EAAI4rD,EAAKp1D,OAASgT,GAAKoiD,EAAKpiD,GAAKA,GAAKoiD,EAAKpiD,EAAIoiD,EAAKn1D,MAAA,CAiIxF,IAAMgoE,GAAiB,GAChB,SAAAC,GAA6B1+D,EAAWwJ,EAAWhT,EAAeC,GACrE,MAAO,CACHuJ,EAAGA,EAAIxJ,EAAQioE,GACfj1D,EAAGn+B,KAAKG,IAAIg+B,EAAGA,EAAI/S,EAAS,EAAIgoE,GAAiB,GACjDjoE,MAAOioE,GACPhoE,OAAQprB,KAAKsJ,IAAI8pF,GAAgBhoE,GAAA,CAIlC,SAAAkoE,GACHzQ,EACAluD,EACAwJ,EACAhT,EACAC,EACA5b,EACA+G,EACA+5D,EACAijB,EACAC,EACA1D,EACAD,EACA4D,EACAC,GAEA,IAAMC,EAAmBnkF,EAAEmzD,MAAMnQ,WAAWghB,IACtCogB,EAAaP,GAAoB1+D,EAAGwJ,EAAGhT,EAAOC,GACpD,QAA2B,IAAvBqoE,EAAkC,CAClC,IAAII,EAAUrkF,EAOd,GANImkF,IACAE,EAAAp2C,EAAAA,EAAA,GACOjuC,GAAA,IACHmzD,MAAO,MAIX8wB,EAAmB,CACf5Q,IAAAA,EACAvS,MAAAA,EACAiQ,KAAM,CAAE5rD,EAAAA,EAAGwJ,EAAAA,EAAGhT,MAAAA,EAAOC,OAAAA,GACrB0oE,OAAQD,EACRE,YAAaF,EAAQG,YACrBxtC,WAAYjwC,EACZu5E,YAAAA,EACAyD,UAAAA,EACAC,gBAAAA,EACA3D,cAAAA,EACA+D,WAAAA,IAGJ,OAIR,GAAID,EAAkB,CAClB,IAAIt+E,OAA0C,EAU9C,OATI7F,EAAEmzD,QAAU8Q,KAAyBp+D,GAAU,GAC/C7F,EAAEmzD,QAAU+Q,KAA0Br+D,GAAU,IACpC,IAAZA,IACAwtE,EAAIuL,YAAc0B,GAEtBlK,GAAa/C,EAAKvS,EAAOj7D,EAASsf,EAAGwJ,EAAGhT,EAAOC,GAAQ,OAAO,OAAW,SACzD,IAAZ/V,IACAwtE,EAAIuL,YAAc,GAEtB,CAGJ,IAAM6F,EAAO3jB,EAAM2B,sBACbmS,EAAY7tE,EAAW+5D,EAAMc,mBAAqBd,EAAMY,WAExDgjB,GAA+B,IAAd1kF,EAAE2kF,UAAqBZ,GAAcG,GAAan9E,GAErEuzE,EAAQn1D,EAAIs/D,EAChB,QAAe,IAAXzkF,EAAE4kF,KAAoB,CACtB,IAAI3G,EAAyBl3E,EAAW,WAAa,SACrC,cAAZ/G,EAAEsL,QACF2yE,EAAUl3E,EAAW,WAAa,WAEtC,IAAM89E,EAAa/jB,EAAMkC,eACzBqd,EAAcyE,WAAW9kF,EAAE4kF,KAAM3G,EAAS5K,EAAKiH,EAAO3rD,GAAK/S,EAASipE,GAAc,EAAGA,EAAY/jB,QAE3E,IAAlB9gE,EAAE+kF,aACF1E,EAAcyE,WACV9kF,EAAE+kF,YACFh+E,EAAW,WAAa,UACxBssE,EACAiH,EAAQ,EACR3rD,IAAM/S,EAAS,IAAM,EAAI,GACzB,GACAklD,GAIRwZ,GAAS9pF,KAAKC,KAAkB,IAAbo0F,EAAa,CAGpC,GAAIH,IAAgC,IAAd1kF,EAAE2kF,SAAoBhpE,EAAQ,GAAI,CACpD,IAIMqpE,GAHYrpE,EADA,IAImBA,EAC/BspE,GAHUtpE,EAAQupE,MAGSvpE,EAE3BwpE,EAAO9R,EAAI+R,qBAAqBjgE,EAAG,EAAGA,EAAIxJ,EAAO,GACjD0pE,EAAQhG,GAAUzK,EAAW,GAEnCuQ,EAAKG,aAAa,EAAG1Q,GACrBuQ,EAAKG,aAAaN,EAAkBpQ,GACpCuQ,EAAKG,aAAaL,EAAgBI,GAClCF,EAAKG,aAAa,EAAGD,GACrBhS,EAAIuB,UAAYuQ,CAAA,MAEhB9R,EAAIuB,UAAYA,EAQpB,GANAvB,EAAI0B,SACA/0E,EAAEmzD,MACFmnB,EACA3rD,EAAI/S,EAAS,EAAI83D,GAAoBL,EAAA,GAAAnvD,OAAQ48C,EAAM6B,gBAAA,KAAAz+C,OAAmB48C,EAAM+B,cAG5E6hB,IAAgC,IAAd1kF,EAAE2kF,QAAkB,CACtCtR,EAAI4D,YACJ,IAAMsO,EAAYnB,EAAWj/D,EAAIi/D,EAAWzoE,MAAQ,EAAI,IAClD6pE,EAAYpB,EAAWz1D,EAAIy1D,EAAWxoE,OAAS,EAAI,GJmU1D,SAAqBy3D,EAA+BoS,EAAiBC,GAuBxE,IArBA,IAeIjO,EAfEkO,EAAQ,SAAU9lF,EAAU+lF,GAC9B,IAAMC,EAAKD,EAAGzgE,EAAItlB,EAAEslB,EACd2gE,EAAKF,EAAGj3D,EAAI9uB,EAAE8uB,EACdo3D,EAAOv1F,KAAKw1F,KAAKH,EAAKA,EAAKC,EAAKA,GAChCG,EAAMJ,EAAKE,EACXG,EAAMJ,EAAKC,EACjB,MAAO,CACH5gE,EAAG0gE,EACHl3D,EAAGi3D,EAAGj3D,EAAI9uB,EAAE8uB,EACZ6yB,IAAKukC,EACLI,GAAIF,EACJG,GAAIF,EACJG,IAAK71F,KAAK81F,MAAMJ,EAAKD,GAAA,EAMvBzkC,EAAMikC,EAAO1gG,OACfwhG,EAAKd,EAAOjkC,EAAM,GAEb38D,EAAI,EAAGA,EAAI28D,EAAK38D,IAAK,CAC1B,IAAI2hG,EAAKf,EAAO5gG,EAAI28D,GACdilC,EAAKhB,GAAQ5gG,EAAI,GAAK28D,GAGtBklC,EAAKf,EAAMa,EAAID,GACfI,EAAKhB,EAAMa,EAAIC,GACfG,EAAOF,EAAGP,GAAKQ,EAAGP,GAAKM,EAAGN,GAAKO,EAAGR,GAClCU,EAASH,EAAGP,GAAKQ,EAAGR,GAAKO,EAAGN,IAAMO,EAAGP,GACvCU,EAAQt2F,KAAKu2F,KAAKH,GAAQ,GAAK,EAAIA,EAAO,EAAI,EAAIA,GAElDI,EAAe,EACfC,GAAgB,EAChBJ,EAAS,EACLC,EAAQ,EACRA,EAAQt2F,KAAKm/E,GAAKmX,GAElBA,EAAQt2F,KAAKm/E,GAAKmX,EAClBE,GAAgB,EAChBC,GAAgB,GAGhBH,EAAQ,IACRE,GAAgB,EAChBC,GAAgB,GAGxBxP,OAAuB,IAAd+O,EAAG/O,OAAuB+O,EAAG/O,OAASiO,EAG/C,IAAMwB,EAAYJ,EAAQ,EAKtBK,EAAS32F,KAAK4/C,IAAK5/C,KAAK42F,IAAIF,GAAazP,EAAUjnF,KAAK62F,IAAIH,IAK5DI,OAAA,EACAH,EAAS32F,KAAKsJ,IAAI4sF,EAAGllC,IAAM,EAAGmlC,EAAGnlC,IAAM,IACvC2lC,EAAS32F,KAAKsJ,IAAI4sF,EAAGllC,IAAM,EAAGmlC,EAAGnlC,IAAM,GACvC8lC,EAAU92F,KAAK4/C,IAAK+2C,EAAS32F,KAAK62F,IAAIH,GAAc12F,KAAK42F,IAAIF,KAE7DI,EAAU7P,EAId,IAAItyD,EAAIqhE,EAAGrhE,EAAIwhE,EAAGR,GAAKgB,EACnBx4D,EAAI63D,EAAG73D,EAAIg4D,EAAGP,GAAKe,EAGvBhiE,IAAMwhE,EAAGP,GAAKkB,EAAUN,EACxBr4D,GAAKg4D,EAAGR,GAAKmB,EAAUN,EAGvB3T,EAAIkU,IACApiE,EACAwJ,EACA24D,EACAZ,EAAGL,IAAO71F,KAAKm/E,GAAK,EAAKqX,EACzBL,EAAGN,IAAO71F,KAAKm/E,GAAK,EAAKqX,EACzBC,GAGJV,EAAKC,EACLA,EAAKC,CAAA,CAETpT,EAAImU,WAAA,CI9ZAC,CACIpU,EACA,CACI,CACIluD,EAAGogE,EACH52D,EAAG62D,GAEP,CACIrgE,EAAGogE,EAAY,GACf52D,EAAG62D,GAEP,CACIrgE,EAAGogE,EAAY,IACf52D,EAAG62D,EAAY,IAGvB,GAGJnS,EAAIuB,UAAYA,EAChBvB,EAAIpD,MAAA,EAIZ,SAAAyX,GACIrU,EACAmO,EACAmG,EACA9Q,EACAl7D,EACAq/D,EACAM,EACAT,EACA+M,EACAC,EACA5hB,EACA6hB,EACAzH,EACA0H,EACAlG,EACAmG,EACAC,EACAhE,EACAC,GAvyBJ,IAAAnjB,EAyyBU+Z,EAAoBQ,EAAeT,EACzC,KAAIC,GAAqB,GAAzB,CAEAzH,EAAIuB,UAAYkT,EAAW/lB,SAC3BsR,EAAI4N,SAAS,EAAG,EAAGtlE,EAAOm/D,GAE1B,IAAAoN,EAAqB,OAAAnnB,EAAA,MAAA8V,OAAA,EAAAA,EAAU,IAAV9V,EAAgB,GAAAonB,GAAAzmC,EAAAA,EAAAA,GAAAwmC,EAAA,GAA9BE,EAAAD,EAAA,GAAME,EAAAF,EAAA,GAEP7U,EAAA,GAAApvD,OAAU4jE,EAAWnlB,gBAAA,KAAAz+C,OAAmB4jE,EAAWjlB,YAEzDwQ,EAAIC,KAAOA,EACXgV,GAAY9G,EAAe,EAAGxG,EAAY,EAAGF,GAAmB,SAAC96E,EAAGmlB,EAAGojE,EAAIC,GApzB/E,IAAAC,EAAAznB,EAAA+gB,EAqzBQ,QAAe,IAAXkG,GAAyBA,EAAOzgC,MAAK,SAAAzmD,GAAA,OAAe,IAAVA,EAAE,IAAaA,EAAE,KAAOf,EAAEwkF,WAAA,IAAxE,CACA,IAAMkE,EAAOl4F,KAAKG,IAAI,EAAG63F,EAAQrjE,GACjCkuD,EAAIpH,OACJoH,EAAI4D,YACJ5D,EAAItC,KAAK5rD,EAAIujE,EAAM7N,EAAmB76E,EAAE2b,MAAQ+sE,EAAMpN,GACtDjI,EAAI0C,OAEJ,IAAM4S,EAAaX,EAAgB,OAAAS,EAAAzoF,EAAEy7E,OAAFgN,EAAW,IAAIG,cAC5C9nB,OACkB,IAApB9gE,EAAE6oF,oBAA8C,IAAfF,EAC3Bb,EAAA75C,EAAAA,EAAAA,EAAA,GACK65C,GAAea,GAAe3oF,EAAE6oF,eAE3C/nB,EAAMiB,WAAa+lB,EAAW/lB,WAC9BsR,EAAIuB,UAAY9T,EAAMiB,SACtBsR,EAAIpD,QAGR,IAAMjvE,EAAA,GAAAkjB,OAAO48C,EAAM6B,gBAAA,KAAAz+C,OAAmB48C,EAAM+B,YACxCyQ,IAAStyE,IACTqyE,EAAIC,KAAOtyE,GAEf,IAAM+F,EAAWk/D,EAAUh9D,QAAQ+9D,SAAShnE,EAAEwkF,aACxCsE,OAA+B,IAArBlB,GAAkCC,EAC5CkB,GAAkBD,IAAqB,IAAVT,GAAeD,IAASpoF,EAAEwkF,YACvDwE,EAAQF,EACR,EACA,OAAA/G,EAAA,OAAA/gB,EAAA+mB,EAAY5sC,MAAK,SAAA2K,GAAA,OAAKA,EAAE3R,KAAK,KAAOn0C,EAAEwkF,cAA8B,IAAf1+B,EAAE3R,KAAK,EAAO,UAAnE,EAAA6sB,EAAwEsf,aAAxEyB,EAAuF,EAEvFiC,OAAyC,KAAvB,MAAA/d,OAAA,EAAAA,EAAWx2D,UAAyBw2D,EAAUx2D,QAAQgtD,KAAK,KAAOz8D,EAAEwkF,YAEtFyE,EAAcliF,EAAW+5D,EAAMG,YAAc+iB,EAAkBljB,EAAMkB,iBAAmBlB,EAAMiB,SAE9FpzC,EAAIg5D,EAAe9M,EAAoB,EACvC9R,EAA4B,IAAlB/oE,EAAEwkF,YAAoB,EAAI,EAEtCz9E,GACAssE,EAAIuB,UAAYqU,EAChB5V,EAAI4N,SAAS97D,EAAI4jD,EAASp6C,EAAG3uB,EAAE2b,MAAQotD,EAASuS,KACzC0I,GAAmBgF,EAAQ,KAClC3V,EAAI4D,YACJ5D,EAAItC,KAAK5rD,EAAI4jD,EAASp6C,EAAG3uB,EAAE2b,MAAQotD,EAASuS,GACxC0I,IACA3Q,EAAIuB,UAAY9T,EAAMkB,iBACtBqR,EAAIpD,QAEJ+Y,EAAQ,IACR3V,EAAIuL,YAAcoK,EAClB3V,EAAIuB,UAAY9T,EAAMmB,gBACtBoR,EAAIpD,OACJoD,EAAIuL,YAAc,IAI1BkF,GACIzQ,EACAluD,EACAwJ,EACA3uB,EAAE2b,MACF2/D,EACAt7E,EACA+G,EACA+5D,EACAioB,EACA/E,EACAgF,EACA3I,EACA4D,EACAC,GAEJ7Q,EAAIiB,SAtEwF,CAsExF,IAGJqT,GA/XR,SACItU,EACAmO,EACA7lE,EACAq/D,EACAH,EACAhE,EACA/V,EACAuf,EACA6I,EACArH,EACAmG,EACAC,GA3gBJ,IAAAlnB,EA8gBIooB,EAAqB,OAAApoB,EAAA,MAAA8V,OAAA,EAAAA,EAAU,IAAV9V,EAAgB,GAAAqoB,GAAA1nC,EAAAA,EAAAA,GAAAynC,EAAA,GAA9Bf,EAAAgB,EAAA,GAAMf,EAAAe,EAAA,GAETC,EAAS,EACbC,GAAW9H,EAAe7lE,EAAOq/D,EAAYH,GAAmB,SAACtJ,EAAMgY,EAAWpkE,EAAGwJ,EAAGtJ,EAAG/gB,GAjhB/F,IAAAmkF,EAAAznB,EAkhBQ,QAAe,IAAXinB,GAAyBA,EAAOzgC,MAAK,SAAAzmD,GAAA,OAAe,IAAVA,EAAE,IAAaA,EAAE,IAAMwwE,EAAK,IAAMxwE,EAAE,IAAMwwE,EAAK,MAA7F,CACA8B,EAAIpH,OACJoH,EAAI4D,YACJ5D,EAAItC,KAAK5rD,EAAGwJ,EAAGtJ,EAAG/gB,GAClB+uE,EAAI0C,OAEJ,IAAM0F,EAAQuM,EAAgBuB,GACxBZ,OAAsC,KAAzB,MAAAlN,OAAA,EAAAA,EAAOmN,eAA8B9nB,EAAA7yB,EAAAA,EAAA,GAAa6yB,GAAU2a,EAAMmN,eAC/E7E,GAAsB,IAAVsE,QAAwB,IAATD,GAAsBA,GAAQ7W,EAAK,IAAM6W,GAAQ7W,EAAK,GAEjFiY,EAAYzF,EAAY4E,EAAW1mB,gBAAkB0mB,EAAW5mB,SAOtE,GANIynB,IAAc1oB,EAAMiB,WACpBsR,EAAIuB,UAAY4U,EAChBnW,EAAIpD,QAGRoD,EAAIuB,UAAY,OAAA6T,EAAAE,EAAWhnB,iBAAX8mB,EAA8BE,EAAWjnB,gBAC3C,IAAV+Z,EAAqB,CACrB,IAAInB,EAAQn1D,EAmBZ,QAlBmB,IAAfs2D,EAAMmJ,OACNvE,EAAcyE,WACVrJ,EAAMmJ,KACN,SACAvR,EACAiH,EA7BH,GA8BIO,EAAoB,IAAM,EAC3B,GACA8N,GAEJrO,GAAS,IAEbjH,EAAI0B,SACA0G,EAAMpnF,KACNimF,EAtCC,EAuCDO,EAAoB,EAAInH,GAAoBL,EAAA,GAAAnvD,OAAQ48C,EAAM6B,gBAAA,KAAAz+C,OAAmB48C,EAAM+B,mBAGjE,IAAlB4Y,EAAMiI,SAAyBK,EAAW,CAC1C,IAAM0F,EAAcjG,GAAwB,CAAEr+D,EAAAA,EAAGwJ,EAAAA,EAAGhT,MAAO0J,EAAGzJ,OAAQtX,GAAKm3E,EAAMiI,SAEjFrQ,EAAI4D,YACJ,IAAMyS,EAAaD,EAAY,GAAGtkE,EAAI,GAChC+/D,EAAY//D,EAAIE,EAAIqkE,EAC1BrW,EAAItC,KAAK2Y,EAAY,EAAGxE,EAAWrK,GACnC,IAAMsK,EAAO9R,EAAI+R,qBAAqBsE,EAAY,EAAGA,EAAaxE,EAAW,GACvEG,EAAQhG,GAAUmK,EAAW,GACnCrE,EAAKG,aAAa,EAAGD,GACrBF,EAAKG,aAAa,GAAKJ,EAAWsE,GAClCrE,EAAKG,aAAa,EAAGkE,GACrBnW,EAAIuB,UAAYuQ,EAEhB9R,EAAIpD,OAEJoD,EAAIuL,YAAc,GAIlB,IADA,IAAA+K,EAAyB,OAAA3oB,EAAA,MAAA6V,OAAA,EAAAA,EAAU,IAAV7V,EAAgB,EAAE,GAAI,GAAD4oB,GAAAloC,EAAAA,EAAAA,GAAAioC,EAAA,GAAvCE,EAAAD,EAAA,GAAQE,EAAAF,EAAA,GACN/kG,EAAI,EAAGA,EAAI42F,EAAMiI,QAAQ3+F,OAAQF,IAAK,CAC3C,IAAMwvC,EAASonD,EAAMiI,QAAQ7+F,GACvB4+F,EAAMgG,EAAY5kG,GAClBklG,EAAgBpG,GAAYF,EAAKoG,EAAS1kE,EAAG2kE,GAC/CC,IACA1W,EAAIuL,YAAc,GAEtByB,EAAcyE,WACVzwD,EAAOuwD,KACP,SACAvR,EACAoQ,EAAIt+D,EAAIs+D,EAAI9nE,MAAQ,EAAI,GACxB8nE,EAAI90D,EAAI80D,EAAI7nE,OAAS,EAAI,GACzB,GACA+sE,GAEAoB,IACA1W,EAAIuL,YAAc,IAI1BvL,EAAIuL,YAAc,GAIhB,IAANz5D,GAAW08D,EAAetQ,EAAK,MAC/B8B,EAAI4D,YACJ5D,EAAI9+B,OAAOpvB,EAAI,GAAK,GACpBkuD,EAAI8D,OAAOhyD,EAAI,GAAK01D,GACpBxH,EAAI+D,YAActW,EAAMuB,YACxBgR,EAAIkE,UAAY,EAChBlE,EAAIlD,UAGRkD,EAAIiB,UAEJ+U,EAASlkE,EAAIE,CA7F2F,CA6F3F,IAGjBguD,EAAI4D,YACJ5D,EAAI9+B,OAAO80C,EAAS,GAAK,GACzBhW,EAAI8D,OAAOkS,EAAS,GAAKxO,GAEzBxH,EAAI9+B,OAAO,EAAGsmC,EAAoB,IAClCxH,EAAI8D,OAAOx7D,EAAOk/D,EAAoB,IACtCxH,EAAI+D,YAActW,EAAMuB,YACxBgR,EAAIkE,UAAY,EAChBlE,EAAIlD,QAAA,CAqQA6Z,CACI3W,EACAmO,EACA7lE,EACAq/D,EACAH,EACAhE,EACAiR,EACAzH,EACA0H,EACAlG,EACAmG,EACAC,EAjG0B,CAiG1B,CAKZ,SAAAgC,GAAuBpH,EAAYC,EAAYoH,EAAYC,EAAYpH,EAAYC,EAAYoH,EAAYC,GACvG,OAAOxH,GAAME,EAAKqH,GAAMrH,GAAMF,EAAKqH,GAAMpH,GAAME,EAAKqH,GAAMrH,GAAMF,EAAKqH,CAAA,CAGzE,SAAAG,GACIjX,EACAkX,EACA5uE,EACAC,EACAi/D,EACAC,EACAE,EACAC,EACAF,EACAvkB,EACAmrB,EACAG,EACAmG,EACAuC,GAEA,QAAe,IAAXvC,GAA0C,IAAlBA,EAAOljG,OAAnC,CAEA,IAAM0lG,EAAsC,WAApB3I,EAA+BH,EAAanrB,EAAO,GAAK,EAEhF6c,EAAI4D,YAEJqS,GAAWiB,EAAkB5uE,EAAOq/D,EAAYH,GAAmB,SAACtJ,EAAMmZ,EAAQvlE,EAAGwJ,EAAGtJ,EAAG/gB,GACvF,IAAK,IAAIzf,EAAI,EAAGA,EAAIojG,EAAOljG,OAAQF,IAAK,CACpC,IAAMkc,EAAIknF,EAAOpjG,GACjB,IAAc,IAAVkc,EAAE,IAAaA,EAAE,IAAMwwE,EAAK,IAAMxwE,EAAE,IAAMwwE,EAAK,GAAI,CACnD8B,EAAItC,KAAK5rD,EAAGwJ,EAAGtJ,EAAG/gB,GAClB,WAKZgkF,GACIiC,EACAxP,EACAC,EACAC,EACAH,GACA,SAAC96E,EAAGs6E,EAAOqQ,EAAUnC,EAAOoC,GAKxB,IAJA,IAAMlC,EAAOl4F,KAAKG,IAAI,EAAG63F,EAAQlO,GAE3B+O,EAAS/O,EAAQoO,EAAO,EACxBmC,EAAa7qF,EAAE2b,MAAQ+sE,EAAO,EAC3B7jG,EAAI,EAAGA,EAAIojG,EAAOljG,OAAQF,IAAK,CACpC,IAAMkc,EAAIknF,EAAOpjG,GACjB,GAAIkc,EAAE,KAAOf,EAAEwkF,eAA0B,IAAVzjF,EAAE,SAAsB,IAATA,EAAE,IAAmB,CAC/DsyE,EAAItC,KAAKsY,EAAQxO,EAAmBgQ,EAAY/P,EAAoBD,GACpE,OAIH2P,GAELM,GACIF,EACAD,EACA/uE,EACA46C,EACAmrB,EACAG,GACA,SAAC5L,EAAOzf,EAAKpmC,EAAI06D,GAEb,IADA,IAAIC,GAAY,EACPnmG,EAAI,EAAGA,EAAIojG,EAAOljG,OAAQF,IAAK,CACpC,IAAMkc,EAAIknF,EAAOpjG,GACjB,GAAIkc,EAAE,KAAOf,EAAEwkF,aAAezjF,EAAE,KAAO01D,EAAK,CACxCu0B,GAAY,EACZ,OAGR,GAAIA,EAAW,CACX,IAAM5oE,EAAM8zD,EAAQ,EAEd5xE,GADSymF,EAAW3oE,EAAMiO,EAAK,EAAI7/B,KAAKsJ,IAAIsoB,EAAMiO,EAAK,EAAGzU,EAAS6uE,IACtDroE,EAEf9d,EAAI,GACJ+uE,EAAItC,KAAKsY,EAAQjnE,EAAKyoE,EAAYvmF,EAAA,QAO1D+uE,EAAI0C,MAlEmD,CAkEnD,CAGR,SAAAkV,GACI1Z,EACA2Z,EACAC,EACAC,EACAC,EACA/G,EACAgH,GAh/BJ,IAAAvqB,EAAAC,EAo/BQuqB,EACAC,EAHJC,GAAA/pC,EAAAA,EAAAA,GAA2B6vB,EAAA,GAApBma,EAAAD,EAAA,GAAUE,EAAAF,EAAA,GAKXG,EAAiB,OAAA5qB,EAAA,OAAAD,EAAAuqB,EAAWnwC,MAAK,SAAAh2B,GAAA,OAAMA,EAAE6sD,MAAA,UAAxB,EAAAjR,EAAiCyjB,aAAjCxjB,EAAgD,EACvE,GAAI2qB,EAASC,EAAgB,CAIzB,IAHA,IAAMC,EAAgBr7F,KAAKG,IAAI+6F,EAAUE,GACrCE,EAAQZ,EACRa,EAAQX,EACHjmE,EAAIm/D,EAAOE,YAAc,EAAGr/D,GAAK0mE,EAAe1mE,IACrD2mE,GAASR,EAAWnmE,GAAGxJ,MACvBowE,GAAST,EAAWnmE,GAAGxJ,MAE3B,IAAK,IAAIwJ,EAAIm/D,EAAOE,YAAc,EAAGr/D,GAAKwmE,EAAQxmE,IAC9C4mE,GAAST,EAAWnmE,GAAGxJ,MAE3B6vE,EAAc,CACVrmE,EAAG2mE,EACHn9D,EAAGw8D,EACHxvE,MAAOowE,EACPnwE,OAAQyvE,EAAA,CAIhB,GAAIO,EAAiBF,EAAU,CAI3B,IAHA,IAAMM,EAAcx7F,KAAKsJ,IAAI6xF,EAAQC,EAAiB,GAClDE,EAAQZ,EACRa,EAAQX,EACHjmE,EAAIm/D,EAAOE,YAAc,EAAGr/D,GAAKumE,EAAUvmE,IAChD2mE,GAASR,EAAWnmE,GAAGxJ,MACvBowE,GAAST,EAAWnmE,GAAGxJ,MAE3B,IAAK,IAAIwJ,EAAIm/D,EAAOE,YAAc,EAAGr/D,GAAK6mE,EAAa7mE,IACnD4mE,GAAST,EAAWnmE,GAAGxJ,MAE3B4vE,EAAa,CACTpmE,EAAG2mE,EACHn9D,EAAGw8D,EACHxvE,MAAOowE,EACPnwE,OAAQyvE,EAAA,CAIhB,MAAO,CAACE,EAAYC,EAAA,CAgBxB,SAAAS,GACI5Y,EACAkX,EACAe,EACA1vE,EACAk/D,EACAE,EACAC,EACAF,EACAvkB,EACAmrB,EACAuK,EACAlE,EACApG,EACAuK,EACAC,EACAC,EACAvK,EACAL,EACAwG,EACAhiB,EACAqmB,EACAC,EACAnM,EACArI,EACAsI,EACA0H,EACAxH,EACAlL,EACAyS,EACArH,EACAhW,GA7kCJ,IAAA1J,EAmlCQt3E,EAJAm5F,EAAS,OAAA7hB,EAAA,MAAAknB,OAAA,EAAAA,EAAQljG,QAARg8E,EAAkBjZ,OAAOi5B,iBAChCP,EAAYxgC,YAAYpmD,MAC1B05E,EAAA,GAAApvD,OAAU4jE,EAAWllB,cAAA,KAAA1+C,OAAiB4jE,EAAWjlB,YACrDwQ,EAAIC,KAAOA,EAEX,IAAMkZ,EAAe,IAAIxkG,IAgRzB,OA/QAsgG,GACIiC,EACAxP,EACAC,EACAC,EACAH,GACA,SAAC96E,EAAGs6E,EAAOmS,EAAejE,EAAOoC,GA3lCzC,IAAAnC,EA4lCkBC,EAAOl4F,KAAKG,IAAI,EAAG63F,EAAQlO,GAE3BoS,EAAWpS,EAAQoO,EACnBiC,EAAW7P,EAAoB,EAC/B6R,EAAW3sF,EAAE2b,MAAQ+sE,EACrBkE,EAAYhxE,EAASk/D,EAAoB,EAC/C,GAAI2G,EAAY18F,OAAS,EAAG,CAExB,IADA,IAAI8nG,GAAQ,EACHhoG,EAAI,EAAGA,EAAI48F,EAAY18F,OAAQF,IAAK,CACzC,IAAMioG,EAAKrL,EAAY58F,GACvB,GAAIolG,GAAcyC,EAAU/B,EAAUgC,EAAUC,EAAWE,EAAG3nE,EAAG2nE,EAAGn+D,EAAGm+D,EAAGnxE,MAAOmxE,EAAGlxE,QAAS,CACzFixE,GAAQ,EACR,OAGR,IAAKA,EAAO,OAGhB,IAAME,EAAS,WACX1Z,EAAIpH,OACJoH,EAAI4D,YACJ5D,EAAItC,KAAK2b,EAAU/B,EAAUgC,EAAUC,GACvCvZ,EAAI0C,MAAA,EAGFiX,EAAc/mB,EAAUh9D,QAAQ+9D,SAAShnE,EAAEwkF,aAE3CmE,EAAaX,EAAgB,OAAAS,EAAAzoF,EAAEy7E,OAAFgN,EAAW,IAAIG,cAC5CqE,OACkB,IAApBjtF,EAAE6oF,oBAA8C,IAAfF,EAC3Bb,EAAA75C,EAAAA,EAAAA,EAAA,GACK65C,GAAea,GAAe3oF,EAAE6oF,eACzCqE,EAAA,GAAAhpE,OAAa+oE,EAASrqB,cAAA,KAAA1+C,OAAiB+oE,EAASpqB,YAClDqqB,IAAY5Z,IACZA,EAAO4Z,EACP7Z,EAAIC,KAAO4Z,GAEfH,IACA,IAAII,QAAqC,EA+NzC,OA7NArC,GACIF,EACA6B,EACA7wE,EACA46C,EACAmrB,EACAG,GACA,SAAC5L,EAAOzf,EAAKpmC,EAAI06D,EAAUqC,GA3oC3C,IAAAC,EAAArsB,EAAA+gB,EAAA7/B,EA4oCoB,KAAIuU,EAAM,GAAV,CAiBA,QAAe,IAAXwxB,EAAsB,CAEtB,IADA,IAAI4E,GAAQ,EACHhoG,EAAI,EAAGA,EAAIojG,EAAOljG,OAAQF,IAAK,CACpC,IAAMkc,EAAIknF,EAAOpjG,GACjB,GAAIkc,EAAE,KAAOf,EAAEwkF,aAAezjF,EAAE,KAAO01D,EAAK,CACxCo2B,GAAQ,EACR,OAGR,IAAKA,EAAO,OAEhB,GAAIpL,EAAY18F,OAAS,EAAG,CAExB,IADA,IAAI8nG,GAAQ,EACHhoG,EAAI,EAAGA,EAAI48F,EAAY18F,OAAQF,IAAK,CACzC,IAAMioG,EAAKrL,EAAY58F,GACvB,GAAIolG,GAAc3P,EAAOpE,EAAOl2E,EAAE2b,MAAO0U,EAAIy8D,EAAG3nE,EAAG2nE,EAAGn+D,EAAGm+D,EAAGnxE,MAAOmxE,EAAGlxE,QAAS,CAC3EixE,GAAQ,EACR,OAGR,IAAKA,EAAO,OAGhB,IAAMS,EAAcrnB,EAAUzP,KAAKwQ,SAASvQ,GACtC82B,EAAcpB,EAAanlB,SAASvQ,GAEpCgG,GAAsBhG,EAAMD,EAAO01B,EAAe,CAAClsF,EAAEwkF,YAAa/tB,IAAQwpB,GAE5EiL,GAAQ5Q,EACRkT,GAAYxtF,EAAE2b,MACd8xE,IAAc,EACdC,IAAe,EACnB,QAAkB,IAAdjxB,GAAK8U,KAAoB,CACzB,IAAAoc,IAAAjsC,EAAAA,EAAAA,GAA2B+a,GAAK8U,KAAA,GAAzBma,GAAAiC,GAAA,GAAUhC,GAAAgC,GAAA,GACXC,GAAA,GAAA1pE,OAAauyC,EAAA,KAAAvyC,OAAOwnE,GAAA,KAAAxnE,OAAYynE,GAAA,KAAAznE,OAAUlkB,EAAEgyE,QAClD,GAAKwa,EAAavlG,IAAI2mG,IA8BlB,YADAhL,IA5BA,IAAMiL,GAAQ5C,GAAcxuB,GAAK8U,KAAM+I,EAAOpE,EAAOl2E,EAAE2b,MAAO0U,EAAIrwB,EAAGsrF,GAC/D1/E,GAAO5L,EAAEgyE,OAAS6b,GAAM,GAAKA,GAAM,GAIzC,GAHK7tF,EAAEgyE,aAAuB,IAAb6b,GAAM,KACnBH,IAAe,QAEN,IAAT9hF,GAAoB,CACpBs/E,GAAQt/E,GAAKuZ,EACbqoE,GAAY5hF,GAAK+P,MACjB6wE,EAAalkG,IAAIslG,IACjBva,EAAIiB,UACJ6Y,QAAa,EACb9Z,EAAIpH,OACJoH,EAAI4D,YACJ,IAAMl2E,GAAIvQ,KAAKG,IAAI,EAAG63F,EAAQ58E,GAAKuZ,GACnCkuD,EAAItC,KAAKnlE,GAAKuZ,EAAIpkB,GAAGm1E,EAAOtqE,GAAK+P,MAAQ5a,GAAGsvB,QAC7B,IAAX5mC,IACAA,EAAS,IAEbA,EAAOvE,KAAK,CACRigC,EAAGvZ,GAAKuZ,EAAIpkB,GACZ4tB,EAAGunD,EACHv6D,MAAO/P,GAAK+P,MAAQ5a,GACpB6a,OAAQyU,IAEZgjD,EAAI0C,OACJ0X,IAAc,EAIlB,CAIR,IAAMtK,GAAW,MAAAvB,OAAA,EAAAA,EAAsBnrB,GACjCq3B,GACFV,QAAyD,KAAxC,OAAAC,EAAArtF,EAAE+tF,yBAAF,EAAAV,EAAsBxE,eACjC,OAAA7nB,EAAAhhE,EAAE+tF,yBAAF,EAAA/sB,EAAsB6nB,mBACtB,EACJ/nB,QACqB,IAAvBrE,GAAKosB,oBAA4C,IAAb1F,SAA4C,IAAlB2K,GACxDb,EAAAh/C,EAAAA,EAAAA,EAAAA,EAAA,GACKg/C,GAAa9J,IAAa2K,IAAkBrxB,GAAKosB,eAEhExV,EAAI4D,YAEJ,IAAM+W,GAAY,CAAChuF,EAAEwkF,YAAa/tB,GAC5Bzf,GJrsCnB,SAAwB54C,EAAgBq+D,EAAqBwJ,GAChE,QAA2B,KAAvB,MAAAA,OAAA,EAAAA,EAAWx2D,SAAuB,OAAO,EAE7C,IAAAw+E,GAAAvsC,EAAAA,EAAAA,GAAmBukB,EAAUx2D,QAAQgtD,KAAA,GAA9B1wD,EAAAkiF,EAAA,GAAKx3B,EAAAw3B,EAAA,GACZC,GAAAxsC,EAAAA,EAAAA,GAA2BtjD,EAAA,GAApBizE,EAAA6c,EAAA,GACP,OADgBA,EAAA,KACAz3B,SAEE,IAAdgG,EAAK8U,KACExlE,IAAQslE,EAGZtlE,GAAO0wD,EAAK8U,KAAK,IAAMxlE,GAAO0wD,EAAK8U,KAAK,II0rCZ4c,CAAeH,GAAWvxB,GAAMwJ,GAC/CmoB,GJnqCjB,SAAuBhwF,EAAgBq+D,EAAqBwJ,GAC/D,IAAIx8E,EAAS,EACb,QAA0B,IAAtBw8E,EAAUx2D,QAAuB,OAAOhmB,EAExCqnF,GAAa1yE,EAAUq+D,EAAMwJ,EAAUx2D,QAAQxS,QAAQxT,IAAA,IACzB4kG,EADyBC,EAAAjhC,EAC3C4Y,EAAUx2D,QAAQ8+E,YAAA,IAAlC,IAAAD,EAAAxoC,MAAAuoC,EAAAC,EAAAv9F,KAAAygC,MACQs/C,GAAa1yE,EAAUq+D,EADpB4xB,EAAA/kG,QAEHG,GAAA,OAAA8U,GAAA+vF,EAAAn7F,EAAAoL,EAAA,SAAA+vF,EAAAttF,GAAA,CAGR,OAAOvX,CAAA,CIypC2B+kG,CAAcR,GAAWvxB,GAAMwJ,GAC3CwoB,QACY,IAAdhyB,GAAK8U,MACLtL,EAAUh9D,QAAQu+C,MACd,SAAA7gE,GAAA,YAAuB,IAAd81E,GAAK8U,MAAsB5qF,GAAS81E,GAAK8U,KAAK,IAAM5qF,GAAS81E,GAAK8U,KAAK,MAEpFv6B,KAAeo1C,GAAaC,EAC5B+B,GAAc,EACPp3C,KACPo3C,GAAc59F,KAAKG,IAAIy9F,GAAa,IAEpCK,IACAL,KAECp3C,KACGs2C,GAAac,KACbpB,IAAgBjC,GAAUqD,MAGlC,IACIne,GADEpO,GAASpF,GAAKkI,OAASvB,GAAa2B,UAAYjE,GAAMgB,aAAehB,GAAMe,OAMjF,IAJIkpB,GAAYlpB,KAAWimB,EAAWjmB,UAClCoO,GAAOuP,GAAM3d,GAAQoO,KAGrBme,GAAc,GAAKb,EAAa,CAC5BA,IACAtd,GAAOuP,GAAM1e,GAAMiB,SAAUkO,KAEjC,IAAK,IAAIprF,GAAI,EAAGA,GAAIupG,GAAavpG,KAC7BorF,GAAOuP,GAAM1e,GAAMK,YAAa8O,GAAA,MAG2C,KAA3E,MAAAqc,OAAA,EAAAA,EAAe9kC,MAAK,SAAA2O,GAAA,OAAOA,EAAI,KAAOn2D,EAAEwkF,aAAeruB,EAAI,KAAOM,CAAA,OAClEwZ,GAAOuP,GAAM1e,GAAMsB,eAAgB6N,KAI3C,QAAyB,IAArBsc,EAAgC,KACXmC,GADWC,GAAAthC,EACXk/B,GAAA,IAArB,IAAAoC,GAAA7oC,MAAA4oC,GAAAC,GAAA59F,KAAAygC,MAAuC,KAA5Bo9D,GAAAF,GAAAplG,MACDolC,GAAIkgE,GAAO3xF,MAEbyxB,GAAEvJ,GAAKnlB,EAAEwkF,aACTxkF,EAAEwkF,YAAc91D,GAAEvJ,EAAIuJ,GAAE/S,OACxB+S,GAAEC,GAAK8nC,GACPA,EAAM/nC,GAAEC,EAAID,GAAE9S,SAEdq0D,GAAOuP,GAAMoP,GAAO9wE,MAAOmyD,IAAA,QAAA1xE,IAAAowF,GAAAx7F,EAAAoL,GAAA,SAAAowF,GAAA3tF,GAAA,OAK1B,IAATivE,KACAoD,EAAIuB,UAAY3E,QACG,IAAfkd,KACAA,GAAWvY,UAAY3E,IAE3BoD,EAAI4N,SAASiK,GAAOhV,EAAOsX,GAAWn9D,IAGvB,UAAfosC,GAAKnxD,QACL+nE,EAAIuL,YAAc,IAGtB,IAAMiQ,GAAa9G,EAAY5sC,MAAK,SAAA2zC,GAAA,OAAMA,EAAG36C,KAAK,KAAOn0C,EAAEwkF,aAAesK,EAAG36C,KAAK,KAAOsiB,CAAA,IAEzF,GAAI+2B,GAAY,KAAOE,GAAc,CACjC,IAAMqB,GAAA,GAAA7qE,OAAc48C,GAAM8B,cAAA,KAAA1+C,OAAiB48C,GAAM+B,YAC7CksB,KAAazb,IACbD,EAAIC,KAAOyb,GACXzb,EAAOyb,IAEX5B,GAAahN,GACT9M,EACA5c,EACAgG,GACAz8D,EAAEwkF,YACF0G,GACAhV,EACAsX,GACAn9D,EACA+9D,GAAc,EACdttB,GACAsf,EACArI,EACAsI,EACA,OAAA0B,EAAA,MAAA8M,QAAA,EAAAA,GAAYvO,aAAZyB,EAA2B,EAC3BxB,EACAlL,EACAmL,EACA2M,GACA1M,EACAhW,EAAA,CAgBR,MAZmB,UAAfhO,GAAKnxD,QACL+nE,EAAIuL,YAAc,GAEtBgE,IACI6K,KACApa,EAAIiB,UACJ,OAAApyB,EAAA,MAAAirC,QAAA,EAAAA,GAAY/L,SAAZl/B,EAAAt8D,KAAAunG,GAAqB,CAAE9Z,IAAAA,IACvB8Z,QAAa,EACbJ,IACAzZ,EAAO4Z,EACP7Z,EAAIC,KAAO4Z,GAERtK,GAAU,CAhNE,CAgNF,IAIzBvP,EAAIiB,UACGsO,GAAU,KAGlBn5F,CAAA,CA2TX,SAAAulG,GACI3b,EACA13D,EACAC,EACAm/D,EACAC,EACAC,EACAuG,EACA8J,EACAxqB,EACAga,EACAmU,EACAtN,EACAuK,EACApK,EACAoN,EACA14B,GA/qDJ,IAAAuK,EAirDI,QAA6B,IAAzBkuB,EAAax/E,SAA0B+xE,EAAch6B,MAAK,SAAAxnD,GAjrDlE,IAAAyoF,EAirDuE,OAAAzoF,EAAEwkF,eAAgB,OAAAiE,EAAAwG,EAAax/E,cAAb,EAAAg5E,EAAsBhsB,KAAK,OAAhH,CAEA,IAAA0yB,GAAAztC,EAAAA,EAAAA,GAA+ButC,EAAax/E,QAAQgtD,KAAA,GAA7C2yB,EAAAD,EAAA,GAAWE,EAAAF,EAAA,GACZ1yB,EAAOyvB,EAAe+C,EAAax/E,QAAQgtD,MAC3C6yB,EAAgB,OAAAvuB,EAAAtE,EAAK8U,MAALxQ,EAAa,CAACquB,EAAWA,GAGzCG,EAAqC,WAApBzN,GADiB,WAApBA,GAAgCuN,IAAc74B,EAAO,EAC0B,EAA7BmrB,EAAanrB,EAAO,GAAK,EAE3Fg5B,OAAmC,EAwDvC,GAtDAlH,GACI9G,EACAzG,EACAC,EACAC,EACAH,GACA,SAAC/uE,EAAKuuE,EAAOqQ,EAAUnC,EAAOoC,GAC1B,KAAI7+E,EAAIimE,QAAUod,EAAYrjF,EAAIy4E,gBAC9Bz4E,EAAIy4E,YAAc8K,EAAc,IAAMvjF,EAAIy4E,YAAc8K,EAAc,IA0C1E,OAtCAxE,GAAcF,EAAUD,EAAU/uE,EAAQ46C,EAAMmrB,EAAcG,GAAiB,SAAC5L,EAAOzf,EAAKpmC,GACxF,GAAIomC,IAAQ44B,EAAZ,CAEA,IAAInE,EAAQ5Q,EACRkT,EAAYzhF,EAAI4P,MAEpB,QAAkB,IAAd8gD,EAAK8U,KAAoB,CACzB,IAAMsc,EAAQ5C,GAAcxuB,EAAK8U,KAAM+I,EAAOpE,EAAOnqE,EAAI4P,MAAO0U,EAAItkB,EAAKu/E,GACnE1/E,EAAOG,EAAIimE,OAAS6b,EAAM,GAAKA,EAAM,QAE9B,IAATjiF,IACAs/E,EAAQt/E,EAAKuZ,EACbqoE,EAAY5hF,EAAK+P,MAAA,CAuBzB,OAnBA6zE,EAAS,WAxtDzB,IAAA/G,EAAAznB,EAAA+gB,EAAA7/B,EAytDwBsmC,EAAQ0C,IAAUn/E,EAAIimE,SACtBqB,EAAI4D,YACJ5D,EAAItC,KAAKyX,EAAO,EAAG7sE,EAAQ6sE,EAAO5sE,GAClCy3D,EAAI0C,QAER1C,EAAI4D,YACJ5D,EAAItC,KAAKma,EAAQ,GAAKhV,EAAQ,GAAKsX,EAAWn9D,GAC9CgjD,EAAI+D,YAAc,OAAApW,EAAA,OAAAynB,EAAA18E,EAAI88E,oBAAJ,EAAAJ,EAAmBxnB,aAAnBD,EAAkCF,EAAMG,YAC1DoS,EAAIkE,UAAY,EAChBlE,EAAIlD,SAEA+e,IACA7b,EAAI4D,YACJ5D,EAAItC,KAAKma,EAAQsC,EAAY,EAAGtX,EAAQ7lD,EAAK,EAAG,EAAG,GACnDgjD,EAAIuB,UAAY,OAAA1yB,EAAA,OAAA6/B,EAAAh2E,EAAI88E,oBAAJ,EAAA9G,EAAmB9gB,aAAnB/e,EAAkC4e,EAAMG,YACxDoS,EAAIpD,OAAA,GAGL,CAlCsB,CAkCtB,KAGJ,UAIA,IAAXuf,EAAJ,CAEA,IAAM/lG,EAAS,WACX4pF,EAAIpH,OACJoH,EAAI4D,YACJ5D,EAAItC,KAAK,EAAG+J,EAAmBn/D,EAAOC,EAASk/D,EAAoByU,GACnElc,EAAI0C,OAEJ,MAAAyZ,GAAAA,IAEAnc,EAAIiB,SAAA,EAKR,OAFA7qF,IAEOA,CAf0B,CAhEtB,CA+EJ,CAsJJ,SAAAgmG,GAAkBzqG,EAAkB0qG,GAv5D3C,IAAA3uB,EAAAC,EAy5DQ4X,EA6CA5zF,EA7CA4zF,OACA+W,EA4CA3qG,EA5CA2qG,aACAh0E,EA2CA32B,EA3CA22B,MACAC,EA0CA52B,EA1CA42B,OACAw2D,EAyCAptF,EAzCAotF,YACA2I,EAwCA/1F,EAxCA+1F,YACAC,EAuCAh2F,EAvCAg2F,WACAC,EAsCAj2F,EAtCAi2F,WACAG,EAqCAp2F,EArCAo2F,cACAuM,EAoCA3iG,EApCA2iG,aACAzM,EAmCAl2F,EAnCAk2F,cACA0M,EAkCA5iG,EAlCA4iG,iBACA9mB,EAiCA97E,EAjCA87E,MACAurB,EAgCArnG,EAhCAqnG,UACA/Q,EA+BAt2F,EA/BAs2F,aACAT,EA8BA71F,EA9BA61F,kBACAsR,EA6BAnnG,EA7BAmnG,aACA9Q,EA4BAr2F,EA5BAq2F,UACAwG,EA2BA78F,EA3BA68F,eACAgG,EA0BA7iG,EA1BA6iG,WACA5hB,EAyBAjhF,EAzBAihF,UACAipB,EAwBAlqG,EAxBAkqG,WACepN,EAuBf98F,EAvBAm2F,cACA3kB,EAsBAxxE,EAtBAwxE,KACA01B,EAqBAlnG,EArBAknG,eACAlE,EAoBAhjG,EApBAgjG,gBACApG,EAmBA58F,EAnBA48F,oBACAwK,EAkBApnG,EAlBAonG,UACAhM,EAiBAp7F,EAjBAo7F,eACA6D,EAgBAj/F,EAhBAi/F,mBACAqI,EAeAtnG,EAfAsnG,cACAC,EAcAvnG,EAdAunG,iBACAxU,EAaA/yF,EAbA+yF,YACA6X,EAYA5qG,EAZA4qG,aACA7H,EAWA/iG,EAXA+iG,YACA1S,EAUArwF,EAVAqwF,cACAkL,EASAv7F,EATAu7F,UACAF,EAQAr7F,EARAq7F,cACAwP,EAOA7qG,EAPA6qG,UACA3L,EAMAl/F,EANAk/F,UACAzD,EAKAz7F,EALAy7F,QACAhW,EAIAzlF,EAJAylF,gBACAqlB,EAGA9qG,EAHA8qG,eACAC,EAEA/qG,EAFA+qG,QACAC,EACAhrG,EADAgrG,QAEE/H,EAAWjjG,EAAXijG,OACN,GAAc,IAAVtsE,GAA0B,IAAXC,EAAnB,CACA,IAAMq0E,GAAkC,kBAAnBH,EACf1X,GAAMyX,EAAY,EAAIr/F,KAAKC,KAAK,OAAAswE,EAAAxgE,OAAO83E,kBAAPtX,EAA2B,GAE3DmvB,GAA6B,WAAnBJ,GAhHpB,SAAwBrgF,EAAsB8sB,GAC1C,QAAa,IAATA,EAAoB,OAAO,EAC/B,GACI9sB,EAAQkM,QAAU4gB,EAAK5gB,OACvBlM,EAAQmM,SAAW2gB,EAAK3gB,QACxBnM,EAAQqxD,QAAUvkC,EAAKukC,OACvBrxD,EAAQ6rE,eAAiB/+C,EAAK++C,cAC9B7rE,EAAQ4rE,YAAc9+C,EAAK8+C,WAC3B5rE,EAAQ+mD,OAASj6B,EAAKi6B,MACtB/mD,EAAQmyE,sBAAwBrlD,EAAKqlD,qBACrCnyE,EAAQ28E,YAAc7vD,EAAK6vD,WAC3B38E,EAAQo4E,aAAetrD,EAAKsrD,YAC5Bp4E,EAAQoyE,iBAAmBtlD,EAAKslD,gBAChCpyE,EAAQy8E,iBAAmB3vD,EAAK2vD,gBAChCz8E,EAAQ88E,mBAAqBhwD,EAAKgwD,kBAClC98E,EAAQw2D,YAAc1pC,EAAK0pC,WAC3Bx2D,EAAQm4E,mBAAqBrrD,EAAKqrD,kBAClCn4E,EAAQ68E,gBAAkB/vD,EAAK+vD,eAC/B78E,EAAQy0E,YAAc3nD,EAAK2nD,WAC3Bz0E,EAAQogF,YAActzD,EAAKszD,UAE3B,OAAO,EAEX,GAAIpgF,EAAQ2rE,gBAAkB7+C,EAAK6+C,cAAe,CAC9C,GAAI3rE,EAAQ2rE,cAAcr2F,OAAS,KAAO0qB,EAAQ2rE,cAAcr2F,SAAWw3C,EAAK6+C,cAAcr2F,OAG1F,OAAO,EAKX,IADA,IAAIorG,EACKtrG,EAAI,EAAGA,EAAI4qB,EAAQ2rE,cAAcr2F,OAAQF,IAAK,CACnD,IAAMurG,EAAS3gF,EAAQ2rE,cAAcv2F,GAC/BwrG,EAAU9zD,EAAK6+C,cAAcv2F,GAEnC,IAAIo7E,GAAUmwB,EAAQC,GAAtB,CAGA,QAAgB,IAAZF,EAAuB,OAAO,EAElC,GAAIC,EAAOz0E,QAAU00E,EAAQ10E,MAAO,OAAO,EAEby0E,EAAtBz0E,MAAR,IAAkB20E,EAAA9mD,EAAY4mD,EAAAG,IAI9B,GAH0CF,EAAlC10E,OAGHskD,GAAUqwB,EAHc9mD,EAAa6mD,EAAAG,KAGP,OAAO,EAC1CL,EAAUtrG,CAZ8B,CAY9B,CAEd,YAAgB,IAAZsrG,GAIGA,CAAA,CAEX,OAAO,EAwDwCM,CAAezrG,EAAK0qG,GAE/D9W,EAAOj9D,QAAUA,EAAQy8D,IAAOQ,EAAOh9D,SAAWA,EAASw8D,KAC3DQ,EAAOj9D,MAAQA,EAAQy8D,GACvBQ,EAAOh9D,OAASA,EAASw8D,GAEzBQ,EAAOttE,MAAMqQ,MAAQA,EAAQ,KAC7Bi9D,EAAOttE,MAAMsQ,OAASA,EAAS,MAGnC,IAAM80E,GAAgBf,EAChB7U,GAAoB6M,EAAe9M,EAAoBS,EAAeA,EAEtEqV,GAAgB7V,GAAoB,EACtC4V,GAAc/0E,QAAUA,EAAQy8D,IAAOsY,GAAc90E,SAAW+0E,GAAgBvY,KAChFsY,GAAc/0E,MAAQA,EAAQy8D,GAC9BsY,GAAc90E,OAAS+0E,GAAgBvY,GAEvCsY,GAAcplF,MAAMqQ,MAAQA,EAAQ,KACpC+0E,GAAcplF,MAAMsQ,OAAS+0E,GAAgB,OAG7CV,IAAiBF,EAAQp0E,QAAUA,EAAQy8D,IAAO2X,EAAQn0E,SAAWA,EAASw8D,KAC9E2X,EAAQp0E,MAAQA,EAAQy8D,GACxB2X,EAAQn0E,OAASA,EAASw8D,KAG1B6X,IAAiBD,EAAQr0E,QAAUA,EAAQy8D,IAAO4X,EAAQp0E,SAAWA,EAASw8D,KAC9E4X,EAAQr0E,MAAQA,EAAQy8D,GACxB4X,EAAQp0E,OAASA,EAASw8D,IAG9B,IAAM77C,GAAOqzD,EAAangF,QAC1B,IACgB,IAAZygF,IACA9d,KAAgB,MAAA71C,QAAA,EAAAA,GAAM61C,cACtB2I,KAAgB,MAAAx+C,QAAA,EAAAA,GAAMw+C,cACtBC,KAAe,MAAAz+C,QAAA,EAAAA,GAAMy+C,aACrBC,KAAe,MAAA1+C,QAAA,EAAAA,GAAM0+C,YALzB,CASA,IAAI2V,GAA2C,KAC3CX,KACAW,GAAUhY,EAAOC,WAAW,KAAM,CAC9BqF,OAAO,KAGf,IAGI2S,GAHEC,GAAaJ,GAAc7X,WAAW,KAAM,CAC9CqF,OAAO,IAUL6S,IAJFF,GAHCZ,QAEiB,IAAXhI,EAC6B,OAArB,MAAA1rD,QAAA,EAAAA,GAAMy0D,YAAqBhB,EAAUD,EAEhB,OAArB,MAAAxzD,QAAA,EAAAA,GAAMy0D,YAAqBjB,EAAUC,EAJrCpX,GAMYC,WAAW,KAAM,CAC5CqF,OAAO,IAEL+S,GAAahB,GAAgBY,KAAiBd,EAAUC,EAAUD,EAAWnX,EAEnF,GAAmB,OAAfkY,IAAqC,OAAdC,GAA3B,CAEA,IAAMpP,GAAoC,kBAAdtG,EAAyB,kBAAMA,CAAA,EAAYA,EAEvEyV,GAAW7kB,OACX6kB,GAAW7Z,YACX8Z,GAAU9kB,OACV8kB,GAAU9Z,YAEV6Z,GAAWzc,aAAe,SAC1B0c,GAAU1c,aAAe,SAEb,IAAR+D,KACA0Y,GAAWhY,MAAMV,GAAKA,IACtB2Y,GAAUjY,MAAMV,GAAKA,KAGzB,IAAMoJ,GAAgBrP,GAAoBiJ,EAAehJ,EAAaz2D,EAAOisE,EAAkB5M,GAE3FyG,GAA2B,GAEzByP,GAAwB7E,IAAa,OAAArrB,EAAAiF,EAAUx2D,cAAV,EAAAuxD,EAAmBvE,KAAK,MAAOse,GAA8B,IAAfE,EACnFkW,GAAoB,WAliE9B,IAAA1I,EAAA2I,EAmiEQ1J,GACIoJ,GACAtP,GACAmG,EACApH,EACA5kE,EACAq/D,EACAM,EACAT,EACA+M,EACAC,EACA5hB,EACAnF,EACAuf,EACA0H,EACAlG,EACAmG,EACAC,EACAhE,EACAC,GAGJ3C,GACIuP,GACAtP,GACAzG,EACAC,EACAC,EACAt/D,EACAC,OACA,OACA,EACAi/D,EACAC,GACA6G,GACAC,EACAC,EACAC,EACAtrB,EACAsK,GACA,GAGJgwB,GAAW7Z,YACX6Z,GAAWv8C,OAAO,EAAGo8C,GAAgB,IACrCG,GAAW3Z,OAAOx7D,EAAOg1E,GAAgB,IACzCG,GAAW1Z,YAAcoI,GACrB,OAAA4R,EAAA,OAAA3I,EAAA3nB,EAAMuwB,yBAAN5I,EAAiC3nB,EAAMwB,uBAAvC8uB,EAAgEtwB,EAAMuB,YACtEvB,EAAMiB,UAEV+uB,GAAW3gB,SAEP+gB,IACAlC,GACI8B,GACAn1E,EACAC,EACAm/D,EACAC,EACAC,EACAuG,GACApG,EACAta,EACAga,GACA7U,EACA0b,GACAuK,EACApK,EACAoN,EACA14B,EAAA,EAMZ,QAAe,IAAXyxB,EAAsB,CACtB,IAAIqJ,IAAY,EAyHhB,OAxHArJ,EAASA,EAAOl6C,QAAO,SAAA5oB,GAEnB,OADAmsE,GAAYA,IAAansE,EAAE,GAAK,EAE5BA,EAAE,GAAK,GACP8kE,GAAc7X,EAAa2I,EAAayG,GAAcz8F,OAAQ,IAAKogC,EAAE,GAAIA,EAAE,GAAI,EAAG,IAClF8kE,GAAc,EAAGlP,EAAaG,EAAe,IAAK/1D,EAAE,GAAIA,EAAE,GAAI,EAAG,IAChE28D,GAAmBmI,GAAc7X,EAAa5b,EAAO,EAAGgrB,GAAcz8F,OAAQ,EAAGogC,EAAE,GAAIA,EAAE,GAAI,EAAG,OAI9FpgC,OAAS,IAChBulG,GACIyG,GACAvP,GACA7lE,EACAC,EACAi/D,EACAC,GACAE,EACAC,EACAF,EACAvkB,EACAmrB,GACAG,EACAmG,GACA,GAGJ8I,GAAUnc,UAAY9T,EAAMe,OAC5BkvB,GAAU9P,SAAS,EAAGnG,GAAoB,EAAGn/D,EAAOC,EAASk/D,GAAoB,GAEjFmR,GACI8E,GACAvP,GACApG,EACAx/D,EACAk/D,GACAE,EACAC,EACAF,EACAvkB,EACAmrB,GACAuK,EACAlE,EACApG,EACAuK,EACAC,EACAC,EACAvK,EACAL,GACAwG,EACAhiB,EACAqmB,EACAC,EACAnM,EACArI,EACAsI,EACA0H,EACAxH,EACAlL,EACAvU,EACA2f,EACAhW,GAIAykB,GACA7C,QACsB,IAAtBpmB,EAAUx2D,SACVw4E,EAAOzgC,MAAK,SAAAriC,GArrE5B,IAAAsjE,EAAA2I,EAqrEiC,OAAAjsE,EAAE,MAAO,OAAAsjE,EAAAxiB,EAAUx2D,cAAV,EAAAg5E,EAAmBhsB,KAAK,KAAMt3C,EAAE,MAAO,OAAAisE,EAAAnrB,EAAUx2D,cAAV,EAAA2hF,EAAmB30B,KAAK,QAEzFuyB,GACI+B,GACAp1E,EACAC,EACAm/D,EACAC,EACAC,EACAuG,GACApG,EACAta,EACAga,GACA7U,EACA0b,GACAuK,EACApK,EACAoN,EACA14B,IAKR86B,KACAhH,GACIwG,GACAtP,GACA7lE,EACAm/D,GACAD,EACAC,GACAE,EACAC,EACAF,EACAvkB,EACAmrB,GACAG,EACAmG,GACA,GAEJkJ,MAEJJ,GAAUzc,UACVwc,GAAWxc,eAEK,OAAZsc,KACAA,GAAQhc,UAAY9T,EAAMe,OAC1B+uB,GAAQ3P,SAAS,EAAG,EAAGtlE,EAAOC,GAC9Bg1E,GAAQ1W,UAAU6W,GAAUnY,OAAQ,EAAG,IAG3C,CAYJ,IARgB,IAAZsX,IACA9d,KAAgB,MAAA71C,QAAA,EAAAA,GAAM61C,cACtB4I,KAAe,MAAAz+C,QAAA,EAAAA,GAAMy+C,aACrBkW,MAA0B,MAAA30D,QAAA,EAAAA,GAAM20D,wBAEhCC,MAGY,IAAZjB,GAAkB,CAClBrwB,QAAsB,IAAfoxB,SAAqC,IAAT10D,IACnC,IAAAg1D,GAhlER,SACIle,EACAuF,EACAr8C,EACA61C,EACA2I,EACAC,EACAC,EACAE,EACAx/D,EACAC,EACA46C,EACAskB,EACA1C,EACAgD,EACAoG,EACAG,EACAsO,GAEA,IAAMxO,EAA2B,GAC7B+P,GAAe,EAEnBne,EAAI4G,uBAAwB,EAC5B,IAAMsI,EAAO/xF,KAAKsJ,IAAIyiC,EAAKw+C,YAAaA,GAClCyH,EAAOhyF,KAAKG,IAAI4rC,EAAKw+C,YAAaA,GACpCn+D,EAAS,EACb,GAA4B,kBAAjB+kE,EACP/kE,IAAW4lE,EAAOD,GAAQZ,OAE1B,IAAK,IAAI98F,EAAI09F,EAAM19F,EAAI29F,EAAM39F,IACzB+3B,GAAU+kE,EAAa98F,GAG3Bk2F,EAAcx+C,EAAKw+C,cACnBn+D,GAAUA,GAEdA,GAAUq+D,EAAa1+C,EAAK0+C,WAK5B,IAHA,IAAMoH,EAAO7xF,KAAKsJ,IAAIyiC,EAAK61C,YAAaA,GAClCkQ,EAAO9xF,KAAKG,IAAI4rC,EAAK61C,YAAaA,GACpC11D,EAAS,EACJ73B,EAAIw9F,EAAMx9F,EAAIy9F,EAAMz9F,IACzB63B,GAAU0+D,EAAcv2F,GAAG82B,MAE3By2D,EAAc71C,EAAK61C,cACnB11D,GAAUA,GAEdA,GAAUs+D,EAAaz+C,EAAKy+C,WAE5B,IAAIyW,EAAcxf,GAAeuP,GAGjC,GAFIiQ,EAAc,GAAGA,IAEN,IAAX/0E,GAA2B,IAAXE,EAChB,MAAO,CACH80E,QAAS,GACTC,OAAO,GAIf,IAAMlH,EAAkBtP,EACM,kBAAjBwG,EACHA,EACAA,EAAanrB,EAAO,GACxB,EAEAo7B,EAAYj2E,EAAQ81E,EAAcjhG,KAAK4/C,IAAI1zB,GAC3Cm1E,EAAaj2E,EAASk/D,EAAoB2P,EAAkBj6F,KAAK4/C,IAAIxzB,GAAU,EAErF,GAAIg1E,EAAY,KAAOC,EAAa,IAAK,CACrCL,EAA0B,IAAX90E,EAEf,IAAM7hB,EAAO,CACTi3F,GAAI,EACJC,GAAI,EACJC,GAAIr2E,EAAQy8D,EACZznD,GAAI/U,EAASw8D,EACb6Z,GAAI,EACJC,GAAI,EACJC,GAAIx2E,EAAQy8D,EACZhqD,GAAIxS,EAASw8D,GAIbx7D,EAAS,GAET/hB,EAAKk3F,IAAMjX,EAAoB,GAAK1C,EACpCv9E,EAAK81B,GAAKkhE,EAAazZ,EACvBv9E,EAAKq3F,IAAMt1E,EAASk+D,EAAoB,GAAK1C,EAC7Cv9E,EAAKuzB,GAAKyjE,EAAazZ,EAEvBqJ,EAAYv8F,KAAK,CACbigC,EAAG,EACHwJ,EAAGmsD,EACHn/D,MAAAA,EACAC,OAAQgB,EAAS,KAEdA,EAAS,IAEhB/hB,EAAKk3F,KAAOn1E,EAASk+D,EAAoB,GAAK1C,EAC9Cv9E,EAAK81B,GAAKkhE,EAAazZ,EACvBv9E,EAAKq3F,IAAMpX,EAAoB,GAAK1C,EACpCv9E,EAAKuzB,GAAKyjE,EAAazZ,EAEvBqJ,EAAYv8F,KAAK,CACbigC,EAAG,EACHwJ,EAAG/S,EAASgB,EAAS6tE,EACrB9uE,MAAAA,EACAC,QAASgB,EAAS6tE,KAKtB/tE,EAAS,GAET7hB,EAAKi3F,GAAKL,EAAcrZ,EACxBv9E,EAAKm3F,GAAKJ,EAAYxZ,EACtBv9E,EAAKo3F,IAAMv1E,EAAS+0E,GAAerZ,EACnCv9E,EAAKs3F,GAAKP,EAAYxZ,EAEtBqJ,EAAYv8F,KAAK,CACbigC,EAAGssE,EAAc,EACjB9iE,EAAG,EACHhT,MAAOe,EAAS,EAChBd,OAAAA,KAEGc,EAAS,IAEhB7hB,EAAKi3F,IAAML,EAAc/0E,GAAU07D,EACnCv9E,EAAKm3F,GAAKJ,EAAYxZ,EACtBv9E,EAAKo3F,GAAKR,EAAcrZ,EACxBv9E,EAAKs3F,GAAKP,EAAYxZ,EAEtBqJ,EAAYv8F,KAAK,CACbigC,EAAGxJ,EAAQe,EACXiS,EAAG,EACHhT,OAAQe,EACRd,OAAAA,KAIRy3D,EAAI+e,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC5BX,EAAc,GAAgB,IAAX/0E,GAA2B,IAAXE,GAAgBqzE,GAGnD5c,EAAI6G,UAAUtB,EAAQ,EAAG,EAAG6Y,EAAcrZ,EAAKx8D,EAASw8D,EAAK,EAAG,EAAGqZ,EAAcrZ,EAAKx8D,EAASw8D,GAEnG/E,EAAI6G,UAAUtB,EAAQ/9E,EAAKi3F,GAAIj3F,EAAKk3F,GAAIl3F,EAAKm3F,GAAIn3F,EAAK81B,GAAI91B,EAAKo3F,GAAIp3F,EAAKq3F,GAAIr3F,EAAKs3F,GAAIt3F,EAAKuzB,IAC1FilD,EAAIyF,MAAMV,EAAKA,EAAA,CAInB,OAFA/E,EAAI4G,uBAAwB,EAErB,CACHyX,QAASjQ,EACTkQ,MAAOH,EAAA,CAu7Daa,CAChBtB,GACAE,GACA10D,GACA61C,EACA2I,EACAC,EACAC,EACoB,WAApB6G,EACAnmE,EACAC,EACA46C,EACAskB,GACA1C,GACAgD,EACAoG,GACAnG,EACA4U,IAEJxO,GAnBQ8P,GAAAG,OAmBM,UACK,IAAZxB,GAAmB,CAC1BrwB,QAAgB,IAATtjC,IAEPklD,GA18DR,SAGIllD,EACA61C,EACA2I,EACAC,EACAC,EACAt/D,EACAC,EACAk/D,EAEA0G,EACA8Q,GAEA,IAAM7Q,EAA2B,GAIjC,OACIrP,IAAgB71C,EAAK61C,aACrB2I,IAAgBx+C,EAAKw+C,aACrBC,IAAez+C,EAAKy+C,YACpBC,IAAe1+C,EAAK0+C,YAKxBqN,GAAY9G,EAAezG,EAAaC,EAAYC,EAAYH,GAAmB,SAAC96E,EAAGs6E,EAAOiY,EAAQ/J,GAClG,GAAIxoF,EAAEwkF,cAAgB8N,EAAc,CAChC,IAAMntE,EAAI30B,KAAKG,IAAI2pF,EAAOkO,GAAS,EAOnC,OANA/G,EAAYv8F,KAAK,CACbigC,EAAAA,EACAwJ,EAAG,EACHhT,MAAOA,EAAQwJ,EACfvJ,OAAAA,KAEG,MAZJ6lE,CAeJ,CAk6DW+Q,CACVj2D,GACA61C,EACA2I,EACAC,EACAC,EACAt/D,EACAC,EACAk/D,GACA0G,GAVe0O,GAWf,EAx1BZ,SACI7c,EACAmO,EACA7lE,EACAC,EACAu/D,EACA3kB,EACAqrB,EACAF,EACA7gB,GAx8CJ,IAAAC,EA28CoB0xB,EADZC,GAAmB,EAAAC,EAAAtlC,EACPm0B,GAAA,IAAhB,IAAAmR,EAAA7sC,MAAA2sC,EAAAE,EAAA5hG,KAAAygC,MAA+B,KAApBxxB,EAAAyyF,EAAAnpG,MACP,IAAI0W,EAAEgyE,OAAN,CACA0gB,EAAmB7Q,EAAe7hF,EAAEwkF,aACpC,KAFsB,CAEtB,QAAAjmF,GAAAo0F,EAAAx/F,EAAAoL,EAAA,SAAAo0F,EAAA3xF,GAAA,CAEJ,IAAMmhF,EAAS,OAAAphB,EAAAD,EAAMwB,uBAANvB,EAA+BD,EAAMuB,YAC9C+f,EAASthB,EAAMuB,YACfiY,EAAQoY,EAAmBzgB,GAAeuP,GAAiB,EAUjE,GARc,IAAVlH,IACAjH,EAAI4D,YACJ5D,EAAI9+B,OAAO+lC,EAAQ,GAAK,GACxBjH,EAAI8D,OAAOmD,EAAQ,GAAK1+D,GACxBy3D,EAAI+D,YAAcoI,GAAM4C,EAAQthB,EAAMe,QACtCwR,EAAIlD,UAGJgL,EAAe,CACf,IAAM72E,EAAIq9E,EAAanrB,EAAO,GAC9B6c,EAAI4D,YACJ5D,EAAI9+B,OAAO,EAAG34B,EAAStX,EAAI,IAC3B+uE,EAAI8D,OAAOx7D,EAAOC,EAAStX,EAAI,IAC/B+uE,EAAI+D,YAAcoI,GAAM2C,EAAQrhB,EAAMe,QACtCwR,EAAIlD,QAAA,EAyzBRyiB,CACI7B,GACAvP,GACA7lE,EACAC,EACoB,WAApBkmE,EACAtrB,EACAqrB,EACAF,GACA7gB,GAIJ,IAAM+xB,GAAcxG,EACd2C,GACI+B,GACAp1E,EACAC,EACAm/D,EACAC,EACAC,EACAuG,GACApG,EACAta,EACAga,GACA7U,EACA0b,GACAuK,EACApK,EACAoN,EACA14B,QAEJ,EAEAs8B,GAv1BV,SACIzf,EACA13D,EACAC,EACAw2D,EACA2I,EACAC,EACAC,EACAG,EACAF,EACAI,EACAT,EACAQ,EACAF,EACA3kB,EACAu8B,GAEA,IAAMxG,EAAmB,MAAAwG,OAAA,EAAAA,EAAqBhlD,QAAO,SAAA5oB,GAAA,MAAiB,eAAZA,EAAE7Z,KAAU,IACtE,QAAyB,IAArBihF,GAA8D,IAA5BA,EAAiBxnG,OAAvD,CACA,IAAMiuG,EAAYzG,EAAiBj3F,KAAI,SAAAgP,GAz/C3C,IAAAy8D,EAAAC,EAAA+gB,EAAA7/B,EAAAL,EA0/CcnzB,EAAIpqB,EAAErH,MACNg2F,EAAgBrY,GAClBlsD,EAAEvJ,EACFuJ,EAAEC,EACFhT,EACAC,EACAi/D,EACAS,EAAeT,EACfzI,EACA2I,EACAC,EACAC,EACAzkB,EACA0kB,EACAC,EACAC,EACAC,GAEJ,GAAgB,IAAZ3sD,EAAE/S,OAA4B,IAAb+S,EAAE9S,OACnB,OAAI8S,EAAEvJ,EAAI+1D,EACC,CAAC,CAAEp9D,MAAOxZ,EAAEwZ,MAAOxS,MAAO,OAAAy1D,EAAAz8D,EAAEgH,OAAFy1D,EAAW,SAAUgQ,KAAMkiB,QAAiB,GAE1E,MAAC,EAAW,CAAEn1E,MAAOxZ,EAAEwZ,MAAOxS,MAAO,OAAA01D,EAAA18D,EAAEgH,OAAF01D,EAAW,SAAU+P,KAAMkiB,IAG3E,IAAMC,EAAoBtY,GACtBlsD,EAAEvJ,EAAIuJ,EAAE/S,MAAQ,EAChB+S,EAAEC,EAAID,EAAE9S,OAAS,EACjBD,EACAC,EACAi/D,EACAS,EAAeT,EACfzI,EACA2I,EACAC,EACAC,EACAzkB,EACA0kB,EACAC,EACAC,EACAC,GAEJ,GAAI3sD,EAAEvJ,EAAI+1D,GAAiBxsD,EAAEvJ,EAAIuJ,EAAE/S,OAASu/D,EAAe,CACvD,IAAMiY,EAA2BvY,GAC7BM,EAAgB,EAChBxsD,EAAEC,EAAID,EAAE9S,OAAS,EACjBD,EACAC,EACAi/D,EACAS,EAAeT,EACfzI,EACA2I,EACAC,EACAC,EACAzkB,EACA0kB,EACAC,EACAC,EACAC,GAEE+X,EAA4BxY,GAC9BM,EACAxsD,EAAEC,EAAID,EAAE9S,OAAS,EACjBD,EACAC,EACAi/D,EACAS,EAAeT,EACfzI,EACA2I,EACAC,EACAC,EACAzkB,EACA0kB,EACAC,EACAC,EACAC,GAGJ,MAAO,CACH,CACIv9D,MAAOxZ,EAAEwZ,MACTxS,MAAO,OAAAy2E,EAAAz9E,EAAEgH,OAAFy2E,EAAW,SAClBhR,KAAM,CACF5rD,EAAG8tE,EAAc9tE,EACjBwJ,EAAGskE,EAActkE,EACjBhT,MAAOw3E,EAAyBhuE,EAAIguE,EAAyBx3E,MAAQs3E,EAAc9tE,EACnFvJ,OAAQu3E,EAAyBxkE,EAAIwkE,EAAyBv3E,OAASq3E,EAActkE,IAG7F,CACI7Q,MAAOxZ,EAAEwZ,MACTxS,MAAO,OAAA42C,EAAA59C,EAAEgH,OAAF42C,EAAW,SAClB6uB,KAAM,CACF5rD,EAAGiuE,EAA0BjuE,EAC7BwJ,EAAGykE,EAA0BzkE,EAC7BhT,MAAOu3E,EAAkB/tE,EAAI+tE,EAAkBv3E,MAAQy3E,EAA0BjuE,EACjFvJ,OAAQs3E,EAAkBvkE,EAAIukE,EAAkBt3E,OAASw3E,EAA0BzkE,IAAA,CAK/F,MAAO,MACH,EACA,CACI7Q,MAAOxZ,EAAEwZ,MACTxS,MAAO,OAAAu2C,EAAAv9C,EAAEgH,OAAFu2C,EAAW,SAClBkvB,KAAM,CACF5rD,EAAG8tE,EAAc9tE,EACjBwJ,EAAGskE,EAActkE,EACjBhT,MAAOu3E,EAAkB/tE,EAAI+tE,EAAkBv3E,MAAQs3E,EAAc9tE,EACrEvJ,OAAQs3E,EAAkBvkE,EAAIukE,EAAkBt3E,OAASq3E,EAActkE,IAAA,IAOrF8iE,EAAcxf,GAAemJ,GAE7BoU,EAAS,WACXnc,EAAI4D,YACJ5D,EAAIpH,OACJ,IAAIonB,GAAS,EACPC,EAAY,SAACC,GACXF,IAAWE,IACflgB,EAAImgB,YAAYD,EAAO,CAAC,EAAG,GAAK,IAChCF,EAASE,EAAA,EAGblgB,EAAIkE,UAAY,MACCkc,EADDC,EAAArmC,EACC2lC,GAAA,IAAjB,IAAAU,EAAA5tC,MAAA2tC,EAAAC,EAAA3iG,KAAAygC,MAA4B,KAAjBs7D,EAAA2G,EAAAnqG,MACAw8D,GAAPpE,EAAAA,EAAAA,GAAYorC,EAAA,GAAL,QAEG,IAANhnC,GACAmkC,GAAc,EAAG,EAAGtuE,EAAOC,EAAQkqC,EAAEirB,KAAK5rD,EAAG2gC,EAAEirB,KAAKpiD,EAAGm3B,EAAEirB,KAAKp1D,MAAOmqC,EAAEirB,KAAKn1D,UAE5E03E,EAAsB,WAAZxtC,EAAEx6C,OACZ+nE,EAAI+D,YAAciI,GAAUv5B,EAAEhoC,MAAO,GACrCu1D,EAAIsgB,WAAW7tC,EAAEirB,KAAK5rD,EAAI,EAAG2gC,EAAEirB,KAAKpiD,EAAI,EAAGm3B,EAAEirB,KAAKp1D,MAAQ,EAAGmqC,EAAEirB,KAAKn1D,OAAS,WAAArd,GAAAm1F,EAAAvgG,EAAAoL,EAAA,SAAAm1F,EAAA1yF,GAAA,CAGrF,IACiB4yF,EADbC,GAAU,EAAAC,EAAAzmC,EACG2lC,GAAA,IAAjB,IAAAc,EAAAhuC,MAAA8tC,EAAAE,EAAA/iG,KAAAygC,MAA4B,KAAjBs7D,EAAA8G,EAAAtqG,MACEw8D,GAATpE,EAAAA,EAAAA,GAAcorC,EAAA,GAAL,QAEC,IAANhnC,GACAmkC,GAAc,EAAG,EAAGtuE,EAAOC,EAAQkqC,EAAEirB,KAAK5rD,EAAG2gC,EAAEirB,KAAKpiD,EAAGm3B,EAAEirB,KAAKp1D,MAAOmqC,EAAEirB,KAAKn1D,UAE5E03E,EAAsB,WAAZxtC,EAAEx6C,QACPuoF,GAAW/tC,EAAEirB,KAAK5rD,EAAIssE,IACvBpe,EAAItC,KAAK0gB,EAAa,EAAG91E,EAAOC,GAChCy3D,EAAI0C,OACJ8d,GAAU,GAEdxgB,EAAI+D,YAAciI,GAAUv5B,EAAEhoC,MAAO,GACrCu1D,EAAIsgB,WAAW7tC,EAAEirB,KAAK5rD,EAAI,EAAG2gC,EAAEirB,KAAKpiD,EAAI,EAAGm3B,EAAEirB,KAAKp1D,MAAQ,EAAGmqC,EAAEirB,KAAKn1D,OAAS,WAAArd,GAAAu1F,EAAA3gG,EAAAoL,EAAA,SAAAu1F,EAAA9yF,GAAA,CAGrFqyE,EAAIiB,SAAA,EAIR,OADAkb,IACOA,CApKqE,CAoKrE,CAiqBiBuE,CACpBhD,GACAp1E,EACAC,EACAw2D,EACA2I,EACAC,EACAC,EACAG,EACAF,EACAI,EACAT,EACAQ,EACoB,WAApByG,EACAtrB,EACA+1B,GAIJ,GADAwE,GAAUnc,UAAY9T,EAAMe,OACxB4f,GAAY18F,OAAS,EAAG,CACxBgsG,GAAU9Z,YAAA,IACM+c,GADNC,GAAA5mC,EACMo0B,IAAA,IAAhB,IAAAwS,GAAAnuC,MAAAkuC,GAAAC,GAAAljG,KAAAygC,MAA6B,KAAlB9C,GAAAslE,GAAA1qG,MACPynG,GAAUhgB,KAAKriD,GAAEvJ,EAAGuJ,GAAEC,EAAGD,GAAE/S,MAAO+S,GAAE9S,OAAA,QAAArd,IAAA01F,GAAA9gG,EAAAoL,GAAA,SAAA01F,GAAAjzF,GAAA,CAExC+vF,GAAUhb,OACVgb,GAAU9gB,OACV8gB,GAAU9Z,WAAA,MAEV8Z,GAAU9P,SAAS,EAAG,EAAGtlE,EAAOC,GAGpC,IAAM8lE,GAAQuK,GACV8E,GACAvP,GACApG,EACAx/D,EACAk/D,GACAE,EACAC,EACAF,EACAvkB,EACAmrB,GACAuK,EACAlE,EACApG,EACAuK,EACAC,EACAC,EACAvK,EACAL,GACAwG,EACAhiB,EACAqmB,EACAC,EACAnM,EACArI,EACAsI,EACA0H,EACAxH,EACAlL,EACAvU,EACA2f,EACAhW,IAphCR,SACI4I,EACAkX,EACAe,EACA3vE,EACAC,EACAk/D,EACAE,EACAC,EACAF,EACAvkB,EACAmrB,EACAuS,EACAC,EACAhI,EACArK,EACAL,EACAwG,EACAnnB,QAGe,IAAXmnB,GACAsC,EAAiBA,EAAiBxlG,OAAS,KAAOumG,EAAWf,EAAiBxlG,OAAS,IAG3FujG,GACIiC,EACAxP,EACAC,EACAC,EACAH,GACA,SAAC96E,EAAGs6E,EAAOqQ,EAAUnC,EAAOoC,GACxB,GAAI5qF,IAAMuqF,EAAiBA,EAAiBxlG,OAAS,GAArD,CACAu1F,GAASt6E,EAAE2b,MACX,IAAMwJ,EAAI30B,KAAKG,IAAI2pF,EAAOkO,GACtBrjE,EAAIxJ,IACR03D,EAAIpH,OACJoH,EAAI4D,YACJ5D,EAAItC,KAAK5rD,EAAG21D,EAAoB,EAAG,IAAQl/D,EAASk/D,EAAoB,GACxEzH,EAAI0C,OAEJ+U,GACIF,EACAD,EACA/uE,EACA46C,EACAmrB,EACAG,GACA,SAAC5L,EAAOzf,EAAKpmC,EAAI06D,GACb,GACKA,KACDtJ,EAAY18F,OAAS,IACpB08F,EAAYj6B,MAAK,SAAAslC,GAAA,OACd7C,GAAc3P,EAAOpE,EAAO,IAAQ7lD,EAAIy8D,EAAG3nE,EAAG2nE,EAAGn+D,EAAGm+D,EAAGnxE,MAAOmxE,EAAGlxE,OAAA,IAJzE,CAUA,IAAM0xE,EAAc6G,EAAantB,SAASvQ,GACpC82B,EAAcpB,EAAanlB,SAASvQ,GAE1C4c,EAAI4D,YAEJ,IAAMkM,EAAW,MAAA+Q,OAAA,EAAAA,EAAcz9B,GAEzB29B,OAA0B,IAAbjR,EAAyBriB,EAAA7yB,EAAAA,EAAA,GAAa6yB,GAAUqiB,GAE/DiR,EAAWvyB,SAAWf,EAAMe,SAC5BwR,EAAIuB,UAAYwf,EAAWvyB,OAC3BwR,EAAI4N,SAAS3G,EAAOpE,EAAO,IAAQ7lD,IAEnCk9D,IACAla,EAAIuB,UAAYwf,EAAWryB,SAC3BsR,EAAI4N,SAAS3G,EAAOpE,EAAO,IAAQ7lD,IAEnCi9D,IACAja,EAAIuB,UAAYwf,EAAWjzB,YAC3BkS,EAAI4N,SAAS3G,EAAOpE,EAAO,IAAQ7lD,GAtBnC,CAsBmC,IAK/CgjD,EAAIiB,UAnD2D,CAmD3D,IAo8BZ+f,CACItD,GACAvP,GACApG,EACAz/D,EACAC,EACAk/D,GACAE,EACAC,EACAF,EACAvkB,EACAmrB,GACAC,EACA3b,EAAUzP,KACV21B,EACArK,EACAL,GACAwG,EACAnnB,GAGJygB,GACIwP,GACAvP,GACAzG,EACAC,EACAC,EACAt/D,EACAC,EACA6lE,GACAC,GACA7G,EACAC,GACA6G,GACAC,EACAC,EACAC,EACAtrB,EACAsK,GAGJ,MAAA+xB,IAAAA,KACA,MAAAC,IAAAA,KAEgB,OAAZlC,KACAA,GAAQhc,UAAY9T,EAAMe,OAC1B+uB,GAAQ3P,SAAS,EAAG,EAAGtlE,EAAOC,GAC9Bg1E,GAAQ1W,UAAU6W,GAAUnY,OAAQ,EAAG,IAG3C,IAAM0b,GA5qBV,SACI/J,EACA3uE,EACAk/D,EACAE,EACAC,EACAF,EACAvkB,EACAmrB,EACAG,GAEA,IAAIr4F,EAAS,EAyBb,OAxBA6+F,GACIiC,EACAxP,EACAC,EACAC,EACAH,GACA,SAACiH,EAAIwS,EAAS5J,EAAU6J,EAAQ5J,GAe5B,OAdAE,GACIF,EACAD,EACA/uE,EACA46C,EACAmrB,EACAG,GACA,SAACyQ,EAAQ97B,EAAKg+B,EAAK1J,GACVA,IACDthG,EAAS+G,KAAKG,IAAI8lE,EAAKhtE,GAAA,KAK5B,KAGRA,CAAA,CAwoBcirG,CACjBlT,GACA5lE,EACAk/D,GACAE,EACAC,EACAF,EACAvkB,EACAmrB,GACAG,GAGJ,MAAA/J,GAAAA,EAAa4c,UACT,CACIxvE,EAAGitD,EACHzjD,EAAGosD,EACHp/D,MAAO6lE,GAAcz8F,OACrB62B,OAAQ04E,GAAevZ,GAE3BG,GAGJ0U,EAAangF,QAAU,CACnB2iE,YAAAA,EACA2I,YAAAA,EACAC,WAAAA,EACAC,WAAAA,EACAiW,sBAAAA,GACAF,WAAYf,GAAgBY,KAAiBd,EAAU,IAAM,SAAO,GAGxEgB,GAAUzc,UACVwc,GAAWxc,SApc0C,CAxB3C,CA5C6B,CAwgB5B,CAWf,SAAAwW,GACIF,EACA1U,EACAt6D,EACA46C,EACAmrB,EACAG,EACAp7E,GAKA,IAHA,IAAIioB,EAAIunD,EACJzf,EAAMm0B,EACNgK,EAA+B,WAApB9S,EACRnzD,EAAI/S,GAAUg5E,GAAU,CAC3B,IAAMC,EAAcD,GAAYjmE,GAAK/S,EACjCi5E,IACAD,GAAW,EACXn+B,EAAMD,EAAO,GAEjB,IAAMnmC,EAAKsxD,EAAalrB,GAQxB,GANIo+B,IACAlmE,EAAI/S,EAASyU,KAGQukE,GAAYn+B,IAAQD,EAAO,KAEqD,IAAhF9vD,EAAGioB,EAAG8nC,EAAKpmC,EAAIwkE,EAAiC,SAApB/S,GAA8BrrB,IAAQD,EAAO,GAC9F,MAGJ,GAAIq+B,EACA,MAEJlmE,GAAK0B,EACLomC,GAAA,EAYR,SAAA6xB,GACI9G,EACAzG,EACAC,EACAC,EACAH,EACAp0E,GAEA,IAGgBouF,EAHZ3vE,EAAI,EACJqjE,EAAQ,EACNtS,EAAQ4E,EAAoBG,EAAA8Z,EAAA1nC,EAClBm0B,GAAA,IAAhB,IAAAuT,EAAAjvC,MAAAgvC,EAAAC,EAAAhkG,KAAAygC,MAA+B,KAApBxxB,EAAA80F,EAAAxrG,MAEP,IAAgD,IAA5Cod,EAAG1G,EADOA,EAAEgyE,OAASwW,EAAQrjE,EAAI61D,EACpB9E,EAAOsS,EAAOzN,GAC3B,MAGJ51D,GAAKnlB,EAAE2b,MACP6sE,GAASxoF,EAAEgyE,OAAShyE,EAAE2b,MAAQ,SAAApd,GAAAw2F,EAAA5hG,EAAAoL,EAAA,SAAAw2F,EAAA/zF,GAAA,EAKtC,SAAAsoF,GACI9H,EACA7lE,EACAq/D,EACAH,EACAn0E,GAIA,IAziFJ,IAAAq6D,EAuiFQ57C,EAAI,EACJqjE,EAAQ,EACH7hG,EAAQ,EAAGA,EAAQ66F,EAAcz8F,OAAQ4B,IAAS,CACvD,IAAM+kG,EAAWlK,EAAc76F,GAE3BkK,EAAMlK,EAAQ,EACdquG,EAAWtJ,EAAS/vE,MAIxB,IAHI+vE,EAAS1Z,SACTwW,GAASwM,GAGTnkG,EAAM2wF,EAAcz8F,QACpB8rF,GAAa2Q,EAAc3wF,GAAK4qF,MAAOiQ,EAASjQ,QAChD+F,EAAc3wF,GAAKmhF,SAAWwP,EAAc76F,GAAOqrF,QACrD,CACE,IAAM2Z,EAASnK,EAAc3wF,GAC7BmkG,GAAYrJ,EAAOhwE,MACnB9qB,IACAlK,IACIglG,EAAO3Z,SACPwW,GAASmD,EAAOhwE,MAAA,CAIxB,IACMs5E,EAAS9vE,GADLumE,EAAS1Z,OAAS,EAAIgJ,GAE1BrrC,EAAQ+7C,EAAS1Z,OAAS,EAAIxhF,KAAKG,IAAI,EAAG63F,EAAQyM,GAClD5vE,EAAI70B,KAAKsJ,IAAIk7F,EAAWrlD,EAAOh0B,GAASs5E,EAAStlD,IACvDjpC,EACI,CAACglF,EAASlH,YAAahD,EAAc3wF,EAAM,GAAG2zF,aAC9C,OAAAzjB,EAAA2qB,EAASjQ,OAAT1a,EAAkB,GAClBk0B,EAAStlD,EACT,EACAtqB,EACAw1D,GAGJ11D,GAAK6vE,CAAA,ECpkFb,SAAAE,GAAsB/vE,GAClB,IAAM09D,EAAK19D,EAAI,EACf,OAAO09D,EAAKA,EAAKA,EAAK,EAGnB,IAAAsS,GAAAxrD,GACH,SAAAwrD,EAAoBhnE,GAAwB,IAAAinE,EAAA,KAAA3rD,EAAA,KAAA0rD,GAAxB,KAAAhnE,SAAAA,EAEZ,KAAAknE,wBAA4C,EAC5C,KAAAC,aAA4B,GAI5B,KAAAC,aAAe,SAACrzE,EAAwB0uB,GAC5C,OAAO,MAAA1uB,OAAA,EAAAA,EAAO,OAAO,MAAA0uB,OAAA,EAAAA,EAAQ,MAAM,MAAA1uB,OAAA,EAAAA,EAAO,OAAO,MAAA0uB,OAAA,EAAAA,EAAQ,KAGrD,KAAA4kD,kBAAoB,SAACrhD,GACAihD,EAAKE,aAAa9tC,MAAK,SAAA3iE,GAAA,OAAKuwG,EAAKG,aAAa1wG,EAAEsvD,KAAMA,EAAKA,KAAA,KAMpFihD,EAAKE,aAAapwG,KAAKivD,EAAA,EAMnB,KAAAshD,uBAAyB,SAACthD,GAvCtC,IAAA4sB,EAwCc20B,EAAcN,EAAKE,aAAan6C,MAAK,SAAAhoD,GAAA,OAAKiiG,EAAKG,aAAapiG,EAAEghD,KAAMA,EAAA,IAI1E,OAFAihD,EAAKE,aAAeF,EAAKE,aAAavnD,QAAO,SAAAlpD,GAAA,OAAKA,IAAM6wG,CAAA,IAEjD,OAAA30B,EAAA,MAAA20B,OAAA,EAAAA,EAAapV,aAAbvf,EAA4B,GAG/B,KAAA40B,uBAAyB,WAC7BP,EAAKE,aAAeF,EAAKE,aAAavnD,QAAO,SAAAlpD,GAAA,OAAKA,EAAEy7F,YAAc,MAG9D,KAAAsV,WAAa,WACjB,IAAMC,EAAkBT,EAAKE,aAAavwG,OAAS,EAC7C+wG,OAC0B,IAA5BV,EAAKC,oBAAoCD,EAAKC,mBAAmB/U,YAAc,EAEnF,OAAOuV,GAAmBC,CAAA,EAGtB,KAAAC,kBAAoB,WACxB,YAAgC,IAA5BX,EAAKC,mBACE,GAAPnxE,OAAAkiD,EAAWgvB,EAAKE,cAAA,CAAcF,EAAKC,qBAEhCD,EAAKE,aAAahgG,KAAI,SAAA6vB,GAAA,OAAA8oB,EAAAA,EAAA,GAAW9oB,GAAA,IAAGm7D,YAAa4U,GAAa/vE,EAAEm7D,cAAA,KAGnE,KAAAxvF,KAAO,SAACklG,GACZ,QAA+B,IAA3BZ,EAAKa,kBACLb,EAAKa,kBAAoBD,MACtB,CACH,IAGwBE,EAFlBvmD,GADOqmD,EAAYZ,EAAKa,mBA/DxB,GAgEeE,EAAA9oC,EAEF+nC,EAAKE,cAAA,IAAxB,IAAAa,EAAArwC,MAAAowC,EAAAC,EAAAplG,KAAAygC,MAAsC,KAA3B2iB,EAAA+hD,EAAA5sG,MACP6qD,EAAKmsC,YAAc8V,EAAMjiD,EAAKmsC,YAAc3wC,EAAO,EAAG,UAAApxC,GAAA43F,EAAAhjG,EAAAoL,EAAA,SAAA43F,EAAAn1F,GAAA,MAG1B,IAA5Bo0F,EAAKC,qBACLD,EAAKC,mBAAmB/U,YAAc8V,EAAMhB,EAAKC,mBAAmB/U,YAAc3wC,EAAO,EAAG,IAGhG,IAAM0mD,EAAYjB,EAAKW,oBACvBX,EAAKjnE,SAASkoE,GAEdjB,EAAKO,wBAAA,CAGLP,EAAKQ,cACLR,EAAKa,kBAAoBD,EACzBz1F,OAAOqpE,sBAAsBwrB,EAAKtkG,OAElCskG,EAAKa,uBAAoB,GAI1B,KAAAK,WAAa,SAACniD,GA/FzB,IAAA4sB,EAgGQ,IAAIq0B,EAAKG,aAAa,OAAAx0B,EAAAq0B,EAAKC,yBAAL,EAAAt0B,EAAyB5sB,KAAMA,GAArD,CAQA,QAJgC,IAA5BihD,EAAKC,oBACLD,EAAKI,kBAAkBJ,EAAKC,yBAGnB,IAATlhD,EAAoB,CACpB,IAAMmsC,EAAc8U,EAAKK,uBAAuBthD,GAChDihD,EAAKC,mBAAqB,CACtBlhD,KAAAA,EACAmsC,YAAAA,EAAA,MAGJ8U,EAAKC,wBAAqB,OAGC,IAA3BD,EAAKa,mBACL11F,OAAOqpE,sBAAsBwrB,EAAKtkG,KAlBlC,CAkBkC,KCnH9CylG,GAAA,WAGI,SAAAA,EAAY9zC,GAAahZ,EAAA,KAAA8sD,GACrB3vG,KAAK67D,GAAKA,CAAA,CAI0B,OAJ1B9Y,EAAA4sD,EAAA,EAAA5wG,IAAA,QAAAqB,IAAA,WAJlB,IAAA+5E,EAQQ,OAAO,OAAAA,EAAAn6E,KAAKolE,KAAL+U,EAAan6E,KAAKolE,IAAMplE,KAAK67D,IAAA,KAAA8zC,CAAA,CAR5C,GAYA,SAAA52C,GAAiB8C,GACb,OAAO,IAAI8zC,GAAK9zC,EAAA,CAIb,IAAM+zC,GAAmB72C,IAAK,kBAAMp/C,OAAO8/C,UAAUo2C,UAAU/wG,SAAS,cAClEgxG,GAAkB/2C,IAC3B,kBACIp/C,OAAO8/C,UAAUo2C,UAAU/wG,SAAS,WACpC6a,OAAO8/C,UAAUo2C,UAAU/wG,SAAS,YACnC6a,OAAO8/C,UAAUo2C,UAAU/wG,SAAS,aAEhCixG,GAAeh3C,IAAK,kBAAMp/C,OAAO8/C,UAAUu2C,SAASj1F,cAAcqhD,WAAW,UCdnF,SAAA6zC,GAA2BhW,GAC9B,IAAM7sD,EAAc8iE,EAAAA,OAAe,IAC7BC,EAAYD,EAAAA,OAAO,GACnBE,EAAgBF,EAAAA,OAAOjW,GAC7BmW,EAAQvnF,QAAUoxE,EAElB,IAAMoW,EAAaH,EAAAA,aAAY,WAC3B,IAEMr0C,EAAK,WACP,IAAMmgC,EAAS5uD,EAAMvkB,QACrBukB,EAAMvkB,QAAU,GAChBunF,EAAQvnF,QAAQmzE,GACZ5uD,EAAMvkB,QAAQ1qB,OAAS,EACvBgyG,EAAItnF,UAEJsnF,EAAItnF,QAAU,GAItBlP,OAAOqpE,sBAAsBmtB,EAAItnF,QAAU,IAb3B,WAAV,OAAgBlP,OAAOqpE,sBAAsBnnB,EAAA,EAaQA,EAAA,GAC5D,IAEH,OAAaq0C,EAAAA,aACT,SAAC3iD,IA/BT,SAAiBoN,EAAsBpN,GAAY,IACzB+iD,EADyBC,EAAA9pC,EACzB9L,GAAA,IAAtB,IAAA41C,EAAArxC,MAAAoxC,EAAAC,EAAApmG,KAAAygC,MAA2B,KAAhBxyB,EAAAk4F,EAAA5tG,MACP,GAAI0V,EAAQ,KAAOm1C,EAAK,IAAMn1C,EAAQ,KAAOm1C,EAAK,GAAI,OAAO,SAAA51C,GAAA44F,EAAAhkG,EAAAoL,EAAA,SAAA44F,EAAAn2F,GAAA,CAEjE,OAAO,GA4BKo2F,CAAQpjE,EAAMvkB,QAAS0kC,KACE,IAAzBngB,EAAMvkB,QAAQ1qB,QACdkyG,IAEJjjE,EAAMvkB,QAAQvqB,KAAKivD,GAAA,GAEvB,CAAC8iD,GAAA,CCuPT,IAw1CAI,GAAqBC,EAAAA,KAAWA,EAAAA,YAl1C6C,SAACz3F,EAAG03F,GAtSjF,IAAAx2B,EAAAC,EAAA+gB,EAAA7/B,EAAAL,EAAA21C,EAAAC,EAAAC,EAwSQ/7E,EA6DA9b,EA7DA8b,MACAC,EA4DA/b,EA5DA+b,OACA+7E,EA2DA93F,EA3DA83F,oBACA1uF,EA0DApJ,EA1DAoJ,QACa2uF,EAyDb/3F,EAzDAuyE,YACA2I,EAwDAl7E,EAxDAk7E,YACAO,EAuDAz7E,EAvDAy7E,aAAAuc,EAuDAh4F,EAtDAqvF,WAAAA,OAAA,IAAA2I,GAAaA,EACbhd,EAqDAh7E,EArDAg7E,kBACAQ,EAoDAx7E,EApDAw7E,UACA7kB,EAmDA32D,EAnDA22D,KACA01B,EAkDArsF,EAlDAqsF,eACAtK,EAiDA/hF,EAjDA+hF,oBACAkW,EAgDAj4F,EAhDAi4F,kBACAnQ,EA+CA9nF,EA/CA8nF,aACAoQ,EA8CAl4F,EA9CAk4F,UACAC,EA6CAn4F,EA7CAm4F,gBACAC,EA4CAp4F,EA5CAo4F,aACA7L,EA2CAvsF,EA3CAusF,UACAnmB,EA0CApmE,EA1CAomE,UACAiV,EAyCAr7E,EAzCAq7E,cACAgd,EAwCAr4F,EAxCAq4F,cACApW,EAuCAjiF,EAvCAiiF,gBAAAqW,EAuCAt4F,EAtCAu4F,aAAAA,OAAA,IAAAD,GAAeA,EAAAE,EAsCfx4F,EArCAy4F,aAAAA,OAAA,IAAAD,GAAeA,EAAAE,EAqCf14F,EApCAmvF,cAAAwJ,OAAA,IAAAD,GAAgBA,EAChBzrD,EAmCAjtC,EAnCAitC,YACA2rD,EAkCA54F,EAlCA44F,UACAC,EAiCA74F,EAjCA64F,eACAC,EAgCA94F,EAhCA84F,YACAC,EA+BA/4F,EA/BA+4F,cACAhR,GA8BA/nF,EA9BA+nF,iBACAiR,GA6BAh5F,EA7BAg5F,mBACA79C,GA4BAn7C,EA5BAm7C,UACA89C,GA2BAj5F,EA3BAi5F,QACAvM,GA0BA1sF,EA1BA0sF,iBACAwM,GAyBAl5F,EAzBAk5F,UACAC,GAwBAn5F,EAxBAm5F,YACAC,GAuBAp5F,EAvBAo5F,UACAC,GAsBAr5F,EAtBAq5F,eACArR,GAqBAhoF,EArBAgoF,WACAsR,GAoBAt5F,EApBAs5F,WAAAC,GAoBAv5F,EAnBAw5F,YAAAA,QAAA,IAAAD,IAAcA,GACdE,GAkBAz5F,EAlBAy5F,YACAnN,GAiBAtsF,EAjBAssF,aACAnE,GAgBAnoF,EAhBAmoF,gBACAlnB,GAeAjhE,EAfAihE,MACAwrB,GAcAzsF,EAdAysF,cACA1O,GAaA/9E,EAbA+9E,YACAiE,GAYAhiF,EAZAgiF,eACYoC,GAWZpkF,EAXAikF,WACA1D,GAUAvgF,EAVAugF,eACAmZ,GASA15F,EATA05F,cACAC,GAQA35F,EARA25F,eACAC,GAOA55F,EAPA45F,OACAC,GAMA75F,EANA65F,YACAC,GAKA95F,EALA85F,kBAAAC,GAKA/5F,EAJAg6F,cAAAA,QAAA,IAAAD,IAAgBA,GAAAE,GAIhBj6F,EAHAk6F,cAAAA,QAAA,IAAAD,IAAgBA,GAChBE,GAEAn6F,EAFAm6F,aACAvvB,GACA5qE,EADA4qE,gBAEEuQ,GAAa,OAAAja,EAAAlhE,EAAEm7E,YAAFja,EAAgB,EAC7Bka,GAAa,OAAAja,EAAAnhE,EAAEo7E,YAAFja,EAAgB,EAC7BoR,GAAc5hF,KAAKG,IAAIuqF,EAAe1qF,KAAKsJ,IAAImP,EAAQlkB,OAAS,EAAG6yG,IAEnEhnE,GAAY0mE,EAAAA,OAAiC,MAC7C2C,GAAkC3C,EAAAA,SAA2B,kBAAM,IAAIloB,EAAA,GAAyB,IAChG2I,GAAc,MAAA4hB,GAAAA,GAAqBM,GACnCC,GAAqB5C,EAAAA,SAC3B6C,GAAwC7C,EAAAA,UAAkB,GAAA8C,IAAA14C,EAAAA,EAAAA,GAAAy4C,GAAA,GAAnDtK,GAAAuK,GAAA,GAAWC,GAAAD,GAAA,GACZrS,GAAoBuP,EAAAA,OAAuD,IAC3E1H,GAAqB0H,EAAAA,SAC3BgD,GAAoDhD,EAAAA,WAAAiD,IAAA74C,EAAAA,EAAAA,GAAA44C,GAAA,GAA7CE,GAAAD,GAAA,GAAiBE,GAAAF,GAAA,GACxBG,GAAgDpD,EAAAA,WAAAqD,IAAAj5C,EAAAA,EAAAA,GAAAg5C,GAAA,GAAzCE,GAAAD,GAAA,GAAeE,GAAAF,GAAA,GAChBG,GAAmBxD,EAAAA,OAAiC,MAE1DyD,GAA8CzD,EAAAA,UAAS,GAAA0D,IAAAt5C,EAAAA,EAAAA,GAAAq5C,GAAA,GAAhDE,GAAAD,GAAA,GAAcE,GAAAF,GAAA,GACfG,GAAwB7D,EAAAA,OAAO2D,IACrCE,GAAgB1rF,QAAUwrF,GAE1B,IAAM5a,GAAsBiX,EAAAA,SACxB,kBACI,IAAI3Z,GAAcC,IAAa,WAC3Bwd,GAAY3rF,aAAU,EACtB4rF,GAAY5rF,SAAA,MAEpB,CAACmuE,KAEC9C,GAAoB6M,EAAe9M,EAAoBS,EAAeA,EAEtEggB,GAAyBhE,EAAAA,QAAQ,GACjCiE,IAAmE,KAAzC,MAAAvB,QAAA,EAAAA,GAAcwB,wBACxClE,EAAAA,iBAAgB,WACbd,GAAiBltG,OAAqC,IAA5BiX,OAAO83E,mBAA0BkjB,MAE9B,IAA9BD,GAAiB7rF,SACjB4qF,IAAa,GAEjB95F,OAAO9E,aAAa6/F,GAAiB7rF,SACrC6rF,GAAiB7rF,QAAUlP,OAAOpF,YAAW,WACzCk/F,IAAa,GACbiB,GAAiB7rF,SAAW,CAAD,GAC5B,QACJ,CAACsrE,EAAa3I,GAAa4I,GAAYC,GAAYsgB,KAEtD,IAAMngB,GR1XH,SACHnyE,EACAiyE,GAEA,OAAOugB,EAAAA,SACH,kBACIxyF,EAAQ3T,KAAI,SAAC0K,EAAGnb,GAAA,OAAAopD,EAAAA,EAAA,GACTjuC,GAAA,IACHwkF,YAAa3/F,EACbmtF,OAAQntF,EAAIq2F,GAAA,MAEpB,CAACjyE,EAASiyE,GAAA,CQ+WQwgB,CAAiBzyF,EAASiyE,GAG1CygB,GAAyBrE,EAAAA,aAC3B,SAAC1e,EAA2B7sE,EAAa0qD,GACrC,IAAMsa,EAAO6H,EAAO9O,wBAEpB,KAAI/9D,GAAOqvE,GAAcr2F,QAAU0xE,GAAOD,GAA1C,CAIA,IAAMsiB,EAAQ/H,EAAKp1D,MAAQA,EAErBlyB,EAASmxF,GACX7uE,EACA0qD,EACA96C,EACAC,EACAi/D,EACAC,GACA1I,GACA2I,EACAC,GACAC,GACAzkB,EACA0kB,EACoB,WAApB4G,EACA1G,GACAC,GAaJ,OAVc,IAAVvC,IACArvF,EAAO07B,GAAK2zD,EACZrvF,EAAOklC,GAAKmqD,EACZrvF,EAAOkyB,OAASm9D,EAChBrvF,EAAOmyB,QAAUk9D,GAGrBrvF,EAAO07B,GAAK4rD,EAAK5rD,EACjB17B,EAAOklC,GAAKoiD,EAAKpiD,EAEVllC,CAjCI,CAiCJ,GAEX,CACIkyB,EACAC,EACAi/D,EACAC,GACA1I,GACA2I,EACAC,GACAC,GACAzkB,EACA0kB,EACA4G,EACA1G,GACAC,IAIFugB,GAAgCtE,EAAAA,aAClC,SAAC1e,EAA2BijB,EAAcC,EAAcC,GA/chE,IAAAtT,EAAA2I,EAgdkBrgB,EAAO6H,EAAO9O,wBACdgP,EAAQ/H,EAAKp1D,MAAQA,EACrBwJ,GAAK02E,EAAO9qB,EAAK7uD,MAAQ42D,EACzBnqD,GAAKmtE,EAAO/qB,EAAK3uD,KAAO02D,EAGxB0I,EAAgBrP,GAAoBiJ,GAAehJ,GAAaz2D,OAAO,EAAWq/D,IAEpFpiE,EAAS,EACTmjF,aAAcC,aACdpjF,EAASmjF,EAAGnjF,QAIhB,IA4BInvB,EA5BEsiB,ER3SX,SACHk8D,EACAsiB,EACAvP,GAEA,IACgBihB,EADZ92E,EAAI,EAAA+2E,EAAA7uC,EACQk9B,GAAA,IAAhB,IAAA2R,EAAAp2C,MAAAm2C,EAAAC,EAAAnrG,KAAAygC,MAAkC,KAAvBxxB,EAAAi8F,EAAA3yG,MAEP,GAAI2+E,IADOjoE,EAAEgyE,OAAS7sD,EAAIA,GAAK,MAAA61D,EAAAA,EAAc,IACzBh7E,EAAE2b,MAClB,OAAO3b,EAAEwkF,YAEbr/D,GAAKnlB,EAAE2b,KAAA,QAAApd,GAAA29F,EAAA/oG,EAAAoL,EAAA,SAAA29F,EAAAl7F,GAAA,CAEX,OAAQ,CAAD,CQ8Ram7F,CAAmBh3E,EAAGq8D,EAAexG,IAI3CvkB,ER/RX,SACHuR,EACApsD,EACAwgF,EACA9gB,EACAT,EACArkB,EACA6kB,EACAN,EACAE,EACAE,GAEA,IAAML,EAAoBQ,EAAeT,EACzC,GAAIuhB,GAAap0B,GAAW6S,EAAmB,OAAQ,EACvD,GAAI7S,GAAW8S,EAAmB,OAAQ,EAE1C,IAAMuhB,EAAqC,kBAAdhhB,EAAyBA,EAAYA,EAAU7kB,EAAO,GACnF,GAAI2kB,GAAiBnT,EAAUpsD,EAASygF,EACpC,OAAO7lC,EAAO,EAGlB,IAAM8lC,EAAgB9lC,GAAQ2kB,EAAgB,EAAI,GAE5C+H,EAAKlb,GAAW,MAAAiT,EAAAA,EAAc,GACpC,GAAyB,kBAAdI,EAAwB,CAC/B,IAAMtuE,EAASvc,KAAKurD,OAAOmnC,EAAKpI,GAAqBO,GAAaN,EAClE,GAAIhuE,GAAUuvF,EAAe,OAC7B,OAAOvvF,CAAA,CAGP,IADA,IAAIwvF,EAAOzhB,EACFj2F,EAAIk2F,EAAal2F,EAAIy3G,EAAez3G,IAAK,CAC9C,IAAMwrC,EAAKgrD,EAAUx2F,GACrB,GAAIq+F,GAAMqZ,EAAOlsE,EAAI,OAAOxrC,EAC5B03G,GAAQlsE,CAAA,CAEL,CQ4PSmsE,CACR7tE,EACA/S,EACA+rE,EACArM,EACAT,EACArkB,EACA6kB,EACAN,EACAE,GACoB,WAApB6G,GAGEvpE,GAA4B,KAAjB,MAAAwjF,OAAA,EAAAA,EAAIxjF,UACfD,GAA0B,KAAhB,MAAAyjF,OAAA,EAAAA,EAAIzjF,SACdG,GAA0B,KAAhB,MAAAsjF,OAAA,EAAAA,EAAItjF,SACdgkF,OAAiB,IAAPV,KAAsBA,aAAcC,YAG9CU,EAA+C,CACjDlsG,KAAK4/C,IAAIjrB,GAFI,IAEa,EAAI30B,KAAK4/C,IAAI2gC,EAAKp1D,MAAQwJ,GAFvC,GAEuD,EAAI,EACxE30B,KAAK4/C,IAAIzhB,GAHI,IAGa,EAAIn+B,KAAK4/C,IAAI2gC,EAAKn1D,OAAS+S,GAHxC,GAGwD,EAAI,GAI7E,IAAa,IAAT5iB,GAAc4iB,EAAI,GAAKxJ,EAAI,QAAa,IAARsxC,GAAqBtxC,EAAIxJ,GAASgT,EAAI/S,EAAQ,CAC9E,IAAM+gF,EAAax3E,EAAIxJ,GAAS,EAAIwJ,EAAI,EAAI,EAAI,EAC1Cy3E,EAAWjuE,EAAI/S,EAAS,EAAI+S,EAAI,GAAK,EAAI,EAE3CkuE,GAAS,EACb,IAAa,IAAT9wF,IAAuB,IAAT0qD,EAAY,CAC1B,IAAM12D,EAAI47F,GAAiB/iB,EAAQwC,GAAcr2F,OAAS,GAAI,GAC9D86E,QAAa,IAAN9/D,GACP88F,EAAShB,EAAO97F,EAAEolB,EAAIplB,EAAE4b,MA/CJ,CA+CY,CAGpClyB,EAAS,CACLk7E,KAAMf,GACNxlE,SAAU,EAAU,IAAT2N,EAAaA,EAAMoZ,EAAI,EAAI,EAAIi2D,GAAcr2F,OAAS,EAAG,MAAA0xE,EAAAA,EAAOD,EAAO,GAClF+e,UAAW,CAAConB,EAAYC,GACxBrkF,SAAAA,EACAD,QAAAA,EACAG,QAAAA,EACAokF,OAAAA,EACAJ,QAAAA,EACA7jF,OAAAA,EACA8jF,WAAAA,EAAA,SAEGjmC,IAAQ,EAAG,CAClB,IAAIqmC,EAASnB,GAAiB/iB,EAAQ7sE,EAAK0qD,GAC3CoJ,QAAkB,IAAXi9B,GACP,IAAID,OAAoB,IAAXC,GAAwBA,EAAO33E,EAAI23E,EAAOnhF,MAAQkgF,GAjEvC,EAmElBkB,EAAchxF,EAAM,EACtB8vF,EAAOiB,EAAO33E,GApEM,GAoEsB43E,GAAe,GACzDF,GAAS,EAETh9B,QAAkB,KADlBi9B,EAASnB,GAAiB/iB,EAAQmkB,EAAatmC,KAE/ChtE,EAAS,CACLk7E,KAAMgjB,IAAyB,IAATlxB,EAAakN,GAAkBD,GACrDtlE,SAAU,CAAC2+F,EAAatmC,GACxBqmC,OAAAA,EACArhB,MAAO,OAAAgN,EAAArN,GAAc2hB,GAAathB,OAA3BgN,EAAoC,GAC3CoU,OAAAA,EACAtkF,SAAAA,EACAD,QAAAA,EACAG,QAAAA,EACAgkF,QAAAA,EACAO,YAAanB,EAAOiB,EAAO33E,EAC3B83E,YAAanB,EAAOgB,EAAOnuE,EAC3B/V,OAAAA,EACA8jF,WAAAA,IAGJjzG,EAAS,CACLk7E,KAAMgjB,IAAyB,IAATlxB,EAAakN,GAAkBD,GACrD+X,MAAO,OAAA2V,EAAAhW,GAAcrvE,GAAK0vE,OAAnB2V,EAA4B,GACnChzF,SAAU,CAAC2N,EAAK0qD,GAChBqmC,OAAAA,EACAD,OAAAA,EACAtkF,SAAAA,EACAD,QAAAA,EACAG,QAAAA,EACAgkF,QAAAA,EACAO,YAAanB,EAAOiB,EAAO33E,EAC3B83E,YAAanB,EAAOgB,EAAOnuE,EAC3B/V,OAAAA,EACA8jF,WAAAA,EAAA,KAGL,CACH,IAAMI,EAASnB,GAAiB/iB,EAAQ7sE,EAAK0qD,GAC7CoJ,QAAkB,IAAXi9B,GAOPrzG,EAAS,CACLk7E,KAAM,OACNvmE,SAAU,CAAC2N,EAAK0qD,GAChBqmC,OAAAA,EACAD,YAVsB,IAAXC,GAAwBA,EAAO33E,EAAI23E,EAAOnhF,MAAQkgF,EA3GzC,EAsHpBtjF,SAAAA,EACAD,QAAAA,EACA4kF,aAXAhO,QACW,IAAX4N,GACAA,EAAO33E,EAAI23E,EAAOnhF,MAAQkgF,EAAO,GACjCiB,EAAOnuE,EAAImuE,EAAOlhF,OAASkgF,EAAO,EASlCrjF,QAAAA,EACAgkF,QAAAA,EACAO,YAAanB,EAAOiB,EAAO33E,EAC3B83E,YAAanB,EAAOgB,EAAOnuE,EAC3B/V,OAAAA,EACA8jF,WAAAA,EAAA,CAGR,OAAOjzG,CAAA,GAEX,CACI2xF,GACAhJ,GACAz2D,EACAq/D,GACAp/D,EACA+rE,EACArM,EACAT,EACArkB,EACA6kB,EACAN,EACAE,GACA6G,EACA6Z,GACAzM,IAaR,IAAAiO,GAAsB,MAAA3C,GAAAA,GAAmB,GAAlC4C,IAAkC17C,EAAAA,EAAAA,GAAAy7C,GAAA,GAAlC,GAEDE,GAAmB/F,EAAAA,QAAO,SAACgG,GAAiB,IAG5CC,GAAqBjG,EAAAA,OAAOkD,IAClC+C,GAAa9tF,QAAU+qF,GAEvB,IAAAgD,GAAiClG,EAAAA,SAAQ,WACrC,IAAMx3F,EAAIU,SAASC,cAAc,UAC3BV,EAAIS,SAASC,cAAc,UAOjC,OANAX,EAAEwL,MAAe,QAAI,OACrBxL,EAAEwL,MAAe,QAAI,IACrBxL,EAAEwL,MAAgB,SAAI,QACtBvL,EAAEuL,MAAe,QAAI,OACrBvL,EAAEuL,MAAe,QAAI,IACrBvL,EAAEuL,MAAgB,SAAI,QACf,CAACxL,EAAGC,EAAA,GACZ,IAAA09F,IAAA/7C,EAAAA,EAAAA,GAAA87C,GAAA,GAVIzN,GAAA0N,GAAA,GAASzN,GAAAyN,GAAA,GAYVnG,EAAAA,iBAAgB,WAGlB,OAFA92F,SAAS2gB,gBAAgB69D,OAAO+Q,IAChCvvF,SAAS2gB,gBAAgB69D,OAAOgR,IACzB,WACHD,GAAQvpB,SACRwpB,GAAQxpB,QAAA,IAEb,CAACupB,GAASC,KAEb,IAAMoL,GAAoB9D,EAAAA,SACpBzW,GAAayW,EAAAA,aAAY,WAjpBnC,IAAA7O,EAAA2I,EAkpBcxY,EAAShoD,GAAInhB,QACbiuF,EAAU5C,GAAWrrF,QAC3B,GAAe,OAAXmpE,GAA+B,OAAZ8kB,EAAvB,CAEA,IAAMnhE,EAAO6+D,GAAY3rF,QACnBA,EAAU,CACZmpE,OAAAA,EACAmX,QAAAA,GACAC,QAAAA,GACAL,aAAc+N,EACd/hF,MAAAA,EACAC,OAAAA,EACAw2D,YAAAA,GACA2I,YAAAA,EACAC,WAAYxqF,KAAKmtG,MAAM3iB,IACvBC,WAAYzqF,KAAKmtG,MAAM1iB,IACvBG,cAAAA,GACAuM,aAAAA,EACAzM,cAAAA,EACA0M,iBAAAA,GACA9mB,MAAAA,GACAwa,aAAAA,EACAT,kBAAAA,EACAsR,aAAc,MAAAA,GAAAA,GAAgBvkB,GAAiBC,QAC/CwT,UAAAA,EACAwG,eAAAA,GACAgG,WAAAA,GACAuE,UAAAA,EACAnmB,UAAAA,EACAipB,WAAAA,EACA/T,cAAe2G,EACftrB,KAAAA,EACA61B,UAAWmM,EACXtM,eAAAA,EACAlE,gBAAiB,MAAAA,GAAAA,GAAoB,SAAA3zF,GAAA,MAAS,CAAEA,KAAAA,EAAA,EAChDutF,oBAAAA,EACAxB,eAAAA,GACA6D,mBAAAA,GACAqI,cAAAA,GACAC,iBAAAA,GACAxU,YAAAA,GACA6X,aAAAA,GACA3H,OAAQiS,GAAazqF,QACrBs4E,YAAaA,GAAYt4E,QACzB8wE,UAAWgd,GAAa9tF,QACxB4wE,cAAAA,GACAwP,UAAAA,GACAxa,cAAe,OAAAoT,EAAA,MAAAuR,QAAA,EAAAA,GAAc3kB,gBAAdoT,EACfvE,UAAW+W,GACXxa,QAAS4c,GAAW5tF,QACpBqgF,eAAgB,OAAAsB,EAAA,MAAA4I,QAAA,EAAAA,GAAclK,gBAAdsB,EAAiCsF,GAAgBptG,MAAQ,gBAAkB,gBAC3FmhF,gBAAAA,SAUmB,IAAnBh7D,EAAQw4E,QACRmT,GAAY3rF,QAAUA,EACtBggF,GAAShgF,EAAS8sB,IAElBkzD,GAAShgF,OAAS,EA/DyB,CA+DzB,GAEvB,CACCsgF,GACAC,GACAr0E,EACAC,EACAw2D,GACA2I,EACAC,GACAC,GACAG,GACAuM,EACAzM,EACA0M,GACA9mB,GACAwa,EACAT,EACAsR,GACA9Q,EACAwG,GACAgG,GACAuE,EACAnmB,EACAipB,EACApN,EACAtrB,EACAgiC,EACAtM,EACAlE,GACApG,EACAxB,GACA6D,GACAqI,GACAC,GACAxU,GACAsI,GACAwP,GACA,MAAAmK,QAAA,EAAAA,GAAc3kB,cACd,MAAA2kB,QAAA,EAAAA,GAAclK,eACdmL,GACAxwB,KAGE4wB,GAAoB/D,EAAAA,OAAOzW,IAC3ByW,EAAAA,iBAAgB,WAClBzW,KACAwa,GAAY5rF,QAAUoxE,EAAA,GACvB,CAACA,KAEEyW,EAAAA,iBAAgB,WAClB,IAAM70C,EAAA,eAAAm7C,EAAAxwC,EAAArF,IAAA6D,MAAK,SAAAiyC,IAAA,IAAApV,EAAA,OAAA1gC,IAAAO,MAAA,SAAAw1C,GAAA,cAAAA,EAAA13C,KAAA03C,EAAA/wE,MAAA,eACwB,KAA3B,OAAA07D,EAAA,MAAAjoF,cAAA,EAAAA,SAAU0yE,YAAV,EAAAuV,EAAiBtV,OAAU,CAAA2qB,EAAA/wE,KAAA,eAAA+wE,EAAArzC,OAAA,wBAAAqzC,EAAA/wE,KAAA,EACzBvsB,SAAS0yE,MAAMC,MAAA,OACrBioB,GAAY3rF,aAAU,EACtB4rF,GAAY5rF,UAAA,wBAAAquF,EAAA3xC,OAAA,GAAA0xC,EAAA,uBAJV,OAAAD,EAAAt4G,MAAA,KAAAR,UAAA,KAMD29D,GAAA,GACN,IAEH,IAAMs7C,GAAuBzG,EAAAA,aAAY,SAAC0G,GACtC9D,GAAazqF,QAAUuuF,EACvB3C,GAAY5rF,UACZyqF,GAAazqF,aAAU,IACxB,IAEGgxE,GAAUoW,GAAkBkH,IAClCV,GAAW5tF,QAAUgxE,GAErB,IAAMwH,GAAeqP,EAAAA,aACjB,SAAC9kC,GACGurC,GAAevrC,EAAMl9D,KAAI,SAAA6vB,GAAA,OAAKA,EAAEs3C,IAAA,OAEpC,CAACshC,KAGLhmB,GAAYkmB,YAAYF,IAExB,IAOIG,GAPJC,GAAsC7G,EAAAA,UAAS,GAAA8G,IAAA18C,EAAAA,EAAAA,GAAAy8C,GAAA,GAAxCE,GAAAD,GAAA,GAAUE,GAAAF,GAAA,GAEjBG,GAAqB,MAAAnB,GAAAA,GAAe,GAAAoB,IAAA98C,EAAAA,EAAAA,GAAA68C,GAAA,GAA7BnW,GAAAoW,GAAA,GAAMnW,GAAAmW,GAAA,GACPC,QAAyB,IAATrW,KAAgC,IAAVC,GACtCqW,QAA8B,IAATtW,KAAgC,IAAVC,GAC7CsW,IAA4B,EAC5BC,IAAsB,EAE1B,QAAa,IAATxW,SAA+B,IAATC,IAAsBA,IAAQ,EAAG,CACvD,IAAM5rB,GAAOyvB,EAAe,CAAC9D,GAAMC,KACnCsW,GACIliC,GAAKkI,OAASd,GAAkBsB,QAC/B1I,GAAKkI,OAASd,GAAkBqB,QAA8B,WAApBzI,GAAKoiC,WACpDD,GAAsBniC,GAAKkI,OAASvB,GAAavgB,SAAWgjB,GAAsBpJ,IAClFyhC,GAAiBzhC,GAAKqiC,MAAA,CAE1B,IACMA,GAAS3F,GACT,WAFU,MAAAyB,IAAAA,IAGC/S,GACX,aACAwW,IAAYtG,EACZ,iBACmB,IAAnBmG,GACAA,GACAO,IAAiBE,IAA6BC,IAAuBF,GACrE,UACA,UACApzF,GAAcgsF,EAAAA,SAChB,iBAAO,CAGHyH,QAAS,SACTn/D,QAAS,QACTk/D,OAAAA,GAAA,GAEJ,CAACA,KAGCE,GAAsB1H,EAAAA,OAAsB,WAC5CvqF,GAAS,MAAAmsF,QAAA,EAAAA,GAAgBzpF,QAChB,OAAX1C,SAA8B,IAAXA,IAAwBiyF,GAAcvvF,UAAYnE,GAAMwzF,SAE3E/xF,GAAOzB,MAAMwzF,OAASE,GAAcvvF,QAAUnE,GAAMwzF,QAGxD,IAAMG,GAAkC3H,EAAAA,aACpC,SAAC7b,EAAeqhB,EAAmBE,EAAqBC,GACpD,QAAwB,IAApBjV,GAAJ,CACA,IAAMkX,EAAYlX,GAAgBvM,GAClC,QAA0B,IAAtByjB,EAAUxb,QAAuB,CACjC,IAC6Byb,EAD2BC,EAAA/xC,EAA1Cm2B,GAAwBsZ,EAAQoC,EAAUxb,SAC3Bh9F,WAAA,IAA7B,IAAA04G,EAAAt5C,MAAAq5C,EAAAC,EAAAruG,KAAAygC,MAAwC,KAAA6tE,GAAA39C,EAAAA,EAAAA,GAAAy9C,EAAA71G,MAAA,GAA5BzE,EAAAw6G,EAAA,GAAG5b,EAAA4b,EAAA,GACX,GAAI1b,GAAYF,EAAKuZ,EAAcF,EAAO33E,EAAG83E,EAAcxZ,EAAI90D,GAC3D,OAAOuwE,EAAUxb,QAAQ7+F,EAAA,QAAA0Z,GAAA6gG,EAAAjsG,EAAAoL,EAAA,SAAA6gG,EAAAp+F,GAAA,EANK,CAUnC,GAEX,CAACgnF,KAGCsX,GAAyBhI,EAAAA,aAC3B,SAAC1e,EAA2B7sE,EAAamM,EAAiBC,GACtD,IAAMm+C,EAASrtD,EAAQ8C,GAEvB,IAAKotF,KAAetR,KAAiC,IAAnBvxB,EAAOquB,UAAsB,MAAAiW,KAAAA,IAAyB,CACpF,IAAM2E,EAAe5D,GAAiB/iB,EAAQ7sE,GAAM,GACpD8zD,QAAwB,IAAjB0/B,GACP,IAAMnb,EAAaP,GACf0b,EAAap6E,EACbo6E,EAAa5wE,EACb4wE,EAAa5jF,MACb4jF,EAAa3jF,QAEjB,GACI1D,EAAUksE,EAAWj/D,GACrBjN,EAAUksE,EAAWj/D,EAAIi/D,EAAWzoE,OACpCxD,EAAUisE,EAAWz1D,GACrBxW,EAAUisE,EAAWz1D,EAAIy1D,EAAWxoE,OAEpC,OAAO2jF,CAAA,CAGR,GAEX,CAACt2F,EAAS0yF,GAAkBf,GAAezB,GAAYtR,KAGrD2X,GAAiBlI,EAAAA,OAAO,GACxBmI,GAAqBnI,EAAAA,SACrBoI,GAAwBpI,EAAAA,aAC1B,SAACyE,GACG,IAAMnjB,EAAShoD,GAAInhB,QACbkwF,EAAc,MAAAzG,QAAA,EAAAA,GAAgBzpF,QACpC,GAAe,OAAXmpE,IAAoBmjB,EAAGhvF,SAAW6rE,GAAUmjB,EAAGhvF,SAAW4yF,GAA9D,CAEA,IAAIznF,EACAC,EAQJ,GAPI4jF,aAAcC,YACd9jF,EAAU6jF,EAAG7jF,QACbC,EAAU4jF,EAAG5jF,UAEbD,EAAU6jF,EAAG1/E,QAAQ,GAAGnE,QACxBC,EAAU4jF,EAAG1/E,QAAQ,GAAGlE,SAExB4jF,EAAGhvF,SAAW4yF,GAA+B,OAAhBA,EAAsB,CACnD,IAAM7C,EAAS6C,EAAY71B,wBAC3B,GAAI5xD,EAAU4kF,EAAO56E,KAAOy9E,EAAY5rD,YAAa,OACrD,GAAI57B,EAAU2kF,EAAO16E,IAAMu9E,EAAY3rD,aAAc,OAGzD,IAAMn5C,EAAO+gG,GAAwBhjB,EAAQ1gE,EAASC,EAAS4jF,GAU/D,GATA0D,GAAahwF,QAAU5U,EAAKuD,SAExBvD,EAAK4hG,UACL+C,GAAS/vF,QAAU3S,KAAKlD,OAExBuhG,GAAgB1rF,UAAY5U,EAAK4hG,SACjCvB,GAAgBrgG,EAAK4hG,SAIrB5hG,EAAK8pE,OAASjB,SACmD,IAAjE47B,GAAiB1mB,EAAQ/9E,EAAKuD,SAAS,GAAI8Z,EAASC,GAG7Ctd,EAAK8pE,OAAShB,SAEN,IADAs7B,GAA0BpkG,EAAK4gF,MAAO5gF,EAAKiiG,OAAQjiG,EAAKmiG,YAAaniG,EAAKoiG,eAM7F,MAAAnwD,GAAAA,EAAcjyC,GACTA,EAAK4hG,UAA2B,IAAhBpD,IAAwBA,KAAgBx+F,EAAK8pE,MAE9Do3B,EAAGllF,iBA1C2E,CA0C3E,GAGX,CAACqiF,GAAgBG,GAAauC,GAAyBqD,GAA2BK,GAAkBxyD,IAExGuiC,GAAiB,aAAcqwB,GAAiBn/F,QAAQ,GACxD8uE,GAAiB,YAAaqwB,GAAiBn/F,QAAQ,GAEvD,IAAMq/F,GAAsBtI,EAAAA,aACxB,SAACyE,GAp7BT,IAAAtT,EAAA2I,EAq7BkBxY,EAAShoD,GAAInhB,QACnB,QAAkB,IAAdgpF,GAAsC,OAAX7f,EAA/B,CACA,IAII1gE,EACAC,EALEwnF,EAAc,MAAAzG,QAAA,EAAAA,GAAgBzpF,QAE9BowF,EAAY9D,EAAGhvF,SAAW6rE,GAAUmjB,EAAGhvF,SAAW4yF,EAIpD5D,aAAcC,YACd9jF,EAAU6jF,EAAG7jF,QACbC,EAAU4jF,EAAG5jF,UAEbD,EAAU6jF,EAAGx/E,eAAe,GAAGrE,QAC/BC,EAAU4jF,EAAGx/E,eAAe,GAAGpE,SAGnC,IAAItd,EAAO+gG,GAAwBhjB,EAAQ1gE,EAASC,EAAS4jF,GAiB7D,GAfIlhG,EAAK4hG,SAAgC,IAArB+C,GAAS/vF,SAAiB3S,KAAKlD,MAAQ4lG,GAAS/vF,QAAU,MAC1E5U,EAAAozC,EAAAA,EAAA,GACOpzC,GAAA,IACHilG,aAAa,KAIjB3E,GAAgB1rF,UAAY5U,EAAK4hG,SACjCvB,GAAgBrgG,EAAK4hG,UAGpBoD,GAAa9D,EAAGxkF,YACjBwkF,EAAGllF,iBAGHhc,EAAK8pE,OAASjB,IAAc47B,GAAiB1mB,EAAQ/9E,EAAKuD,SAAS,GAAI8Z,EAASC,GAAU,CAC1F,IAAOpM,GAAP21C,EAAAA,EAAAA,GAAc7mD,EAAKuD,SAAA,GAAZ,GACDmhG,EAAeD,GAAiB1mB,EAAQ7sE,EAAKmM,EAASC,GAC5D,QAAqB,IAAjBonF,EAOA,YANoB,IAAhB1kG,EAAK+d,SAAgB,OAAA6vE,EAAAgX,GAAahwF,cAAb,EAAAg5E,EAAuB,MAAO18E,IAAsC,KAA/B,OAAAqlF,EAAAqO,GAAahwF,cAAb,EAAA2hF,EAAuB,IACjF,MAAA0G,GAAAA,EAAoB/rF,EAAKwzF,GAGzB9G,EAAU59F,GAAM,GAEpB,SAEGA,EAAK8pE,OAAShB,GAAiB,CACtC,IAAMtvC,EAAS4qE,GAA0BpkG,EAAK4gF,MAAO5gF,EAAKiiG,OAAQjiG,EAAKmiG,YAAaniG,EAAKoiG,aACzF,QAAe,IAAX5oE,EAIA,YAHoB,IAAhBx5B,EAAK+d,QACLyb,EAAO6I,QAAQriC,GAEnB,CAIR49F,EAAU59F,EAAMglG,EAtDsC,CAsDtC,GAEpB,CACIpH,EACAS,GACA0C,GACA0D,GACAxH,EACAmH,KAGR5vB,GAAiB,UAAWuwB,GAAer/F,QAAQ,GACnD8uE,GAAiB,WAAYuwB,GAAer/F,QAAQ,GAapD8uE,GAAiB,cAXeioB,EAAAA,aAC5B,SAACyE,GACG,IAAMnjB,EAAShoD,GAAInhB,QACnB,GAAe,OAAXmpE,QAAqC,IAAlBsf,EAAvB,CACA,IAAMr9F,EAAO+gG,GAAwBhjB,EAAQmjB,EAAG7jF,QAAS6jF,EAAG5jF,QAAS4jF,GACrE7D,EAAcr9F,GAAM,WACZkhG,EAAGxkF,YAAYwkF,EAAGllF,gBAAA,GAHgC,CAGhC,GAG9B,CAAC+kF,GAAyB1D,IAEqB,OAAAnW,EAAA,MAAAmX,QAAA,EAAAA,GAAgBzpF,SAAhBsyE,EAA2B,MAAM,GAEpF,IAAMge,GAAyBzI,EAAAA,aAA0B,SAAAlvG,GACrD8xG,GAAazqF,QAAUrnB,EAAOkN,KAAI,SAAA6vB,GAAA,OAAKA,EAAEgvB,IAAA,IACzC4zC,GAAYt4E,QAAUrnB,EACtBizG,GAAY5rF,UACZyqF,GAAazqF,aAAU,IACxB,IAEGuwF,GAAyB1I,EAAAA,SAAQ,kBAAM,IAAInC,GAAiB4K,GAAA,GAAmB,CAACA,KAChFE,GAAyB3I,EAAAA,OAAO0I,IACtCC,GAAiBxwF,QAAUuwF,GACrB1I,EAAAA,iBAAgB,WAClB,IAAM4I,EAAKD,GAAiBxwF,QAC5B,QAAoB,IAAhB2tF,IAA6BA,GAAY,GAAK,EAC9C8C,EAAG5J,WAAW8G,QADlB,CAIA,IAAM3gC,EAAOyvB,EAAekR,IACtB1uE,EAAI+7C,GAAgBhO,GAC1ByjC,EAAG5J,gBACQ,IAAN5nE,GAAmB+tC,EAAKkI,OAASvB,GAAaqC,SAA6B,KAAlB,MAAA/2C,OAAA,EAAAA,EAAGyxE,YAAsB/C,QAAc,EALjG,CAKiG,GAEtG,CAAClR,EAAgBzhB,GAAiB2yB,KAErC,IAAMgD,GAAmB9I,EAAAA,SA+DzBjoB,GAAiB,YA9DaioB,EAAAA,aAC1B,SAACyE,GAhiCT,IAAAtT,EAiiCkB7P,EAAShoD,GAAInhB,QACnB,GAAe,OAAXmpE,EAAJ,CAEA,IA1bYzkC,EAAsCrnD,EA0b5C+N,EAAO+gG,GAAwBhjB,EAAQmjB,EAAG7jF,QAAS6jF,EAAG5jF,QAAS4jF,GACrE,GA3bY5nD,EA2bIt5C,EA3bkC/N,EA2b5BszG,GAAW3wF,QA1bjC0kC,IAASrnD,IAET,MAAAqnD,OAAA,EAAAA,EAAMwwB,SAAS,MAAA73E,OAAA,EAAAA,EAAO63E,QACtB,MAAAxwB,OAAA,EAAAA,EAAM/1C,SAAS,OAAO,MAAAtR,OAAA,EAAAA,EAAOsR,SAAS,MACtC,MAAA+1C,OAAA,EAAAA,EAAM/1C,SAAS,OAAO,MAAAtR,OAAA,EAAAA,EAAOsR,SAAS,KA2bb,GACA,SAAdvD,EAAK8pE,MAAmB9pE,EAAK8pE,OAASjB,IAAc7oE,EAAK8pE,OAAShB,GAAiB,CAC1F,IAAM08B,EAAuC,CAACxlG,EAAKuD,SAAU,CAACvD,EAAKmiG,YAAaniG,EAAKoiG,cAIrF,GAHAxC,GAAmB4F,GACnB9C,GAAa9tF,QAAU4wF,EAEL,SAAdxlG,EAAK8pE,KAAiB,CACtB,IAAM27B,EAAUpU,EAAerxF,EAAKuD,UAChCkiG,EAAQ37B,OAASvB,GAAaqC,SAA2D,KAAjD,OAAAgjB,EAAAhe,GAAgB61B,SAAhB,EAAA7X,EAA0B8X,qBAClExC,GAAe,CAACljG,EAAKuD,UAAA,MAElBvD,EAAK8pE,OAAShB,IACrBo6B,GAAe,CAACljG,EAAKuD,UAAA,OAhBzB,MAAAw6F,GAAAA,EAAgB/9F,GAChB4/F,GACI5/F,EAAK8pE,OAASf,QAAkB,EAAY,CAAC/oE,EAAKuD,SAAU,CAACvD,EAAKmiG,YAAaniG,EAAKoiG,eAExFmD,GAAW3wF,QAAU5U,EAkBzB,GAFAggG,GAAiBhgG,EAAK8pE,OAASjB,IAAc7oE,EAAKgiG,SAA0B,IAAhBvD,IAExDpK,QAAoC,IAAtBjpB,EAAUx2D,QAAuB,CAC/C,IAAA+wF,GAAA9+C,EAAAA,EAAAA,GAAmBukB,EAAUx2D,QAAQgtD,KAAA,GAA9B1wD,EAAAy0F,EAAA,GAAK/pC,EAAA+pC,EAAA,GACNn1F,EAAKswF,GAAiB/iB,EAAQ7sE,EAAK0qD,GACnCtxC,EAAI42E,EAAG7jF,QACPyW,EAAIotE,EAAG5jF,QACb0nD,QAAc,IAAPx0D,GACPizF,GACIn5E,GAAK9Z,EAAG8Z,EAAI9Z,EAAGsQ,MAAQ,GACnBwJ,GAAK9Z,EAAG8Z,EAAI9Z,EAAGsQ,OACfgT,GAAKtjB,EAAGsjB,EAAItjB,EAAGuQ,OAAS,GACxB+S,GAAKtjB,EAAGsjB,EAAItjB,EAAGuQ,OAAA,MAGvB0iF,IAAY,GAGhB,MAAA5F,GAAAA,EAAiBqD,GACjBpD,EAAY99F,EA3Ce,CA2Cf,GAEhB,CACI+gG,GACAtC,GACApK,EACAjpB,EACAyyB,EACAC,EACAC,EACA1M,EACAzhB,GACAszB,GACApC,KAGuCp7F,QAAQ,GAEvD,IAAMkgG,GAAsBnJ,EAAAA,aACxB,SAAC14E,GACG,IAGIk+E,EAHElkB,EAAShoD,GAAInhB,QACJ,OAAXmpE,SAGsB,IAAtB3S,EAAUx2D,UACVqtF,EAASnB,GAAiB/iB,EAAQ3S,EAAUx2D,QAAQgtD,KAAK,GAAIwJ,EAAUx2D,QAAQgtD,KAAK,KAGxF,MAAAzhB,IAAAA,GAAY,CACR8hD,OAAAA,EACApnF,gBAAiB,kBAAMkJ,EAAMlJ,iBAAA,EAC7BmB,eAAgB,kBAAM+H,EAAM/H,gBAAA,EAC5Bnb,OAAQ,WAAM,EACd4c,QAASsG,EAAMtG,QACfG,QAASmG,EAAMnG,QACfF,SAAUqG,EAAMrG,SAChBC,OAAQoG,EAAMpG,OACd7yB,IAAKi5B,EAAMj5B,IACXswB,QAAS2I,EAAM3I,QACfyqF,SAAU9hF,IAAA,GAGlB,CAACo8B,GAAWirB,EAAW01B,KAGrBgF,GAAoBrJ,EAAAA,aACtB,SAAC14E,GACG,IAGIk+E,EAHElkB,EAAShoD,GAAInhB,QACJ,OAAXmpE,SAGsB,IAAtB3S,EAAUx2D,UACVqtF,EAASnB,GAAiB/iB,EAAQ3S,EAAUx2D,QAAQgtD,KAAK,GAAIwJ,EAAUx2D,QAAQgtD,KAAK,KAGxF,MAAAq8B,IAAAA,GAAU,CACNgE,OAAAA,EACApnF,gBAAiB,kBAAMkJ,EAAMlJ,iBAAA,EAC7BmB,eAAgB,kBAAM+H,EAAM/H,gBAAA,EAC5Bnb,OAAQ,WAAM,EACd4c,QAASsG,EAAMtG,QACfG,QAASmG,EAAMnG,QACfF,SAAUqG,EAAMrG,SAChBC,OAAQoG,EAAMpG,OACd7yB,IAAKi5B,EAAMj5B,IACXswB,QAAS2I,EAAM3I,QACfyqF,SAAU9hF,IAAA,GAGlB,CAACk6E,GAAS7yB,EAAW01B,KAGnBiF,GAAgBtJ,EAAAA,aAClB,SAACjzE,GACGuM,GAAInhB,QAAU4U,OACI,IAAd00E,KACAA,GAAUtpF,QAAU4U,EAAA,GAG5B,CAAC00E,KAoJL1pB,GAAiB,YAjJaioB,EAAAA,aAC1B,SAAC14E,GACG,IAAMg6D,EAAShoD,GAAInhB,QACnB,GAAe,OAAXmpE,IAAmC,IAAhBygB,IAAyBxR,GAC5CjpE,EAAM/H,qBADV,CAKA,IAAIgqF,EACAC,EAEEjmG,EAAO+gG,GAAwBhjB,EAAQh6D,EAAM1G,QAAS0G,EAAMzG,SAElE,IAAoB,IAAhBkhF,IAAwBx+F,EAAK8pE,OAAS00B,GAA1C,CAKA,IAKI0H,EACAC,EACAC,EAOAC,GAAY,EAShB,GAPA,MAAAlI,IAAAA,GAAA/qD,EAAAA,EAAA,GACOpzC,GAAA,IACHsmG,QAlBY,SAACC,EAAclzE,GAC3B2yE,EAAWO,EACXN,EAAW5yE,CAAA,EAiBXmzE,aAXiB,SAAChsD,EAAgBlwB,EAAWwJ,GAC7CoyE,EAAY1rD,EACZ2rD,EAAa77E,EACb87E,EAAatyE,CAAA,EASb9X,eAAgB,kBAAOqqF,GAAY,GACnCxqF,iBAAkB,kBAAMwqF,CAAA,KAEvBA,QAA0B,IAAbL,QAAuC,IAAbC,GAAiD,OAAvBliF,EAAMvF,aAqFxEuF,EAAM/H,sBAjFN,GAHA+H,EAAMvF,aAAa8nF,QAAQN,EAAUC,GACrCliF,EAAMvF,aAAaioF,cAAgB,gBAEjB,IAAdP,QAA0C,IAAfC,QAA2C,IAAfC,EACvDriF,EAAMvF,aAAagoF,aAAaN,EAAWC,EAAYC,OACpD,CACH,IAAAM,GAAA7/C,EAAAA,EAAAA,GAAmB7mD,EAAKuD,SAAA,GAAjB2N,EAAAw1F,EAAA,GAAK9qC,EAAA8qC,EAAA,GACZ,QAAY,IAAR9qC,EAAmB,CACnB,IAAM+qC,EAAYhhG,SAASC,cAAc,UACnCghG,EAAsB9F,GAAiB/iB,EAAQ7sE,EAAK0qD,GAE1DoJ,QAA+B,IAAxB4hC,GACPD,EAAU7lF,MAAQ8lF,EAAoB9lF,MACtC6lF,EAAU5lF,OAAS6lF,EAAoB7lF,OAEvC,IAAMy3D,EAAMmuB,EAAU3oB,WAAW,MACrB,OAARxF,IACAA,EAAIgB,aAAe,UACN,IAAT5d,GACA4c,EAAIC,KAAA,GAAApvD,OAAU48C,GAAM6B,gBAAA,KAAAz+C,OAAmB48C,GAAM+B,YAC7CwQ,EAAIuB,UAAY9T,GAAMiB,SACtBsR,EAAI4N,SAAS,EAAG,EAAGugB,EAAU7lF,MAAO6lF,EAAU5lF,QAC9CkoE,GACIzQ,EACA,EACA,EACAouB,EAAoB9lF,MACpB8lF,EAAoB7lF,OACpBw/D,GAAcrvE,IACd,EACA+0D,IACA,GACA,EACA,EACAuf,GACA4D,IACA,KAGJ5Q,EAAIC,KAAA,GAAApvD,OAAU48C,GAAM8B,cAAA,KAAA1+C,OAAiB48C,GAAM+B,YAC3CwQ,EAAIuB,UAAY9T,GAAMe,OACtBwR,EAAI4N,SAAS,EAAG,EAAGugB,EAAU7lF,MAAO6lF,EAAU5lF,QAC9CukE,GACI9M,EACA5c,EACAy1B,EAAe,CAACngF,EAAK0qD,IACrB,EACA,EACA,EACAgrC,EAAoB9lF,MACpB8lF,EAAoB7lF,QACpB,EACAklD,GACAsf,GACArI,GACAsI,GACA,OACA,GACA,EACA,OACA,OACA,EACA5V,MAKZ+2B,EAAUl2F,MAAM4W,KAAO,QACvBs/E,EAAUl2F,MAAM4hC,SAAW,WAE3B1sC,SAASwF,KAAKg5E,OAAOwiB,GAErB5iF,EAAMvF,aAAagoF,aACfG,EACAC,EAAoB9lF,MAAQ,EAC5B8lF,EAAoB7lF,OAAS,GAGjCrb,OAAOpF,YAAW,WACdqmG,EAAUh7B,QAAA,GACX,IA3GX,MADA5nD,EAAM/H,gBATN,CAyHM,GAGd,CACIwiF,GACAxR,GACA+T,GACA5C,GACA2C,GACA76B,GACAsa,GACAiF,GACA4D,GACAiI,EACA9L,GACArI,GACAtN,KAGuC,OAAAvoB,EAAA,MAAAg3C,QAAA,EAAAA,GAAgBzpF,SAAhByyC,EAA2B,MAAM,GAAO,GAEvF,IAAMw/C,GAAyBpK,EAAAA,SA2B/BjoB,GAAiB,WAzBYioB,EAAAA,aACzB,SAAC14E,GArzCT,IAAA6pE,EAszCkB7P,EAAShoD,GAAInhB,QAMnB,QALe,IAAXgqF,IAEA76E,EAAM/H,iBAGK,OAAX+hE,QAAsC,IAAnB4gB,GAAvB,CAIA,IAAM3+F,EAAO+gG,GAAwBhjB,EAAQh6D,EAAM1G,QAAS0G,EAAMzG,SAElEwpF,GAAAjgD,EAAAA,EAAAA,GAAsB7mD,EAAKuD,SAAA,GAApBwjG,EAAAD,EAAA,GAAQlrC,EAAAkrC,EAAA,GACT51F,EAAM61F,GAAU/I,GAAqB,EAAI,GAC/CgJ,EAA+B,OAAApZ,EAAAiZ,GAAiBjyF,SAAjBg5E,EAA4B,GAAAqZ,GAAApgD,EAAAA,EAAAA,GAAAmgD,EAAA,GAApDE,EAAAD,EAAA,GAAWE,EAAAF,EAAA,GAEdC,IAAch2F,GAAOi2F,IAAcvrC,IACnCirC,GAAiBjyF,QAAU,CAAC1D,EAAK0qD,GACjC+iC,GAAe,CAACztF,EAAK0qD,GAAM73C,EAAMvF,cAXjC,CAWiC,GAGzC,CAACw/E,GAAoB+C,GAAyBpC,GAAgBC,KAErB,OAAA53C,EAAA,MAAAq3C,QAAA,EAAAA,GAAgBzpF,SAAhBoyC,EAA2B,MAAM,GAAO,GAMrFwtB,GAAiB,UAJWioB,EAAAA,aAAY,WACpCoK,GAAiBjyF,aAAU,EAC3B,MAAAwpF,IAAAA,IAAA,GACD,CAACA,KACuC,OAAAzB,EAAA,MAAA0B,QAAA,EAAAA,GAAgBzpF,SAAhB+nF,EAA2B,MAAM,GAAO,GAqBnFnoB,GAAiB,OAnBQioB,EAAAA,aACrB,SAAC14E,GACG,IAAMg6D,EAAShoD,GAAInhB,QACnB,GAAe,OAAXmpE,QAA8B,IAAX6gB,GAAvB,CAKA76E,EAAM/H,iBAEN,IAAMhc,EAAO+gG,GAAwBhjB,EAAQh6D,EAAM1G,QAAS0G,EAAMzG,SAElE8pF,GAAAvgD,EAAAA,EAAAA,GAAsB7mD,EAAKuD,SAAA,GAApBwjG,EAAAK,EAAA,GAAQxrC,EAAAwrC,EAAA,GAGfxI,GAAO,CAFKmI,GAAU/I,GAAqB,EAAI,GAElCpiC,GAAM73C,EAAMvF,aAXrB,CAWqB,GAE7B,CAACw/E,GAAoB+C,GAAyBnC,KAEb,OAAAhC,EAAA,MAAAyB,QAAA,EAAAA,GAAgBzpF,SAAhBgoF,EAA2B,MAAM,GAAO,GAK7EpoB,GAAiB,YAHaioB,EAAAA,aAAY,WACtC,MAAAoC,IAAAA,IAAA,GACD,CAACA,KAC2C,OAAAhC,EAAA,MAAAwB,QAAA,EAAAA,GAAgBzpF,SAAhBioF,EAA2B,MAAM,GAAO,GAEvF,IAAMwK,GAAqB5K,EAAAA,OAAOrxB,GAClCi8B,GAAazyF,QAAUw2D,EACvB,IAAMk8B,GAAiB7K,EAAAA,OAA2B,MAC5C8K,GAAqB9K,EAAAA,aACvB,SAACjzD,GAn3CT,IAAAokD,EAq3CgC,OAAhB73D,GAAInhB,SAAqBmhB,GAAInhB,QAAQ+Q,SAAShgB,SAASuF,iBAChD,OAAPs+B,QAAgD,IAAjC69D,GAAazyF,QAAQA,QACpC,OAAAg5E,EAAA,MAAAsQ,QAAA,EAAAA,GAAWtpF,UAAXg5E,EAAoBnmE,MAAM,CACtB+/E,eAAe,IAEL,OAAPh+D,GACPA,EAAG/hB,MAAM,CACL+/E,eAAe,IAGvBF,GAAS1yF,QAAU40B,EAAA,GAEvB,CAAC00D,KAGCzB,EAAAA,oBACFC,GACA,iBAAO,CACHj1E,MAAO,WAv4CnB,IAAAmmE,EAw4CsBpkD,EAAK89D,GAAS1yF,QAKT,OAAP40B,GAAgB7jC,SAASggB,SAAS6jB,GAKlCA,EAAG/hB,MAAM,CACL+/E,eAAe,IALnB,OAAA5Z,EAAA,MAAAsQ,QAAA,EAAAA,GAAWtpF,UAAXg5E,EAAoBnmE,MAAM,CACtB+/E,eAAe,GAIA,EAI3BC,UAAW,SAACv2F,EAAa0qD,GACrB,QAAkB,IAAdsiC,IAAiD,OAAtBA,GAAUtpF,QAIzC,OAAOksF,GAAiB5C,GAAUtpF,QAAS1D,EAAK,MAAA0qD,EAAAA,GAAQ,EAAD,EAE3DwxB,OAAAA,GAAA,GAEJ,CAAC8Q,GAAW9Q,GAAQ0T,KAGxB,IAAM4G,GAA8BjL,EAAAA,SAE9BkL,GTp0CH,SAA6BC,EAAkB7sE,EAAwCh7B,GAC1F,IAAA8nG,EAAgClzB,EAAAA,SAASizB,GAAAE,GAAAjhD,EAAAA,EAAAA,GAAAghD,EAAA,GAAlC1yE,EAAA2yE,EAAA,GAAO/yD,EAAA+yD,EAAA,GAERC,EAAmBpzB,EAAAA,QAAO,GAC1BA,EAAAA,WACF,kBAAM,WACFozB,EAAWnzF,SAAU,KAEzB,IAGJ,IAAMozF,EAA0BrzB,EAAAA,OAC5BryE,GAAS,SAAAgoB,GACDy9E,EAAWnzF,SACXmgC,EAASzqB,EAAA,GAEdvqB,IAUP,OAPM40E,EAAAA,iBAAgB,WACdozB,EAAWnzF,SACXozF,EAAkBpzF,SAAQ,kBAAMgzF,GAAA,MAGrC7sE,GAEI5F,CAAA,CS0yCmB8yE,EACtB,WAt6CR,IAAAra,EAAA2I,EAAA2R,EAAAC,EAu6CY,GAAIrnF,EAAQ,GAAI,OAAO,KACvB,IAAI6lE,EAAgBrP,GAAoBiJ,GAAehJ,GAAaz2D,EAAOisE,GAAkB5M,IACvFioB,EAAYpK,GAAqB,GAAK,EACvCA,IAAwD,KAAlC,OAAApQ,EAAAjH,EAAc,SAAd,EAAAiH,EAAkBjE,eACzChD,EAAgBA,EAAchwF,MAAM,IAGxC,IAAA0xG,EAAqB,OAAAH,EAAA,OAAA3R,EAAAnrB,EAAUx2D,cAAV,EAAA2hF,EAAmB30B,MAAnBsmC,EAA2B,GAAAI,GAAAzhD,EAAAA,EAAAA,GAAAwhD,EAAA,GAAzCE,EAAAD,EAAA,GAAME,EAAAF,EAAA,GACP78B,EAAQ,OAAA08B,EAAA/8B,EAAUx2D,cAAV,EAAAuzF,EAAmB/lG,MAE3BqmG,EAAc9hB,EAAclsF,KAAI,SAAA0K,GAAA,OAAKA,EAAEwkF,WAAA,IACvC+e,EAAcC,EAAUzoB,EAAavqF,KAAKsJ,IAAI08D,EAAMukB,EAAc4c,IAYxE,YAPa,IAATyL,QACS,IAATC,GACEC,EAAY59G,SAAS09G,IAASG,EAAY79G,SAAS29G,IAErDjB,GAAa,MAIb9K,EAAAA,cAAC,QAAD,CACI3xG,IAAI,cACJs1D,KAAK,OACL,gBAAeub,EAAO,EACtB,uBAAqB,OACrB,gBAAe4kB,GAAcr2F,OAASk+G,GACtC3L,EAAAA,cAAC,QAAD,CAAOr8C,KAAK,YACRq8C,EAAAA,cAAC,KAAD,CAAIr8C,KAAK,MAAM,gBAAe,GACzBumC,EAAclsF,KAAI,SAAA0K,GAAA,OACfs3F,EAAAA,cAAC,KAAD,CACIr8C,KAAK,eACL,gBAAegrB,EAAUh9D,QAAQ+9D,SAAShnE,EAAEwkF,aAC5C,gBAAexkF,EAAEwkF,YAAc,EAAIye,EACnClpD,UAAW,EACX0pD,QAAS,SAAAtwG,GACL,GAAIA,EAAE4Z,SAAWo1F,GAAS1yF,QAC1B,OAAO,MAAA8pF,QAAA,EAAAA,GAAgB,CAACv5F,EAAEwkF,aAAc,GAAD,EAE3C7+F,IAAKqa,EAAEwkF,aACNxkF,EAAEmzD,MAAA,MAKnBmkC,EAAAA,cAAC,QAAD,CAAOr8C,KAAK,YACPsoD,EAAYjuG,KAAI,SAAAmhE,GAAA,OACb6gC,EAAAA,cAAC,KAAD,CACIr8C,KAAK,MACL,gBAAegrB,EAAUzP,KAAKwQ,SAASvQ,GACvC9wE,IAAK8wE,EACL,gBAAeA,EAAM,GACpB+qB,EAAclsF,KAAI,SAAA0K,GACf,IAAM+L,EAAM/L,EAAEwkF,YACR7+F,EAAA,GAAAu+B,OAASnY,EAAA,KAAAmY,OAAOuyC,GAChBitC,EAAUN,IAASr3F,GAAOs3F,IAAS5sC,EACnC1vD,OACQ,IAAVu/D,GACAv6D,GAAOu6D,EAAMnhD,GACbpZ,EAAMu6D,EAAMnhD,EAAImhD,EAAM3qD,OACtB86C,GAAO6P,EAAM33C,GACb8nC,EAAM6P,EAAM33C,EAAI23C,EAAM1qD,OACpBpG,EAAA,cAAA0O,OAAmBnY,EAAA,KAAAmY,OAAOuyC,GAC1BktC,EAAczX,EAAe,CAACngF,EAAK0qD,IACzC,OACI6gC,EAAAA,cAAC,KAAD,CACI3xG,IAAAA,EACAs1D,KAAK,WACL,gBAAelvC,EAAM,EAAIk3F,EACzB,gBAAel8F,EACf,gBACIk+D,GAAgB0+B,KAAiBv+B,GAAgBu+B,GAErDnuF,GAAAA,EACA,cAAaA,EACb0nB,QAAS,WACL,IAAM07C,EAAS,MAAAmgB,QAAA,EAAAA,GAAWtpF,QAC1B,GAAe,OAAXmpE,QAA8B,IAAXA,EACvB,OAAO,MAAA59B,QAAA,EAAAA,GAAY,CACf8hD,OAAQnB,GAAiB/iB,EAAQ7sE,EAAK0qD,GACtC/6D,OAAQ,WAAM,EACdmb,eAAgB,WAAM,EACtBnB,gBAAiB,WAAM,EACvB4C,SAAS,EACT3yB,IAAK,QACLswB,QAAS,GACTwC,SAAS,EACTF,UAAU,EACVC,QAAQ,EACRkoF,cAAU,KAGlBkD,eAAgB,SAAAzwG,GAtgD5D,IAAAk6F,EAAAwW,EAugDgD,GACI1wG,EAAE4Z,SAAWo1F,GAAS1yF,WACrB,OAAA49E,EAAAkV,GAAsB9yF,cAAtB,EAAA49E,EAAgC,MAAOthF,IACpC,OAAA83F,EAAAtB,GAAsB9yF,cAAtB,EAAAo0F,EAAgC,MAAOptC,GAI/C,OADA8rC,GAAsB9yF,QAAU,CAAC1D,EAAK0qD,GAC/B,MAAA8iC,QAAA,EAAAA,GAAgB,CAACxtF,EAAK0qD,GAAA,EAEjC7lC,IAAK8yE,EAAUtB,QAAe,EAC9BroD,UAAW,GAjvCpC,SAAC0iB,EAAqBgO,GAhSzC,IAAA1J,EAiSI,GAAItE,EAAKkI,OAASvB,GAAaqC,OAAQ,OAAOhJ,EAAKqnC,SACnD,IAAMp1E,EAAI,MAAA+7C,OAAA,EAAAA,EAAkBhO,GAC5B,OAAO,OAAAsE,EAAA,MAAAryC,OAAA,EAAAA,EAAGq1E,uBAAuBtnC,IAA1BsE,EAAmC,GA+uCDijC,CAAWL,EAAal5B,IAAA,YAU7D,CACI9uD,EACAy/D,GACAhJ,GACAwV,GACA5M,GACAxkB,EACAukB,EACA4c,EACA1xB,EACAm8B,GACAlW,EACA6M,GACA/9C,GACA2gD,GACApC,IAEJ,KAGE0K,GAAU7L,EAAenmB,GAAemJ,GAAewM,IAAoB,EAC3Esc,GACgB,IAAlBhpB,GAAwBkd,EAAmBhmB,GAAc8I,EAAgB,EAAIipB,GAAOnpB,GAAa,IAAK,EAAG,GAAlE,EAGrCopB,GAAY9L,EAAmB6L,IADE,IAAdppB,EAAmBE,IACkB,IAAK,EAAG,GAArC,EAE3BopB,GAAqB/M,EAAAA,SAAQ,WAC/B,IAAK4M,KAAaE,GACd,OAAO,KAGX,IAAME,EAA8B,CAChCp3D,SAAU,WACV9qB,IAAK,EACLF,KAAM+hF,GACNtoF,MAAOA,EAAQsoF,GACfroF,OAAAA,EACAxR,QAAS85F,GACT/sD,cAAe,OACf/hC,WAAaykF,QAAiC,EAAjB,eAC7B0K,UAAW,8CAGTC,EAA8B,CAChCt3D,SAAU,WACV9qB,IAAK04D,GACL54D,KAAM,EACNvG,MAAAA,EACAC,OAAAA,EACAxR,QAASg6F,GACTjtD,cAAe,OACf/hC,WAAa2kF,QAAiC,EAAjB,eAC7BwK,UAAW,8CAGf,OACIjN,EAAAA,cAAAA,EAAAA,SAAA,KACK4M,GAAW,GAAK5M,EAAAA,cAAC,MAAD,CAAK9hF,GAAG,WAAWlK,MAAOg5F,IAC1CF,GAAW,GAAK9M,EAAAA,cAAC,MAAD,CAAK9hF,GAAG,WAAWlK,MAAOk5F,IAAA,GAGpD,CAACN,GAAUE,GAAUH,GAAStoF,EAAOk+E,GAAe/e,GAAmBl/D,EAAQm+E,KAE5E0K,GAAqBnN,EAAAA,SACvB,iBAAO,CACHpqD,SAAU,WACV9qB,IAAK,EACLF,KAAM,KAEV,IAGJ,OACIo1E,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC,SAAD,CACI,cAAY,mBACZv9C,SAAU,EACViB,UAAWylD,GACX3H,QAAS6H,GACT8C,QAASzL,EACT0M,OAAQzM,EACRrnE,IAAKgwE,GACLt1F,MAAAA,IACCk3F,IAELlL,EAAAA,cAAC,SAAD,CAAQ1mE,IAAKkqE,GAAYxvF,MAAOm5F,KAC/BJ,GAAA,KC5iDb,SAAAM,GAA0BrgB,EAAyB3oE,EAAe7hB,EAAanJ,GAtE/E,IAAAowE,EAuEI,OAAO6jC,EAAMp0G,KAAKmtG,MAAMhiF,GAAS,OAAAolD,EAAAujB,EAAOugB,YAAP9jC,EAAqB,IAAKvwE,KAAKC,KAAKqJ,GAAMtJ,KAAKurD,MAAMprD,GAAA,CAG1F,IA8UAm0G,GA9U+D,SAAAjlG,GA1E/D,IAAAkhE,EA2EIgkC,EAAoDC,EAAAA,WAAAC,GAAAvjD,EAAAA,EAAAA,GAAAqjD,EAAA,GAA7CG,EAAAD,EAAA,GAAiBE,EAAAF,EAAA,GACxBG,EAAwCJ,EAAAA,WAAAK,GAAA3jD,EAAAA,EAAAA,GAAA0jD,EAAA,GAAjCE,EAAAD,EAAA,GAAWE,EAAAF,EAAA,GAElBG,EAAoCR,EAAAA,WAAAS,GAAA/jD,EAAAA,EAAAA,GAAA8jD,EAAA,GAA7BE,EAAAD,EAAA,GAASE,EAAAF,EAAA,GAChBG,EAAoCZ,EAAAA,WAAAa,GAAAnkD,EAAAA,EAAAA,GAAAkkD,EAAA,GAA7BE,EAAAD,EAAA,GAASE,EAAAF,EAAA,GAChBG,EAAgDhB,EAAAA,UAAS,GAAAiB,GAAAvkD,EAAAA,EAAAA,GAAAskD,EAAA,GAAlDE,EAAAD,EAAA,GAAeE,EAAAF,EAAA,GACtBG,EAA0CpB,EAAAA,WAAAqB,GAAA3kD,EAAAA,EAAAA,GAAA0kD,EAAA,GAAnCE,EAAAD,EAAA,GAAYE,EAAAF,EAAA,GAEnBG,EAAoCxB,EAAAA,WAAAyB,GAAA/kD,EAAAA,EAAAA,GAAA8kD,EAAA,GAA7BE,EAAAD,EAAA,GAASE,EAAAF,EAAA,GAChBG,EAAoC5B,EAAAA,WAAA6B,GAAAnlD,EAAAA,EAAAA,GAAAklD,EAAA,GAA7BE,EAAAD,EAAA,GAASE,EAAAF,EAAA,GAChBG,EAAgDhC,EAAAA,UAAS,GAAAiC,GAAAvlD,EAAAA,EAAAA,GAAAslD,EAAA,GAAlDE,EAAAD,EAAA,GAAeE,EAAAF,EAAA,GACtBG,EAA0CpC,EAAAA,WAAAqC,GAAA3lD,EAAAA,EAAAA,GAAA0lD,EAAA,GAAnCE,EAAAD,EAAA,GAAYE,EAAAF,EAAA,GAGfvP,EAeAj4F,EAfAi4F,kBACA5L,EAcArsF,EAdAqsF,eACAsb,EAaA3nG,EAbA2nG,cACAC,EAYA5nG,EAZA4nG,eACAC,EAWA7nG,EAXA6nG,oBACAC,EAUA9nG,EAVA8nG,kBACAC,EASA/nG,EATA+nG,QACAC,EAQAhoG,EARAgoG,eACAC,EAOAjoG,EAPAioG,eACAC,GAMAloG,EANAkoG,WACAC,GAKAnoG,EALAmoG,YACAl7D,GAIAjtC,EAJAitC,YACA2rD,GAGA54F,EAHA44F,UACAG,GAEA/4F,EAFA+4F,cACAI,GACAn5F,EADAm5F,YAGEiP,QAA6E,KAAhE,OAAAlnC,EAAA,MAAA0mC,EAAAA,EAAkBE,GAAlB5mC,EAAuC2mC,GAElDz+F,GAAuBpJ,EAAvBoJ,QACFi/F,GADyBroG,EAAdomE,UACiBh9D,QAE5Bk/F,GAA0BnD,EAAAA,aAC5B,SAACnqG,GACG,IAAAutG,GAAA1mD,EAAAA,EAAAA,GAAmB7mD,EAAKuD,SAAA,GAAjB2N,EAAAq8F,EAAA,GAAK3xC,EAAA2xC,EAAA,QACI,IAAZ1C,GAAyBI,IAAY/5F,GAAOA,GAAOi8F,IACnD7B,GAAiB,GACjBJ,EAAWh6F,SACQ,IAAZ26F,QAAiC,IAARjwC,GAChC0wC,GAAiB,GACjBJ,EAAWv2G,KAAKG,IAAI,EAAG8lE,KAEvB,MAAAmiC,IAAAA,GAAgB/9F,EAAA,GAGxB,CAAC6qG,EAASgB,EAASZ,EAASlN,GAAeoP,KAGzCK,QAA+B,IAAlBb,EACb9H,GAAwBsF,EAAAA,aAC1B,SAACnqG,GAjIT,IAAA4tF,EAAAznB,EAkIY,GAAoB,IAAhBnmE,EAAK+d,OAAc,CACnB,IAAA0vF,GAAA5mD,EAAAA,EAAAA,GAAmB7mD,EAAKuD,SAAA,GAAjB2N,EAAAu8F,EAAA,GAAK7xC,EAAA6xC,EAAA,GACZ,GAAkB,kBAAdztG,EAAK8pE,MAA4B9pE,EAAKgiG,QAAUoL,GAAW,CAC3D,IAAMnL,EAAS,OAAArU,EAAA,MAAAmf,OAAA,EAAAA,EAASn4F,cAAT,EAAAg5E,EAAkB6Z,UAAUr5F,GAAQlkB,OAAS,GAAI,QACjD,IAAX+3G,IACAqI,EAAmBrI,EAAO33E,GAC1BogF,EAAat8F,GAAQlkB,OAAS,QAEb,WAAd8V,EAAK8pE,MAAqB54D,GAAOi8F,GACpCntG,EAAKgiG,QAAUoL,IACf9C,EAAmBtqG,EAAKiiG,OAAO33E,GAC/BogF,EAAax5F,GACb,MAAA27F,GAAAA,EACIz+F,GAAQ8C,GACRlR,EAAKiiG,OAAOnhF,MACZ5P,EACAlR,EAAKiiG,OAAOnhF,OAAS,OAAAqlD,EAAA/3D,GAAQ8C,GAAK84F,YAAb7jC,EAA2B,KAE/B,WAAdnmE,EAAK8pE,MAAqB0jC,KACjC9B,EAAc1rG,EAAKiiG,OAAO33E,GAC1BwgF,EAAW55F,IAGD,SAAdlR,EAAK8pE,MACLqjC,GAAc,GACN,IAARj8F,QACQ,IAAR0qD,QACe,IAAfsxC,KAEAR,EAAc1sG,EAAKiiG,OAAOnuE,GAC1Bg4E,EAAWlwC,GAAA,CAGnB,MAAA3pB,IAAAA,GAAcjyC,EAAA,GAElB,CAACiyC,GAAam7D,GAAWD,GAAaD,GAAYH,EAAS3+F,GAASo/F,GAAYX,IAG9Ea,GAAiCvD,EAAAA,aACnC,SAACj5F,EAAay8F,GACNtC,GAAiBgB,GACrB,MAAApP,GAAAA,EAAoB/rF,EAAKy8F,EAAA,GAE7B,CAACtC,EAAegB,EAAepP,IAG7B2Q,GAA2BzD,EAAAA,QAAQ,GAEnC0D,GAAiB1D,EAAAA,aAAY,WAC/ByD,GAAmBh5F,SAAW,EAC9Bk3F,OAAW,GACXI,OAAW,GACXQ,OAAc,GACdJ,GAAiB,GACjBxB,OAAW,GACXI,OAAW,GACXQ,OAAc,GACdJ,GAAiB,GACjBZ,OAAa,GACbJ,OAAmB,KACpB,IAEGvF,GAAsBoF,EAAAA,aACxB,SAACnqG,EAA0BglG,GAjMnC,IAAApX,EAAAznB,EAAA+gB,EAkMY,GAAoB,IAAhBlnF,EAAK+d,OAAc,CACnB,QAAkB,IAAd0sF,EAAyB,CAGzB,IAA6C,KAAzC,MAAA4C,QAAA,EAAAA,GAAiBlhC,SAASs+B,IAAqB,KAC/BqD,EAD+BC,EAAAv7C,EAC/B66C,IAAA,IAAhB,IAAAU,EAAA9iD,MAAA6iD,EAAAC,EAAA73G,KAAAygC,MAAiC,KAAtBxxB,EAAA2oG,EAAAr/G,MACP,GAAI0W,IAAMslG,EAAV,CACA,IAAMv5F,EAAM9C,GAAQjJ,GACd6oG,EAAUlE,GACZ54F,EACA08F,GAAmBh5F,QACnBq4F,EACAD,GAEJ,MAAAJ,GAAAA,EAAiB17F,EAAK88F,EAAS7oG,EAAG6oG,GAAW,OAAApgB,EAAA18E,EAAI84F,YAAJpc,EAAkB,GARlC,CAQkC,QAAAlqF,GAAAqqG,EAAAz1G,EAAAoL,EAAA,SAAAqqG,EAAA5nG,GAAA,EAIvE,IAAM8nG,EAAKnE,GACP17F,GAAQq8F,GACRmD,GAAmBh5F,QACnBq4F,EACAD,GAEJ,MAAAF,GAAAA,EAAoB1+F,GAAQq8F,GAAYwD,EAAIxD,EAAWwD,GAAM,OAAA9nC,EAAA/3D,GAAQq8F,GAAWT,YAAnB7jC,EAAiC,QAC9E+nC,EAD8EC,EAAA37C,EAC9E66C,IAAA,IAAhB,IAAAc,EAAAljD,MAAAijD,EAAAC,EAAAj4G,KAAAygC,MAAiC,KAAtBxxB,EAAA+oG,EAAAz/G,MACP,GAAI0W,IAAMslG,EAAV,CACA,IAAMv5F,EAAM9C,GAAQjJ,GACd8lD,EAAI6+C,GAAiB54F,EAAK08F,GAAmBh5F,QAASq4F,EAAgBD,GAC5E,MAAAF,GAAAA,EAAoB57F,EAAK+5C,EAAG9lD,EAAG8lD,GAAK,OAAAi8B,EAAAh2E,EAAI84F,YAAJ9iB,EAAkB,GAHzB,CAGyB,QAAAxjF,GAAAyqG,EAAA71G,EAAAoL,EAAA,SAAAyqG,EAAAhoG,GAAA,EAI9D0nG,UACgB,IAAZhD,QAAqC,IAAZI,IACzB,MAAA0B,GAAAA,EAAgB9B,EAASI,SAEb,IAAZY,QAAqC,IAAZI,IACzB,MAAAiB,IAAAA,GAAarB,EAASI,GAAA,CAG9B,MAAArO,IAAAA,GAAY59F,EAAMglG,EAAA,GAEtB,CACIpH,GACA6M,EACAI,EACAI,EACAY,EACAI,EACAoB,GACAP,EACA1+F,GACA6+F,EACAD,EACAJ,EACAD,EACAO,GACAW,KAIFO,GAAmBjE,EAAAA,SAAQ,WAC7B,QAAgB,IAAZU,QAAqC,IAAZI,GACzBJ,IAAYI,EAEhB,MAAO,CACH5lE,IAAKwlE,EACL3zB,KAAM+zB,EAAA,GAEX,CAACJ,EAASI,IAEPnN,GAAoBqM,EAAAA,aACtB,SAACpmF,GA3QT,IAAA6pE,EAAAznB,EA4QY,QAAgB,IAAZ0kC,QAAwC,IAAfY,EACZ91G,KAAK4/C,IAAIxxB,EAAM1G,QAAUouF,GAC3B,IACPH,GAAiB,gBAEF,IAAZO,QAAwC,IAAfY,EAA0B,CAC7C92G,KAAK4/C,IAAIxxB,EAAMzG,QAAUmvF,GAC3B,IACPH,GAAiB,gBAEA,IAAd7B,QAA+C,IAApBJ,EAA+B,CACjE,IAAM5gB,EAASr7E,GAAQq8F,GACjB4D,EAAWtqF,EAAM1G,QAAUgtF,EAC3B4D,EAAKnE,GAAiBrgB,EAAQ4kB,EAAUpB,EAAgBD,GAI9D,GAHA,MAAAJ,GAAAA,EAAiBnjB,EAAQwkB,EAAIxD,EAAWwD,GAAM,OAAArgB,EAAAnE,EAAOugB,YAAPpc,EAAqB,IACnEggB,GAAmBh5F,QAAUy5F,GAEzB,MAAAhB,QAAA,EAAAA,GAAiBnhC,WAAYu+B,EAAW,KACxB6D,EADwBC,EAAA/7C,EACxB66C,IAAA,IAAhB,IAAAkB,EAAAtjD,MAAAqjD,EAAAC,EAAAr4G,KAAAygC,MAAiC,KAAtBxxB,EAAAmpG,EAAA7/G,MACP,GAAI0W,IAAMslG,EAAV,CACA,IAAMv5F,EAAM9C,GAAQjJ,GACd8lD,EAAI6+C,GAAiB54F,EAAK08F,GAAmBh5F,QAASq4F,EAAgBD,GAC5E,MAAAJ,GAAAA,EAAiB17F,EAAK+5C,EAAG9lD,EAAG8lD,GAAK,OAAAkb,EAAAj1D,EAAI84F,YAAJ7jC,EAAkB,GAHtB,CAGsB,QAAAziE,GAAA6qG,EAAAj2G,EAAAoL,EAAA,SAAA6qG,EAAApoG,GAAA,MAKnE,CACI0kG,EACAY,EACAI,EACAY,EACAhC,EACAJ,EACAj8F,GACA6+F,EACAD,EACAJ,EACAS,KAIFmB,GAA8BrE,EAAAA,aAChC,SAAAvoC,GACI,QAAgB,IAAZiqC,QAAqC,IAAZI,EAAuB,OAAO5a,EAAezvB,GAG1E,IAAA6sC,GAAA5nD,EAAAA,EAAAA,GAAiB+a,EAAA,GAAZ1wD,EAAAu9F,EAAA,GAAK7yC,EAAA6yC,EAAA,GAQV,OAPI7yC,IAAQqwC,EACRrwC,EAAMiwC,GAEFjwC,EAAMqwC,IAASrwC,GAAO,GACtBA,GAAOiwC,IAASjwC,GAAO,IAGxBy1B,EAAe,CAACngF,EAAK0qD,GAAA,GAEhC,CAACiwC,EAASI,EAAS5a,IAGjBqd,GAAwBvE,EAAAA,aAC1B,SAAAnqG,GACI,MAAAm+F,IAAAA,GAAcn+F,GACTA,EAAK6b,oBACNgyF,IAAA,GAGR,CAACA,GAAU1P,KAGf,OACIgM,EAAAA,cAAC3N,GAAD,CACIM,oBAAqB93F,EAAE83F,oBACvBoB,UAAWl5F,EAAEk5F,UACb3mB,YAAavyE,EAAEuyE,YACf2I,YAAal7E,EAAEk7E,YACf9xE,QAASpJ,EAAEoJ,QACXkjF,aAActsF,EAAEssF,aAChB/L,eAAgBvgF,EAAEugF,eAClB4O,cAAenvF,EAAEmvF,cACjBlL,WAAYjkF,EAAEikF,WACd6D,aAAc9nF,EAAE8nF,aAChBuR,eAAgBr5F,EAAEq5F,eAClBc,aAAcn6F,EAAEm6F,aAChB9K,WAAYrvF,EAAEqvF,WACd2J,mBAAoBh5F,EAAEg5F,mBACtBT,aAAcv4F,EAAEu4F,aAChBE,aAAcz4F,EAAEy4F,aAChBpd,cAAer7E,EAAEq7E,cACjBzQ,gBAAiB5qE,EAAE4qE,gBACnBud,gBAAiBnoF,EAAEmoF,gBACnBpG,oBAAqB/hF,EAAE+hF,oBACvB/G,kBAAmBh7E,EAAEg7E,kBACrBS,aAAcz7E,EAAEy7E,aAChBsC,YAAa/9E,EAAE+9E,YACfhiE,OAAQ/b,EAAE+b,OACV2wE,iBAAkB1sF,EAAE0sF,iBACpBoN,kBAAmB95F,EAAE85F,kBACrBN,YAAax5F,EAAEw5F,YACftB,UAAWl4F,EAAEk4F,UACb3L,UAAWvsF,EAAEusF,UACb6L,aAAcp4F,EAAEo4F,aAChBD,gBAAiBn4F,EAAEm4F,gBACnBuB,cAAe15F,EAAE05F,cACjBrB,cAAer4F,EAAEq4F,cACjBe,UAAWp5F,EAAEo5F,UACbS,YAAa75F,EAAE65F,YACfF,eAAgB35F,EAAE25F,eAClBC,OAAQ55F,EAAE45F,OACVz+C,UAAWn7C,EAAEm7C,UACb89C,QAASj5F,EAAEi5F,QACXH,YAAa94F,EAAE84F,YACfrM,cAAezsF,EAAEysF,cACjBjR,UAAWx7E,EAAEw7E,UACb7kB,KAAM32D,EAAE22D,KACRyP,UAAWpmE,EAAEomE,UACb4zB,cAAeh6F,EAAEg6F,cACjBE,cAAel6F,EAAEk6F,cACjBj5B,MAAOjhE,EAAEihE,MACTghB,gBAAiBjiF,EAAEiiF,gBACnB9G,WAAYn7E,EAAEm7E,WACdC,WAAYp7E,EAAEo7E,WACd4G,eAAgBhiF,EAAEgiF,eAClBlmE,MAAO9b,EAAE8b,MACTuwE,eAAgBmd,GAChBxhB,gBAA0B,IAAdyd,EACZxN,kBAAmByQ,GACnBpP,WAAY+M,EACZtN,cAAeuP,GACfnP,YAAauQ,GACbz8D,YAAa4yD,GACbpG,YAAa2O,GACbxP,UAAWmH,GACXhY,iBAAkBqhB,GAClBvQ,eAAgBC,GAChB/nE,IAAKg3E,GAAA,MCxXX4B,IAAoB9lD,EAAAA,EAAAA,GAApB,MAAoBA,CAApB,CAAArvD,KAAA,oBAAAyvD,MAAA,WAAAK,KAAA,eAEc,SAAAtkD,GAAA,OAAMA,EAAE4pG,SAAW,SAAW,YA2ClD,SAAAC,GAAkBv2G,GACdA,EAAEuiB,iBAAA,CAoCC,IAAMi0F,GAAoC,SAAA9pG,GA9GjD,IAAAkhE,EAAAC,EAAA+gB,EAAA7/B,EAgHQ96C,EAgBAvH,EAhBAuH,SACA4sC,EAeAn0C,EAfAm0C,aACA41D,EAcA/pG,EAdA+pG,aACAC,EAaAhqG,EAbAgqG,YACAC,EAYAjqG,EAZAiqG,OACAC,EAWAlqG,EAXAkqG,UACAl9D,EAUAhtC,EAVAgtC,UAAAm9D,EAUAnqG,EATAoqG,yBAAAA,OAAA,IAAAD,GAA2BA,EAAAE,EAS3BrqG,EARAsqG,cAAAA,OAAA,IAAAD,EAAgB,EAAAA,EAAAE,EAQhBvqG,EAPAwqG,aAAAA,OAAA,IAAAD,EAAe,EAAAA,EACfE,EAMAzqG,EANAyqG,aACAC,EAKA1qG,EALA0qG,kBACAC,EAIA3qG,EAJA2qG,UACAC,EAGA5qG,EAHA4qG,YACAC,EAEA7qG,EAFA6qG,YACAC,EACA9qG,EADA8qG,QAEEC,EAA6B,GAE7BC,EAAqB,OAAA9pC,EAAA,MAAAwpC,OAAA,EAAAA,EAAmBv4B,SAAnBjR,EACrB+pC,EAAmB,OAAA9pC,EAAA,MAAAupC,OAAA,EAAAA,EAAmBt6B,OAAnBjP,EAEnB+pC,EAAgBC,EAAAA,OAAO,GACvBC,EAAoBD,EAAAA,OAAO,GAC3BE,EAAiBF,EAAAA,OAA8B,MAE/C5yB,EAAM73E,OAAO83E,iBAEb2yB,EAAAA,WAAU,WACZ,IAAM3mE,EAAK6mE,EAASz7F,QACT,OAAP40B,IAA+B,IAAhBomE,IAEnBpmE,EAAGliB,WAAakiB,EAAGwlE,YAAcxlE,EAAG0P,YAAA,GACrC,CAAC02D,IAEJ,IAAMU,EAA2BH,EAAAA,OAAO,CACpC7oF,WAAY,EACZE,UAAW,EACX+oF,mBAAe,IAGbC,EAAqBL,EAAAA,OAA8B,MAEnDM,EA9EV,SAA2BlqD,GACvB,IAAAmqD,EAA0CP,EAAAA,UAAS,GAAfQ,GAAA9pD,EAAAA,EAAAA,GAAA6pD,EAAA,GAA7BD,EAAAE,EAAA,GAAYC,EAAbD,EAAC,GAEDE,EAAgBV,EAAAA,OAAO,GA2B7B,OA1BA37B,GACI,aACM27B,EAAAA,aAAY,WACdzqG,OAAO9E,aAAaiwG,EAAQj8F,SAC5Bg8F,GAAc,KACf,IACHlrG,QACA,GACA,GAGJ8uE,GACI,WACM27B,EAAAA,aACF,SAAA73G,GAC6B,IAArBA,EAAEkpB,QAAQt3B,SACV2mH,EAAQj8F,QAAUlP,OAAOpF,YAAW,kBAAMswG,GAAc,EAAd,GAAsBrqD,GAAA,GAGxE,CAACA,IAEL7gD,QACA,GACA,GAGG+qG,CAAA,CAgDYK,CAAkB,KACrCC,EAAkCZ,EAAAA,UAAS,GAAfa,GAAAnqD,EAAAA,EAAAA,GAAAkqD,EAAA,GAArBE,EAAAD,EAAA,GAAQE,EAATF,EAAC,GACDG,EAAkBhB,EAAAA,OAAO,GAEzBA,EAAAA,WAAU,WACZ,GAAKc,IAAUR,QAA2D,IAA7CH,EAAmB17F,QAAQ27F,cAAxD,CACA,IAAM/mE,EAAK6mE,EAASz7F,QACpB,GAAW,OAAP40B,EAAJ,CACA,IAAA4nE,GAAAvqD,EAAAA,EAAAA,GAAiBypD,EAAmB17F,QAAQ27F,cAAA,GAArCc,EAAAD,EAAA,GAAIE,EAALF,EAAC,QACI,IAAPC,EACA7nE,EAAGliB,WAAa+pF,OACF,IAAPC,IACP9nE,EAAGhiB,UAAY8pF,GAEnBhB,EAAmB17F,QAAQ27F,mBAAgB,CAPpB,CAFoE,CAShD,GAC5C,CAACE,EAAYQ,IAEhB,IAAMM,EAAiBpB,EAAAA,aAAY,WA5KvC,IAAAviB,EAAA2I,EAAA2R,EAAAC,EA6Kc3+D,EAAK6mE,EAASz7F,QACpB,GAAW,OAAP40B,EAAJ,CAEA,IAAIhiB,EAAYgiB,EAAGhiB,UACfF,EAAakiB,EAAGliB,WACdkqF,EAAgBlB,EAAmB17F,QAAQ4S,UAC3CiqF,EAAiBnB,EAAmB17F,QAAQ0S,WAE5C8vE,EAAK9vE,EAAamqF,EAClBpa,EAAK7vE,EAAYgqF,EAGnBf,GACO,IAAPrZ,GACO,IAAPC,IACC1hG,KAAK4/C,IAAI6hD,GAAM,GAAKzhG,KAAK4/C,IAAI8hD,GAAM,IACpC+X,QAC6C,IAA7CkB,EAAmB17F,QAAQ27F,gBAE3BD,EAAmB17F,QAAQ27F,cACvB56G,KAAK4/C,IAAI6hD,GAAMzhG,KAAK4/C,IAAI8hD,GAAM,CAACoa,OAAgB,GAAa,MAAC,EAAWD,IAGhF,IAAME,EAAOpB,EAAmB17F,QAAQ27F,cAExCjpF,EAAa,OAAAsmE,EAAA,MAAA8jB,OAAA,EAAAA,EAAO,IAAP9jB,EAAatmE,EAC1BE,EAAY,OAAA+uE,EAAA,MAAAmb,OAAA,EAAAA,EAAO,IAAPnb,EAAa/uE,EACzB8oF,EAAmB17F,QAAQ0S,WAAaA,EACxCgpF,EAAmB17F,QAAQ4S,UAAYA,EAEvC,IAAMmqF,EAAOnqF,EACPstB,EAAQs7D,EAAYx7F,QAAU+8F,EAC9BC,EAAmBpoE,EAAGulE,aAAevlE,EAAG2P,aAG9C,GAFAi3D,EAAYx7F,QAAU+8F,EAGlBC,EAAmB,IAClBj8G,KAAK4/C,IAAIT,GAAS,KAAiB,IAAT68D,GAAcA,IAASC,IAClD7C,EAAevlE,EAAGulE,aAAe,EACnC,CACE,IAAM8C,EAAOF,EAAOC,EACdE,GAAc/C,EAAevlE,EAAG2P,cAAgB04D,EACtD3B,EAAQt7F,QAAUk9F,EAAaH,CAAA,MAGtB,IAATD,IACAhsG,OAAO9E,aAAauwG,EAAUv8F,SAC9Bs8F,GAAU,GACVC,EAAUv8F,QAAUlP,OAAOpF,YAAW,kBAAM4wG,GAAU,EAAV,GAAiB,MAGjEjC,EAAO,CACH3kF,EAAGhD,EACHwM,EAAG69E,EAAOzB,EAAQt7F,QAClBkM,MAAO0oB,EAAG0P,YAAcs2D,EACxBzuF,OAAQyoB,EAAG2P,aAAem2D,EAC1BE,aAAc,OAAArH,EAAA,OAAAD,EAAAsI,EAAa57F,cAAb,EAAAszF,EAAsBhvD,aAAtBivD,EAAqC,GAvDhC,CAuDgC,GAExD,CAACmH,EAAeE,EAAcT,EAAcE,EAAQG,EAA0BqB,IAE3EsB,EAAoB5B,EAAAA,OAAOoB,GACjCQ,EAAYn9F,QAAU28F,EAEtB,IAAMS,EAAkB7B,EAAAA,SAElB8B,EAAuB9B,EAAAA,QAAO,GAC9BA,EAAAA,WAAU,WACR8B,EAAer9F,QAAS28F,IACvBU,EAAer9F,SAAU,IAC/B,CAAC28F,EAAUjC,EAAeE,IAE7B,IAAM0C,EAAgB/B,EAAAA,aACjB,SAAA3mF,GACG6mF,EAASz7F,QAAU4U,OACD,IAAdmmF,IACAA,EAAU/6F,QAAU4U,EAAA,GAG5B,CAACmmF,IAGD7kH,EAAM,EACN2e,EAAI,EAER,IADAsmG,EAAQ1lH,KAAK8lH,EAAAA,cAAC,MAAD,CAAKrlH,IAAKA,IAAO2lB,MAAO,CAAEqQ,MAAOkuF,EAAajuF,OAAQ,MAC5DtX,EAAIslG,GAAc,CACrB,IAAM9iC,EAAQt2E,KAAKsJ,IAAI,IAAW8vG,EAAetlG,GACjDsmG,EAAQ1lH,KAAK8lH,EAAAA,cAAC,MAAD,CAAKrlH,IAAKA,IAAO2lB,MAAO,CAAEqQ,MAAO,EAAGC,OAAQkrD,MACzDxiE,GAAKwiE,CAAA,CAGT,IAAAkmC,EChQG,SACHtC,GAEA,IAAM95E,GAAMq8E,EAAAA,EAAAA,QAAU,MAEtBC,GAAwBC,EAAAA,EAAAA,UAAwC,CAC5DxxF,MAAO,MAAA+uF,OAAA,EAAAA,EAAc,GACrB9uF,OAAQ,MAAA8uF,OAAA,EAAAA,EAAc,KAAA0C,GAAA1rD,EAAAA,EAAAA,GAAAwrD,EAAA,GAFnBpkH,EAAAskH,EAAA,GAAMC,EAAAD,EAAA,GAyBb,OApBAE,EAAAA,EAAAA,kBAAgB,WACZ,IAOMC,EAAiB,IAAIhtG,OAAOitG,gBAPa,SAAA9mH,GAAW,IAClC+mH,EADkCC,EAAArgD,EAClC3mE,GAAA,QAAA6zE,EAAA,WAAS,IAAlBzzE,EAAA2mH,EAAAnkH,MACPqkH,EAA2B7mH,GAASA,EAAM0kG,aAAgB,CAAC,EAAnD7vE,EAAAgyF,EAAAhyF,MAAOC,EAAA+xF,EAAA/xF,OACfyxF,GAAQ,SAAAtjC,GAAA,OAAOA,EAAGpuD,QAAUA,GAASouD,EAAGnuD,SAAWA,EAASmuD,EAAK,CAAEpuD,MAAAA,EAAOC,OAAAA,EAAA,KAF9E,IAAA8xF,EAAA5nD,MAAA2nD,EAAAC,EAAA38G,KAAAygC,MAAA+oC,GAE8E,OAAAh8D,GAAAmvG,EAAAv6G,EAAAoL,EAAA,SAAAmvG,EAAA1sG,GAAA,KAUlF,OAJI4vB,EAAInhB,SACJ89F,EAAe9jC,QAAQ74C,EAAInhB,aAAS,GAGjC,WACH89F,EAAe7jC,YAAA,IAGpB,CAAC94C,EAAInhB,UAERw+B,EAAA,CAASrd,IAAAA,GAAQ9nC,EAAA,CDkOc8kH,CAAkClD,GAAzD95E,EAAAo8E,EAAAp8E,IAAKjV,EAAAqxF,EAAArxF,MAAOC,GAAAoxF,EAAApxF,OAOpB,OALI,OAAAmmE,EAAA8qB,EAAUp9F,cAAV,EAAAsyE,EAAmBnmE,UAAWA,KAAU,OAAAsmC,EAAA2qD,EAAUp9F,cAAV,EAAAyyC,EAAmBvmC,SAAUA,IACrEpb,OAAOpF,YAAW,kBAAMyxG,EAAYn9F,SAAZ,GAAuB,GAC/Co9F,EAAUp9F,QAAU,CAAEkM,MAAAA,EAAOC,OAAAA,KAGZ,KAAhB,MAAAD,EAAAA,EAAS,IAA8B,KAAjB,MAAAC,GAAAA,GAAU,GAAiBovF,EAAAA,cAAC,MAAD,CAAKp6E,IAAAA,IAGvDo6E,EAAAA,cAAC,MAAD,CAAKp6E,IAAAA,GACDo6E,EAAAA,cAACxB,GAAD,CAAmBC,SAAU/S,GAAgBptG,OACxCqhH,EACDK,EAAAA,cAAC,MAAD,CAAKn+D,UAAU,gBAAgBzlC,GAC/B4jG,EAAAA,cAAC,MAAD,CACIp6E,IAAKm8E,EACLzhG,MAAOuhG,EAAUp9F,QACjBs6F,UAAAA,EACA/Q,YAAa,SAAA7lG,GACJ42G,IACD52G,EAAEuiB,kBACFviB,EAAE0jB,iBAAA,EAGVg2B,UAAW,iBAAmB,MAAAA,EAAAA,EAAa,IAC3Cu/D,SAAAA,GACApB,EAAAA,cAAC,MAAD,CAAKn+D,UAAW,yBAAuC,IAAjBy9D,EAA6B,UAAY,KAC3EU,EAAAA,cAAC,MAAD,CAAKn+D,UAAU,aAAa+9D,QACV,IAAjBN,GACGU,EAAAA,cAAAA,EAAAA,SAAA,MACMF,GAAoBE,EAAAA,cAAC,MAAD,CAAKn+D,UAAU,eACrCm+D,EAAAA,cAAC,MAAD,CACIp6E,IAAKy6E,EACLv+D,YAAa48D,GACbjR,UAAWiR,GACX/Q,YAAa+Q,GACbp+F,MAAO,CACHsQ,OAAAA,GACAiyF,UAAW75D,EAAexjD,KAAKC,KAAK2nF,EAAM,GAC1ClrC,SAAU,SACV9qB,IAAK,EACL0rF,YAAa,EACbC,cAAe,GACfhwD,YAAassD,EACblhG,SAAU2hG,EAAmB,OAAI,EACjCl6D,MAAOi6D,EAAqB,MAAAR,EAAAA,EAAgB,OAAI,EAChDlzD,cAAe,SAElBmzD,OAAA,EEnO/B0D,IAAetqD,EAAAA,EAAAA,GAAf,MAAeA,CAAf,CAAArvD,KAAA,eAAAyvD,MAAA,aAuWNmqD,GAzUsE,SAAApuG,GAlHtE,IAAAkhE,EAAAC,EAAA+gB,EAoHQ94E,EAuBApJ,EAvBAoJ,QACAutD,EAsBA32D,EAtBA22D,KACA6kB,EAqBAx7E,EArBAw7E,UACAC,EAoBAz7E,EApBAy7E,aACAT,EAmBAh7E,EAnBAg7E,kBACA8M,EAkBA9nF,EAlBA8nF,aACAzM,EAiBAr7E,EAjBAq7E,cACA8e,EAgBAn6F,EAhBAm6F,aACAkU,EAeAruG,EAfAquG,WACArhE,EAcAhtC,EAdAgtC,UACAshE,EAaAtuG,EAbAsuG,uBACA1D,EAYA5qG,EAZA4qG,YACAD,EAWA3qG,EAXA2qG,UACAP,EAUApqG,EAVAoqG,yBACAK,EASAzqG,EATAyqG,aACAC,EAQA1qG,EARA0qG,kBACA6D,EAOAvuG,EAPAuuG,YACAC,EAMAxuG,EANAwuG,YAAAC,EAMAzuG,EALA0uG,YAAAA,OAAA,IAAAD,GAAcA,EACd5D,EAIA7qG,EAJA6qG,YAAA8D,EAIA3uG,EAHAg6F,cAAAA,OAAA,IAAA2U,GAAgBA,EAAAC,EAGhB5uG,EAFAk6F,cAAAA,OAAA,IAAA0U,GAAgBA,EAChBpV,EACAx5F,EADAw5F,YAEJqV,EAAwC,MAAA1U,EAAAA,EAAgB,CAAC,EAAjDqQ,EAAAqE,EAAArE,aAAcF,EAAAuE,EAAAvE,cAEtBwE,GAAAjtD,EAAAA,EAAAA,GAAoCwsD,EAAA,GAA7Bn6D,EAAA46D,EAAA,GAAa36D,EAAd26D,EAAC,GACDpyE,EAAaqyE,EAAAA,SACbC,EAAcD,EAAAA,SACdE,EAAcF,EAAAA,SACdG,EAAiBH,EAAAA,SAEjBjzF,EAAcizF,EAAAA,SAAQ,WACxB,IACgBI,EADZtgF,EAAIl+B,KAAKG,IAAI,EAAG,MAAAy9G,EAAAA,EAAe,GAA3Ba,EAAA5hD,EACQpkD,GAAA,IAAhB,IAAAgmG,EAAAnpD,MAAAkpD,EAAAC,EAAAl+G,KAAAygC,MAAyB,CACrB9C,GADOsgF,EAAA1lH,MACAqyB,KAAA,QAAApd,GAAA0wG,EAAA97G,EAAAoL,EAAA,SAAA0wG,EAAAjuG,GAAA,CAEX,OAAO0tB,CAAA,GACR,CAACzlB,EAASmlG,IAETxyF,EAAS+rE,EAAerM,EAAeT,EAAoBS,EAC/D,GAAyB,kBAAdD,EACPz/D,GAAU46C,EAAO6kB,OAEjB,IAAK,IAAI3sD,EAAI,EAAGA,EAAI8nC,EAAM9nC,IACtB9S,GAAUy/D,EAAU3sD,QAGR,IAAhB2/E,IACAzyF,GAAUyyF,GAGd,IAAMp0G,EAAiB20G,EAAAA,SAEjBM,EAAoBN,EAAAA,aAAY,WA1K1C,IAAAnmB,EAAA2I,EAAA2R,EA2KQ,QAAyB,IAArB9oG,EAASwV,QAAb,CACA,IAAM5U,EAAAozC,EAAA,GAAYh0C,EAASwV,SAEvB0V,EAAI,EACJktD,EAAKx3E,EAAKsqB,EAAI,GAAKtqB,EAAKsqB,EAAI,EAC5BgqF,EAAY,EACZjkB,EAAQ,EAEZrwF,EAAKsqB,EAAItqB,EAAKsqB,EAAI,EAAI,EAAItqB,EAAKsqB,EAG/B,IADA,IAAIiqF,EAAiB,EACZvqH,EAAI,EAAGA,EAAIq2F,EAAer2F,IAC/BuqH,GAAkBnmG,EAAQpkB,GAAG82B,MAAA,IAGjB0zF,EAHiBC,EAAAjiD,EAGjBpkD,GAAA,IAAhB,IAAAqmG,EAAAxpD,MAAAupD,EAAAC,EAAAv+G,KAAAygC,MAAyB,KAAdxxB,EAAAqvG,EAAA/lH,MACDimH,EAAKpqF,EAAIiqF,EACf,GAAIv0G,EAAKsqB,GAAKoqF,EAAKvvG,EAAE2b,MACjBwJ,GAAKnlB,EAAE2b,MACPuvE,IACAikB,SAAA,GACOt0G,EAAKsqB,EAAIoqF,EAChBpqF,GAAKnlB,EAAE2b,MACHk+E,EACAxnB,GAAMk9B,EAAK10G,EAAKsqB,EAEhB+lE,IAEJikB,QAAA,MACOt0G,EAAKsqB,EAAItqB,EAAK8gB,MAAQ4zF,GAI7B,MAHApqF,GAAKnlB,EAAE2b,MACPwzF,GAEA,SAAA5wG,GAAA+wG,EAAAn8G,EAAAoL,EAAA,SAAA+wG,EAAAtuG,GAAA,CAIR,IAAIkiF,EAAK,EACLiI,EAAQ,EACRqkB,EAAa,EACjB,GAAyB,kBAAdn0B,EACH0e,EAEA7W,GADAiI,EAAQ36F,KAAKurD,MAAMlhD,EAAK8zB,EAAI0sD,IACfA,EAAYxgF,EAAK8zB,EAE9Bw8D,EAAQ36F,KAAKC,KAAKoK,EAAK8zB,EAAI0sD,GAE/Bm0B,EAAah/G,KAAKC,KAAKoK,EAAK+gB,OAASy/D,GAAa8P,EAC9CjI,EAAK,GAAGssB,SAGZ,IADA,IAAI7gF,EAAI,EACC8nC,EAAM,EAAGA,EAAMD,EAAMC,IAAO,CACjC,IAAMpmC,EAAKgrD,EAAU5kB,GACfg5C,EAAK9gF,GAAKorE,EAAgB,EAAI1pE,EAAK,GACzC,GAAIx1B,EAAK8zB,GAAKA,EAAI0B,EACd1B,GAAK0B,EACL86D,IACAqkB,SAAA,GACO30G,EAAK8zB,EAAI8gF,EAChB9gF,GAAK0B,EACD0pE,EACA7W,GAAMusB,EAAK50G,EAAK8zB,EAEhBw8D,IAEJqkB,QAAA,MACO30G,EAAK8zB,EAAI9zB,EAAK+gB,OAASyU,EAAK,EAAI1B,GAIvC,MAHAA,GAAK0B,EACLm/E,GAEA,EAKZ,IAAMz+B,EAAkB,CACpB5rD,EAAG+lE,EACHv8D,EAAGw8D,EACHxvE,MAAOwzF,EAAYjkB,EACnBtvE,OAAQ4zF,EAAarkB,GAGnBukB,EAAUnzE,EAAK9sB,aAGL,IAAZigG,GACAA,EAAQ/gF,IAAMoiD,EAAKpiD,GACnB+gF,EAAQvqF,IAAM4rD,EAAK5rD,GACnBuqF,EAAQ9zF,SAAWm1D,EAAKn1D,QACxB8zF,EAAQ/zF,QAAUo1D,EAAKp1D,OACvBkzF,EAAMp/F,UAAY4iE,GAClBy8B,EAAMr/F,UAAYyzE,GAClBroF,EAAK8gB,SAAU,OAAA8sE,EAAAsmB,EAASt/F,cAAT,EAAAg5E,EAAmB,KAClC5tF,EAAK+gB,UAAW,OAAAw1E,EAAA2d,EAASt/F,cAAT,EAAA2hF,EAAmB,MAEnC,MAAA+c,GAAAA,EACI,CACIhpF,EAAG+lE,EACHv8D,EAAGw8D,EACHxvE,MAAOwzF,EAAYjkB,EACnBtvE,OAAQ4zF,EAAarkB,GAEzBtwF,EAAK8gB,MACL9gB,EAAK+gB,OACL,OAAAmnF,EAAAloG,EAAKwvG,cAALtH,EAAqB,EACrB1wB,EACA6Q,GAEJ3mD,EAAK9sB,QAAUshE,EACf89B,EAAMp/F,QAAU4iE,EAChBy8B,EAAMr/F,QAAUyzE,EAChB6rB,EAASt/F,QAAU,CAAC5U,EAAK8gB,MAAO9gB,EAAK+gB,QA/GC,CA+GD,GAE1C,CAAC3S,EAASoyE,EAAW7kB,EAAM23C,EAAwBjzB,EAAe2e,EAAeE,IAE9E4V,EAAuBf,EAAAA,aACxB,SAAA/zG,GACGZ,EAASwV,QAAU5U,EACnBq0G,GAAA,GAEJ,CAACA,IAGCN,EAAAA,WAAU,WACZM,GAAA,GACD,CAACA,IAEJ,IAAMhE,EAAW,OAAAnqC,EAAA,MAAAypC,OAAA,EAAAA,EAAW/6F,SAAXsxD,OAAsB,EACjC6uC,EAASC,EAAMl0F,EAAQC,EAAQ,EAAI,EAAG,KACtCk0F,EAAU,IACVzqF,GAAIuqF,EAAS,EAAIE,EAAUt/G,KAAKC,KAAKq/G,EAAUF,GAC/CtrG,GAAIsrG,EAAS,EAAIp/G,KAAKC,KAAKq/G,EAAUF,GAAUE,EAC/CC,GAAS1qF,GAAI1J,EACbq0F,GAAS1rG,GAAIsX,EACbq0F,GAASz/G,KAAKsJ,IAAIi6C,EAAcvjD,KAAKG,IAAIo/G,GAAQ,KAAO1qF,IACxD6qF,GAAU1/G,KAAKsJ,IAAIk6C,EAAexjD,KAAKG,IAAIq/G,GAAQ,KAAO1rG,IAC1D4d,IAAS,OAAA8+C,EAAA,MAAAkqC,OAAA,EAAAA,EAAU/oF,YAAV6+C,EAAwB,IAAMrlD,EAAQo4B,IAAiB1uB,GAAI4qF,IACpE7tF,IAAQ,OAAA2/D,EAAA,MAAAmpB,OAAA,EAAAA,EAAU7oF,WAAV0/D,EAAuB,IAAMnmE,EAASo4B,IAAkB1vC,GAAI4rG,IAEpEvF,GAAiCiE,EAAAA,SAAQ,WAC3C,GAAKL,GAA0B,IAAX0B,IAA4B,IAAZC,GAApC,CAEA,IAAMC,EAAe,SAAAh9G,GACjB,QAAiB,IAAb+3G,EAAJ,CACA,IAAMpO,EAAS3pG,EAAEqjB,cAAcszD,wBACzB3kD,EAAIhyB,EAAE+kB,QAAU4kF,EAAO33E,EAAI8qF,GAAS,EACpCthF,EAAIx7B,EAAEglB,QAAU2kF,EAAOnuE,EAAIuhF,GAAU,EAErCE,GAAiBz0F,EAAQuvF,EAASn3D,cAAgB5uB,GAAKE,GAAI4qF,KAC3DI,GAAgBz0F,EAASsvF,EAASl3D,eAAiBrlB,GAAKrqB,GAAI4rG,KAElEhF,EAASoF,SAAS,CACdpuF,KAAMkuF,EACNhuF,IAAKiuF,EACLE,SAAqB,cAAXp9G,EAAEkE,KAAuB,OAAS,UAXd,CAWc,EAIpD,OACIu3G,EAAAA,cAACZ,GAAD,CACI1iG,MAAO,CAAEqQ,MAAO0J,GAAGzJ,OAAQtX,IAC3B,cAAY,oBACZq0F,YAAa,SAAAxlG,GACS,IAAdA,EAAE0lB,SACNs3F,EAAYh9G,EAAA,EAEhB+pC,QAASizE,GACTvB,EAAAA,cAAC,MAAD,CAAK/hE,UAAU,WACf+hE,EAAAA,cAAC,MAAD,CACI/hE,UAAU,iBACVmsD,YAAa,SAAA7lG,GAAA,OAAKA,EAAE0jB,gBAAF,EAClBvL,MAAO,CACH4W,KAAAA,GACAE,IAAAA,GACAzG,MAAOs0F,GACPr0F,OAAQs0F,GACRM,aAAchgH,KAAKsJ,IAAIm2G,GAAkB,GAAVC,GAAe,MApCJ,CAoCI,GAI/D,CAAC5rG,GAAGsX,EAAQsG,GAAMgpF,EAAUqD,EAAansF,GAAK8tF,GAASD,GAAQ5qF,GAAG1J,IAErE,OACIizF,EAAAA,cAACjF,GAAD,CACIa,UAAAA,EACAG,QAAAA,GACA99D,UAAAA,EACAo9D,yBAAAA,EACAF,WAA2B,IAAhB1Q,GAA+C,kBAAhBA,EAC1CwQ,YAAaluF,GAAS,MAAA0uF,EAAAA,EAAgB,GACtCT,aAAchuF,GAAU,MAAAuuF,EAAAA,EAAiB,GACzCn2D,aAAAA,EACAs2D,aAAAA,EACAH,cAAAA,EACAE,aAAAA,EACAE,kBAAAA,EACAT,OAAQ6F,EACRjF,YAAAA,EACAD,YAAAA,GACAmE,EAAAA,cAAC9J,GAAD,CACI5L,eAAgBsR,EAChB7uF,MAAOo4B,EACPn4B,OAAQo4B,EACR2jD,oBAAqB93F,EAAE83F,oBACvBoB,UAAWl5F,EAAEk5F,UACb3mB,YAAavyE,EAAEuyE,YACf2I,YAAal7E,EAAEk7E,YACf9xE,QAASpJ,EAAEoJ,QACXkjF,aAActsF,EAAEssF,aAChBxE,aAAc9nF,EAAE8nF,aAChBuH,WAAYrvF,EAAEqvF,WACd2J,mBAAoBh5F,EAAEg5F,mBACtBT,aAAcv4F,EAAEu4F,aAChBE,aAAcz4F,EAAEy4F,aAChBpd,cAAer7E,EAAEq7E,cACjBgR,eAAgBrsF,EAAEqsF,eAClBzhB,gBAAiB5qE,EAAE4qE,gBACnBud,gBAAiBnoF,EAAEmoF,gBACnBpG,oBAAqB/hF,EAAE+hF,oBACvB/G,kBAAmBh7E,EAAEg7E,kBACrBS,aAAcz7E,EAAEy7E,aAChBiR,iBAAkB1sF,EAAE0sF,iBACpBoN,kBAAmB95F,EAAE85F,kBACrB5B,UAAWl4F,EAAEk4F,UACb3L,UAAWvsF,EAAEusF,UACb4b,YAAanoG,EAAEmoG,YACfH,eAAgBhoG,EAAEgoG,eAClBC,eAAgBjoG,EAAEioG,eAClBhQ,kBAAmBj4F,EAAEi4F,kBACrBa,YAAa94F,EAAE84F,YACfrM,cAAezsF,EAAEysF,cACjBjR,UAAWx7E,EAAEw7E,UACb7kB,KAAM32D,EAAE22D,KACRyP,UAAWpmE,EAAEomE,UACbnF,MAAOjhE,EAAEihE,MACTghB,gBAAiBjiF,EAAEiiF,gBACnB9G,WAAYn7E,EAAEm7E,WACdC,WAAYp7E,EAAEo7E,WACd4G,eAAgBhiF,EAAEgiF,eAClBzB,eAAgBvgF,EAAEugF,eAClB4O,cAAenvF,EAAEmvF,cACjBlL,WAAYjkF,EAAEikF,WACdkW,aAAcn6F,EAAEm6F,aAChB4N,QAAS/nG,EAAE+nG,QACXhqB,YAAa/9E,EAAE+9E,YACfyb,YAAax5F,EAAEw5F,YACfpB,aAAcp4F,EAAEo4F,aAChBD,gBAAiBn4F,EAAEm4F,gBACnBuB,cAAe15F,EAAE05F,cACjBiO,cAAe3nG,EAAE2nG,cACjBC,eAAgB5nG,EAAE4nG,eAClBE,kBAAmB9nG,EAAE8nG,kBACrBD,oBAAqB7nG,EAAE6nG,oBACvBxP,cAAer4F,EAAEq4F,cACjBe,UAAWp5F,EAAEo5F,UACbS,YAAa75F,EAAE65F,YACfF,eAAgB35F,EAAE25F,eAClBR,YAAan5F,EAAEm5F,YACfS,OAAQ55F,EAAE45F,OACVb,cAAe/4F,EAAE+4F,cACjB59C,UAAWn7C,EAAEm7C,UACb89C,QAASj5F,EAAEi5F,QACXhsD,YAAajtC,EAAEitC,YACf2rD,UAAW54F,EAAE44F,UACbsP,WAAYloG,EAAEkoG,WACdlO,cAAeh6F,EAAEg6F,cACjBE,cAAel6F,EAAEk6F,gBAAA,ECnbpB0W,IAAgB/sD,EAAAA,EAAAA,GAAhB,MAAgBA,CAAhB,CAAArvD,KAAA,gBAAAyvD,MAAA,UAAAK,KAAA,cAce,SAAAtkD,GAAA,OAAMA,EAAE6wG,WAAa,EAAI,KAdxC,SCMPC,GACFC,EAAAA,cAAC,MAAD,CAAK/jE,UAAU,cAAcmjC,QAAQ,eACjC4gC,EAAAA,cAAC,OAAD,CACI3gC,KAAK,OACLE,OAAO,eACPC,cAAc,QACdC,eAAe,QACfnlE,YAAY,KACZnK,EAAE,0CAIR8vG,GACFD,EAAAA,cAAC,MAAD,CAAK/jE,UAAU,cAAcmjC,QAAQ,eACjC4gC,EAAAA,cAAC,OAAD,CACI3gC,KAAK,OACLE,OAAO,eACPC,cAAc,QACdC,eAAe,QACfnlE,YAAY,KACZnK,EAAE,0CAKR+vG,GACFF,EAAAA,cAAC,MAAD,CAAK/jE,UAAU,cAAcmjC,QAAQ,eACjC4gC,EAAAA,cAAC,OAAD,CACI3gC,KAAK,OACLE,OAAO,eACPC,cAAc,QACdC,eAAe,QACfnlE,YAAY,KACZnK,EAAE,sCAqbdgwG,GA9ZqE,SAAAlxG,GACjE,IACIk5F,EASAl5F,EATAk5F,UACAhe,EAQAl7E,EARAk7E,YACAvkB,EAOA32D,EAPA22D,KACAvtD,EAMApJ,EANAoJ,QACA+nG,EAKAnxG,EALAmxG,eACAC,EAIApxG,EAJAoxG,qBACAC,EAGArxG,EAHAqxG,uBAAAC,EAGAtxG,EAFA6wG,WAAAA,OAAA,IAAAS,GAAaA,EACbC,EACAvxG,EADAuxG,cAGJC,EAAyBT,EAAAA,UAAS,iBAAM,cAAgBpgH,KAAKmtG,MAAsB,IAAhBntG,KAAKo0B,SAAW,IAA5E0sF,GAA4E5vD,EAAAA,EAAAA,GAAA2vD,EAAA,GAA5E,GAEPE,EAA8CX,EAAAA,SAAS,IAAAY,GAAA9vD,EAAAA,EAAAA,GAAA6vD,EAAA,GAAhDE,EAAAD,EAAA,GAAcE,EAAAF,EAAA,GACrBG,EACUf,EAAAA,WAAAgB,GAAAlwD,EAAAA,EAAAA,GAAAiwD,EAAA,GADHE,EAAAD,EAAA,GAAcE,EAAAF,EAAA,GAOfG,EAAwBnB,EAAAA,OAAOiB,GACrCE,EAAgBtiG,QAAUoiG,EAE1B,IAAMG,EAA2BpB,EAAAA,OAAO,IAAIqB,iBACtCC,EAAqBtB,EAAAA,SAC3BuB,EAAgDvB,EAAAA,SAA0B,IAAAwB,GAAA1wD,EAAAA,EAAAA,GAAAywD,EAAA,GAAnEE,EAAAD,EAAA,GAAeE,EAAAF,EAAA,GAEhBG,EAAqB3B,EAAAA,aAAY,gBACN,IAAzBsB,EAAaziG,UACblP,OAAO0pE,qBAAqBioC,EAAaziG,SACzCyiG,EAAaziG,aAAU,EACvBuiG,EAAmBviG,QAAQ+iG,QAAA,GAEhC,IAEGC,EAAuB7B,EAAAA,OAAO71B,GACpC03B,EAAehjG,QAAUsrE,EACzB,IAAM23B,EAAoB9B,EAAAA,aACtB,SAACn+C,GACG,IAAMpB,EAAQ,IAAIhiE,OAAOojE,EAAInjE,QAAQ,yBAA0B,QAAS,KAEpE4hF,EAASuhC,EAAehjG,QAKxBkjG,EAAeniH,KAAKsJ,IAAI,GAAI08D,GAE5Bo8C,EAAe,EAEnBd,OAAgB,GAChBQ,EAAiB,IAEjB,IAAMO,EAAoC,GAEpCC,EAAA,eAAAC,EAAA3lD,EAAArF,IAAA6D,MAAO,SAAAonD,IAAA,IAAAjyC,EAAAC,EAAAiyC,EAAAC,EAAArqH,EAAAsqH,EAAAC,EAAAC,EAAAC,EAAA78C,EAAA11D,EAAAwyG,EAAAC,EAAAC,EAAA1nG,EAAA0wD,EAAAi3C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAhsD,IAAAO,MAAA,SAAA0rD,GAAA,cAAAA,EAAA5tD,KAAA4tD,EAAAjnF,MAAA,eACoB,IAAzBkkF,EAAyB,CAAA+C,EAAAjnF,KAAA,eAAAinF,EAAAvpD,OAAA,iBAUE,GATzBwoD,EAASjzD,YAAYpmD,MACrBs5G,EAAW18C,EAAOo8C,EAWJ,oBAVhB/pH,EAAOooH,EACP,CACI9rF,EAAG,EACHwJ,EAAGuiD,EACHv1D,MAAO1S,EAAQlkB,OACf62B,OAAQprB,KAAKsJ,IAAI64G,EAAcO,EAAU18C,EAAO0a,IAEpD8gC,EAAmBviG,QAAQwkG,SAGX,CAAAD,EAAAjnF,KAAA,eAAAinF,EAAAjnF,KAAA,EACHlkC,IAAA,OAAbA,EAAAmrH,EAAA1pD,KAAA,OAGA6oD,GAAQ,EAAAC,EAAA/lD,EACWxkE,EAAKnC,WAAAstH,EAAA5tD,KAAA,GAAAgtD,EAAAttD,IAAA,YAAAutD,EAAAD,EAAAriH,KAAAygC,KAAA,CAAAwiF,EAAAjnF,KAAA,SAAAumF,GAAA5xD,EAAAA,EAAAA,GAAA2xD,EAAA/pH,MAAA,GAAhBmtE,EAAA68C,EAAA,GAAKvyG,EAAAuyG,EAAA,GAAAC,EAAAlmD,EACatsD,EAAEra,WAAAstH,EAAA5tD,KAAA,GAAAmtD,EAAAztD,IAAA,YAAA0tD,EAAAD,EAAAxiH,KAAAygC,KAAA,CAAAwiF,EAAAjnF,KAAA,SAAA0mF,GAAA/xD,EAAAA,EAAAA,GAAA8xD,EAAAlqH,MAAA,GAAhByiB,EAAA0nG,EAAA,GAAKh3C,EAAAg3C,EAAA,GACTC,OAAA,EAAAM,EAAArsC,GACIlL,EAAKkI,KAAAqvC,EAAAjnF,KAAAinF,EAAArsC,KACJvE,GAAakC,MAAA0uC,EAAArsC,KACbvE,GAAatb,OADA,GACAksD,EAAArsC,KAGbvE,GAAaoC,KAAAwuC,EAAArsC,KACbvE,GAAamC,SADA,GACAyuC,EAAArsC,KAGbvE,GAAavgB,QAAA,GAAAmxD,EAAArsC,KAGbvE,GAAaiC,OAAA2uC,EAAArsC,KACbvE,GAAayB,OADA,GACAmvC,EAAArsC,KAMbvE,GAAaqC,OAAA,oBAhBI,OAAlBiuC,EAAaj3C,EAAKy3C,YAAAF,EAAAvpD,OAAA,oBAIA,OAAlBipD,EAAaj3C,EAAK5zE,KAAAmrH,EAAAvpD,OAAA,oBAGmD,OAArEipD,EAAkC,mBAAdj3C,EAAK5zE,KAAqB4zE,EAAK5zE,KAAKtD,gBAAa,EAAAyuH,EAAAvpD,OAAA,oBAOzC,OAA5BipD,EAAaj3C,EAAK5zE,KAAKhD,KAAK,gBAAAmuH,EAAAvpD,OAAA,oBAGV,OAAlBipD,EAAaj3C,EAAKqnC,SAAAkQ,EAAAvpD,OAAA,yBAIP,IAAfipD,GAA4BriD,EAAM9hE,KAAKmkH,KACvCb,EAAc3tH,KAAK,CAAC6mB,EAAK0qD,EAAMya,IAC/BiiC,GAAQ,WAAAa,EAAAjnF,KAAA,iBAAAinF,EAAAjnF,KAAA,iBAAAinF,EAAA5tD,KAAA,GAAA4tD,EAAAG,GAAAH,EAAA,UAAAT,EAAApgH,EAAA6gH,EAAAG,IAAA,eAAAH,EAAA5tD,KAAA,GAAAmtD,EAAAvyG,IAAAgzG,EAAAnnD,OAAA,YAAAmnD,EAAAjnF,KAAA,iBAAAinF,EAAAjnF,KAAA,iBAAAinF,EAAA5tD,KAAA,GAAA4tD,EAAAI,GAAAJ,EAAA,UAAAZ,EAAAjgH,EAAA6gH,EAAAI,IAAA,eAAAJ,EAAA5tD,KAAA,GAAAgtD,EAAApyG,IAAAgzG,EAAAnnD,OAAA,YAKd8mD,EAAO3zD,YAAYpmD,MAErBu5G,GACAb,EAAA,GAAApuF,OAAqB2uF,IAIzBhzC,IADA+yC,GAAgB/pH,EAAK9D,SACEyxE,GAEjBo9C,EAAgB,OAAA5yC,EAAA,OAAAD,EAAAgxC,EAAgBtiG,cAAhB,EAAAsxD,EAAyB6yC,eAAzB5yC,GAA2C,EACjE8wC,EAAgB,CACZuC,QAASxB,EAAc9tH,OACvB6tH,aAAAA,EACAgB,cAAAA,IAEJ,MAAA1C,GAAAA,EAAyB2B,EAAee,GAEpC1iC,EAASyhC,GAAgBn8C,EACzB0a,EAAS,EAETA,GAAUyhC,EAGRkB,EAAWF,EAAOV,EAClBa,EAAUtjH,KAAKG,IAAIkjH,EAAU,GAE7BE,EA3IK,GA2IyBD,EACpCnB,EAAeniH,KAAKC,KAAKkiH,EAAeoB,GAEpCnB,EAAep8C,GAAQq8C,EAAc9tH,OAAS,MAC9CmtH,EAAaziG,QAAUlP,OAAOqpE,sBAAsBkpC,IAAA,yBAAAkB,EAAA7nD,OAAA,GAAA6mD,EAAA,0DAnFtD,OAAAD,EAAAztH,MAAA,KAAAR,UAAA,KAuFNytH,IACAL,EAAaziG,QAAUlP,OAAOqpE,sBAAsBkpC,EAAA,GAExD,CAACP,EAActpG,EAAQlkB,OAAQksH,EAAsBC,EAAwB16C,IAG3E89C,EAAgB1D,EAAAA,aAAY,WAtNtC,IAAA7vC,EAuNQ,MAAAqwC,GAAAA,IACAU,OAAgB,GAChBQ,EAAiB,IACjB,MAAApB,GAAAA,EAAyB,IAAK,GAC9BqB,IACA,OAAAxxC,EAAA,MAAAg4B,OAAA,EAAAA,EAAWtpF,UAAXsxD,EAAoBz+C,OAAA,GACrB,CAACiwF,EAAcxZ,EAAWqY,EAAeF,IAEtCqD,EAAuB3D,EAAAA,aACzB,SAAChyF,GACG8yF,EAAgB9yF,EAAM7R,OAAOzjB,OACF,KAAvBs1B,EAAM7R,OAAOzjB,OACbwoH,OAAgB,GAChBQ,EAAiB,IACjBC,KAEAG,EAAY9zF,EAAM7R,OAAOzjB,MAAA,GAGjC,CAACopH,EAAaH,IAGZ3B,EAAAA,WAAU,WACRF,GAAyC,OAA3BM,EAAevhG,UAC7BiiG,EAAgB,IAChBV,EAAevhG,QAAQ6S,MAAM,CAAE+/E,eAAe,OAEnD,CAACqO,EAAYM,IAEhB,IAAMwD,EAAe5D,EAAAA,aACjB,SAAC7U,GArPT,IAAAh7B,EAuPY,GADA,OAAAA,EAAA,MAAAg7B,OAAA,EAAAA,EAAIrmF,kBAAJqrD,EAAAn7E,KAAAm2G,QACqB,IAAjB8V,EAAJ,CACA,IAAM/8D,GAAY+8D,EAAa+B,cAAgB,GAAK/B,EAAawC,QACjEvC,EAAA7jE,EAAAA,EAAA,GACO4jE,GAAA,IACH+B,cAAe9+D,KAEnB,MAAAo8D,GAAAA,EAAyBmB,EAAev9D,EANF,CAME,GAE5C,CAAC+8D,EAAcX,EAAwBmB,IAGrCoC,EAAe7D,EAAAA,aACjB,SAAC7U,GAnQT,IAAAh7B,EAqQY,GADA,OAAAA,EAAA,MAAAg7B,OAAA,EAAAA,EAAIrmF,kBAAJqrD,EAAAn7E,KAAAm2G,QACqB,IAAjB8V,EAAJ,CACA,IAAI/8D,GAAY+8D,EAAa+B,cAAgB,GAAK/B,EAAawC,QAC3Dv/D,EAAW,IAAGA,GAAY+8D,EAAawC,SAC3CvC,EAAA7jE,EAAAA,EAAA,GACO4jE,GAAA,IACH+B,cAAe9+D,KAEnB,MAAAo8D,GAAAA,EAAyBmB,EAAev9D,EAPF,CAOE,GAE5C,CAACo8D,EAAwBmB,EAAeR,IAGtC6C,EAAwB9D,EAAAA,aAC1B,SAAChyF,IACSA,EAAMtG,SAAWsG,EAAMnG,UAAuC,SAA3BmG,EAAM9K,YAAYuH,MAAkC,WAAduD,EAAMj5B,KACjF2uH,IACA11F,EAAMlJ,kBACNkJ,EAAM/H,kBACe,UAAd+H,EAAMj5B,MACTi5B,EAAMrG,SACNk8F,IAEAD,IAAA,GAIZ,CAACF,EAASE,EAAQC,IAIhB7D,EAAAA,WAAU,WACZ,OAAO,WACH2B,GAAA,IAEL,CAACA,IAEJ,IAAMoC,EAAkB/D,EAAAA,SAAQ,WAzSpC,IAAA7vC,EAAAC,EAAA+gB,EA0SY6yB,OACiB,IAAjB/C,IACA+C,EACI/C,EAAawC,SAAW,mBAAAnwF,OAEf2tF,EAAawC,QAAA,WAAAnwF,OAA0C,IAAzB2tF,EAAawC,QAAgB,IAAM,IAC1ExC,EAAa+B,eAAiB,IAC9BgB,EAAA,GAAA1wF,OAAkB2tF,EAAa+B,cAAgB,UAAA1vF,OAAQ0wF,KAI/D,IAAMC,EAAc,SAAC9Y,GACjBA,EAAGrmF,iBAAA,EAGDo/F,EAAuBtkH,KAAKurD,OAAQ,OAAAglB,EAAA,MAAA8wC,OAAA,EAAAA,EAAce,cAAd7xC,EAA8B,GAAKvK,EAAQ,KAC/Eu+C,EAAqC,CACvCp5F,MAAA,GAAAuI,OAAU4wF,EAAA,MAGd,OACIlE,EAAAA,cAACH,GAAD,CACIC,WAAAA,EACA5jE,YAAa+nE,EACblc,YAAakc,EACbpc,UAAWoc,EACX33E,QAAS23E,GACTjE,EAAAA,cAAC,MAAD,CAAK/jE,UAAU,oBACX+jE,EAAAA,cAAC,QAAD,CACIp7F,GAAI87F,EACJ,eAAcZ,EACd,cAAY,eACZ9/E,IAAKogF,EACL38D,SAAUkgE,EACVjrH,MAAOmoH,EACP13D,SAAU22D,OAAa,GAAa,EACpCsE,iBAAkBN,IAEtB9D,EAAAA,cAAC,SAAD,CACI,aAAW,kBACX,eAAcF,EACd32D,SAAU22D,OAAa,GAAa,EACpCxzE,QAASu3E,EACTxtG,SAA2C,KAAhC,OAAA+5D,EAAA,MAAA6wC,OAAA,EAAAA,EAAcwC,SAAdrzC,EAAyB,IACnC2vC,IAELC,EAAAA,cAAC,SAAD,CACI,aAAW,cACX,eAAcF,EACd32D,SAAU22D,OAAa,GAAa,EACpCxzE,QAASs3E,EACTvtG,SAA2C,KAAhC,OAAA86E,EAAA,MAAA8vB,OAAA,EAAAA,EAAcwC,SAAdtyB,EAAyB,IACnC8uB,SAEc,IAAlBO,GACGR,EAAAA,cAAC,SAAD,CACI,aAAW,eACX,eAAcF,EACd,cAAY,sBACZ32D,SAAU22D,OAAa,GAAa,EACpCxzE,QAASo3E,GACRxD,UAIK,IAAjBe,EACGjB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC,MAAD,CAAK/jE,UAAU,iBACX+jE,EAAAA,cAAC,MAAD,CAAK,cAAY,sBAAsBgE,IAE3ChE,EAAAA,cAAC,MAAD,CAAK/jE,UAAU,kBAAkBvhC,MAAOypG,KAG5CnE,EAAAA,cAAC,MAAD,CAAK/jE,UAAU,iBACX+jE,EAAAA,cAAC,QAAD,CAAOqE,QAAS3D,GAAU,sBAK3C,CACCgD,EACAE,EACAC,EACAF,EACAnD,EACAsD,EACAl+C,EACAq7C,EACAJ,EACAf,EACAY,EACAN,IAGJ,OACIJ,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC3C,GAAD,CACI3hB,cAAe+lB,EACf1a,oBAAqB93F,EAAE83F,oBACvBoB,UAAWl5F,EAAEk5F,UACb3mB,YAAavyE,EAAEuyE,YACf2I,YAAal7E,EAAEk7E,YACfluC,UAAWhtC,EAAEgtC,UACbqhE,WAAYruG,EAAEquG,WACdjlG,QAASpJ,EAAEoJ,QACXkjF,aAActsF,EAAEssF,aAChBxE,aAAc9nF,EAAE8nF,aAChBuH,WAAYrvF,EAAEqvF,WACd2J,mBAAoBh5F,EAAEg5F,mBACtBT,aAAcv4F,EAAEu4F,aAChBE,aAAcz4F,EAAEy4F,aAChBpd,cAAer7E,EAAEq7E,cACjBgR,eAAgBrsF,EAAEqsF,eAClBzhB,gBAAiB5qE,EAAE4qE,gBACnBud,gBAAiBnoF,EAAEmoF,gBACnBpG,oBAAqB/hF,EAAE+hF,oBACvB/G,kBAAmBh7E,EAAEg7E,kBACrBS,aAAcz7E,EAAEy7E,aAChBiR,iBAAkB1sF,EAAE0sF,iBACpBoN,kBAAmB95F,EAAE85F,kBACrB+Q,YAAa7qG,EAAE6qG,YACf3S,UAAWl4F,EAAEk4F,UACb3L,UAAWvsF,EAAEusF,UACb4b,YAAanoG,EAAEmoG,YACfH,eAAgBhoG,EAAEgoG,eAClBC,eAAgBjoG,EAAEioG,eAClBhQ,kBAAmBj4F,EAAEi4F,kBACrBa,YAAa94F,EAAE84F,YACfwV,uBAAwBtuG,EAAEsuG,uBAC1BC,YAAavuG,EAAEuuG,YACfC,YAAaxuG,EAAEwuG,YACfpE,yBAA0BpqG,EAAEoqG,yBAC5BK,aAAczqG,EAAEyqG,aAChBC,kBAAmB1qG,EAAE0qG,kBACrBlvB,UAAWx7E,EAAEw7E,UACb7kB,KAAM32D,EAAE22D,KACRg0C,UAAW3qG,EAAE2qG,UACbvkC,UAAWpmE,EAAEomE,UACbsoC,YAAa1uG,EAAE0uG,YACfztC,MAAOjhE,EAAEihE,MACTghB,gBAAiBjiF,EAAEiiF,gBACnB9G,WAAYn7E,EAAEm7E,WACdC,WAAYp7E,EAAEo7E,WACd4G,eAAgBhiF,EAAEgiF,eAClBzB,eAAgBvgF,EAAEugF,eAClB4O,cAAenvF,EAAEmvF,cACjBlL,WAAYjkF,EAAEikF,WACdkW,aAAcn6F,EAAEm6F,aAChB4N,QAAS/nG,EAAE+nG,QACXhqB,YAAa/9E,EAAE+9E,YACfyb,YAAax5F,EAAEw5F,YACfpB,aAAcp4F,EAAEo4F,aAChBD,gBAAiBn4F,EAAEm4F,gBACnBuB,cAAe15F,EAAE05F,cACjBiO,cAAe3nG,EAAE2nG,cACjBC,eAAgB5nG,EAAE4nG,eAClBE,kBAAmB9nG,EAAE8nG,kBACrBD,oBAAqB7nG,EAAE6nG,oBACvBxP,cAAer4F,EAAEq4F,cACjBe,UAAWp5F,EAAEo5F,UACbS,YAAa75F,EAAE65F,YACfF,eAAgB35F,EAAE25F,eAClBR,YAAan5F,EAAEm5F,YACfS,OAAQ55F,EAAE45F,OACVb,cAAe/4F,EAAE+4F,cACjB59C,UAAWn7C,EAAEm7C,UACb89C,QAASj5F,EAAEi5F,QACXhsD,YAAajtC,EAAEitC,YACf2rD,UAAW54F,EAAE44F,UACbsP,WAAYloG,EAAEkoG,WACdlO,cAAeh6F,EAAEg6F,cACjBE,cAAel6F,EAAEk6F,cACjB0Q,YAAa5qG,EAAE4qG,cAElBkK,EAAA,EC3cPO,IAAcxxD,EAAAA,EAAAA,GAAd,QAAcA,CAAd,CAAArvD,KAAA,cAAAyvD,MAAA,WAAAK,KAAA,eASY,SAAAtkD,GAAA,OAAKrP,KAAKG,IAAI,GAAIkP,EAAEsoE,aAAe,GAA9B,EATjB,SAaOgtC,GAAgC,SAAAt1G,GACzC,IAAQi9F,EAAmDj9F,EAAnDi9F,OAAQrhB,EAA2C57E,EAA3C47E,MAAO64B,EAAoCz0G,EAApCy0G,QAASc,EAA2Bv1G,EAA3Bu1G,aAAcC,EAAax1G,EAAbw1G,SAE9CC,EAA0BC,EAAAA,SAAe95B,GAAf+5B,GAAA9zD,EAAAA,EAAAA,GAAA4zD,EAAA,GAAnBhsH,EAAAksH,EAAA,GAAO/vG,EAAR+vG,EAAC,GAEP,OACID,EAAAA,cAACl1C,GAAD,CACI/0D,MAAO,CACH4hC,SAAU,WACVhrB,KAAM46E,EAAO33E,EAAIiwF,EAAalzF,KAAO,EACrCE,IAAK06E,EAAOnuE,EAAIymF,EAAahzF,IAC7BzG,MAAOmhF,EAAOnhF,MAAQ,EACtBC,OAAQkhF,EAAOlhF,QAEnBixB,UAAA,WAMA8zB,eAAgB2zC,GAChBiB,EAAAA,cAACL,GAAD,CACI/sC,aAAc20B,EAAOlhF,OACrB,cAAY,qBACZtyB,MAAAA,EACAo7G,OAAQ4P,EACR7Q,QAAS,SAAAtwG,GAAA,OAAKA,EAAE4Z,OAAO0oG,kBAAkB,EAAGnsH,EAAMvE,OAApC,EACdsvD,SAAU,SAAAlhD,GAAA,OAAKsS,EAAStS,EAAE4Z,OAAOzjB,MAAlB,EACf0xD,UAAW,SAAA7nD,GACO,UAAVA,EAAExN,IACF0vH,EAAS/rH,GACQ,WAAV6J,EAAExN,KACT2uH,GAAA,EAGRj3E,WAAW,MC/CrBq4E,GAAc,IAcb,SAAAC,GACHtiC,EACAvS,EACA9gE,EACA41G,EACAC,EACA/N,EACAD,EACAiO,EACArrC,GAEA,IACgCsrC,EAD5BC,EAAkB,QACD,IAAjBH,IACAE,EAAAC,GAAM9wH,KAAAI,MAAAywH,EAAA3vC,EACCyvC,EAAavgH,KAAI,SAAAmhE,GAAA,OAAOA,EAAIm/C,EAAA,IAAWtgH,KAAI,SAAAmnE,GAAA,OA1B1D,SACI4W,EACA5W,EACAqE,EACA2J,GArBJ,IAAA1J,EAAAC,EAuBI,GAAIvE,EAAKkI,OAASvB,GAAaqC,OAAQ,OAAOiwC,GAE9C,IAAMhnF,EAAI+7C,EAAgBhO,GAC1B,OAAO,OAAAuE,EAAA,OAAAD,EAAA,MAAAryC,OAAA,EAAAA,EAAGunF,cAAH,EAAAl1C,EAAAn7E,KAAA8oC,EAAa2kD,EAAK5W,EAAMqE,IAAxBE,EAAkC00C,EAAA,CAiBqBQ,CAAY7iC,EAAK5W,EAAMqE,EAAO2J,EAAA,MAG5F,GAAIurC,EAAMjxH,OAAS,GAAK+wH,EAAgB,CAEpC,IAAMK,EAAUH,EAAM3wD,QAAO,SAACvlD,EAAGC,GAAA,OAAMD,EAAIC,CAAA,IAAKi2G,EAAMjxH,OACtDixH,EAAQA,EAAMjoE,QAAO,SAAAjuC,GAAA,OAAKA,EAAc,EAAVq2G,CAAU,IAE5CH,EAAM9wH,KAAKmuF,EAAInlB,YAAYluD,EAAEmzD,OAAOx3C,MAAQ,SAAiB,IAAX3b,EAAE4kF,KAAqB,EAAI,KAC7E,IAAMwxB,EAAU5lH,KAAKG,IAAArL,MAALkL,KAAA41E,EAAY4vC,IACtBK,EAAQ7lH,KAAKG,IAAIH,KAAKC,KAAKq3G,GAAiBt3G,KAAKsJ,IAAItJ,KAAKurD,MAAM8rD,GAAiBr3G,KAAKC,KAAK2lH,KAEjG,OAAAnoE,EAAAA,EAAA,GACOjuC,GAAA,IACH2b,MAAO06F,GAAA,CClCR,SAAAC,GAAkBC,EAAgB17G,GACrC,GAAsB,IAAlB07G,EAAOxxH,OAAc,OAAO,EAChC,IAAIyxH,GAAW,EACXC,GAAY,EACZC,GAAU,EACVC,GAAW,EACTj1G,EAAQ60G,EAAO70G,MAAM,KAE3B,IAlBJ,SAAkB/b,EAAyBkV,GACvC,QAAY,IAARlV,EAAmB,OAAO,EAC9B,GAAIA,EAAIZ,OAAS,GAAKY,EAAIq9D,WAAW,MAEjC,GADgB8E,OAAOpqD,SAAS/X,EAAI6L,MAAM,MAC1BqJ,EAAKob,QAAS,OAAO,OAErC,GAAItwB,IAAQkV,EAAKlV,IAAK,OAAO,EAEjC,OAAO,EAUFixH,CADOl1G,EAAM5J,MACC+C,GAAO,OAAO,MACbg8G,EADaC,EAAAzpD,EACb3rD,GAAA,IAApB,IAAAo1G,EAAAhxD,MAAA+wD,EAAAC,EAAA/lH,KAAAygC,MAA2B,CACvB,OADOqlF,EAAAvtH,WAEE,OACDktH,GAAW,EACX,UACC,QACDC,GAAY,EACZ,UACC,MACDC,GAAU,EACV,UACC,OACDC,GAAW,EACX,UACC,UACGhgB,GAAartG,MACbqtH,GAAW,EAEXH,GAAW,EAEf,QAAAj4G,GAAAu4G,EAAA3jH,EAAAoL,EAAA,SAAAu4G,EAAA91G,GAAA,CAIZ,OACInG,EAAK2d,SAAWk+F,GAAW77G,EAAKyd,UAAYk+F,GAAY37G,EAAK0d,WAAak+F,GAAa57G,EAAK4d,UAAYk+F,CAAA,CCkDhH,SAAAI,GAAiBjxD,GAIb,OAHIA,EAAE9C,WAAW,MAAQ8C,EAAEkxD,SAAS,OAChClxD,EAAIA,EAAEt0D,MAAM,GAAI,GAAGlC,QAAQ,MAAO,MAE/Bw2D,CAAA,CAGJ,SAAAmxD,GAAiBxkD,GACpB,IAAWykD,EAAAC,KAAAD,IAAAA,EAAA,KACPC,EAAA,eACAA,EAAAA,EAAA,uBACAA,EAAAA,EAAA,yCAGJ,IAOmBC,EAPb3tH,EAAqB,GACvBgmB,EAAoB,GAEpB7e,EAAQ,EACRo/B,EAAQ,EAERrpC,EAAQ,EAAA0wH,EAAAhqD,EADZoF,EAAMA,EAAInjE,QAAQ,QAAS,OAER,IAAnB,IAAA+nH,EAAAvxD,MAAAsxD,EAAAC,EAAAtmH,KAAAygC,MAAwB,KAAbvL,EAAAmxF,EAAA9tH,MACP,OAAQ0mC,QACC,EACY,OAAT/J,GAA0B,OAATA,GACjBxW,EAAQvqB,KAAKutE,EAAIjhE,MAAMZ,EAAOjK,IAC9BiK,EAAQjK,EAAQ,EAEH,OAATs/B,IACAx8B,EAAOvE,KAAKuqB,GACZA,EAAU,KAEP,MAAAwW,IACP+J,EAAQ,GAEZ,WACC,EACG,MAAA/J,IACA+J,EAAQ,GAEZ,WACC,EACY,MAAT/J,EACA+J,EAAQ,EACQ,OAAT/J,GAA0B,OAATA,GACxBxW,EAAQvqB,KAAK6xH,GAAQtkD,EAAIjhE,MAAMZ,EAAOjK,KACtCiK,EAAQjK,EAAQ,EAEH,OAATs/B,IACAx8B,EAAOvE,KAAKuqB,GACZA,EAAU,IAEdugB,EAAQ,GAERA,EAAQ,EAKpBrpC,GAAA,QAAA4X,GAAA84G,EAAAlkH,EAAAoL,EAAA,SAAA84G,EAAAr2G,GAAA,CAMJ,OAJIpQ,EAAQ6hE,EAAI1tE,QACZ0qB,EAAQvqB,KAAK6xH,GAAQtkD,EAAIjhE,MAAMZ,EAAO6hE,EAAI1tE,UAE9C0E,EAAOvE,KAAKuqB,GACLhmB,CAAA,CAGJ,SAAA6tH,GAAoBC,GAKvB,IApLJ,IAAAx2C,EAAAC,EAkLQvxD,EAFE+nG,EAAoB,CAACD,GACrB9tH,EAAqB,GAGpB+tH,EAAOzyH,OAAS,GAAG,CACtB,IAAMs/C,EAAKmzE,EAAO1/G,MAElB,QAAW,IAAPusC,EAAkB,MAElBA,aAAcozE,kBAAoC,UAAhBpzE,EAAGl/B,SACrCqyG,EAAOtyH,KAAAI,MAAPkyH,EAAApxC,EAAeA,EAAI/hC,EAAGj9B,UAAU6kD,YACzB5nB,aAAcqzE,0BACL,IAAZjoG,GACAhmB,EAAOvE,KAAKuqB,GAEhBA,EAAU,GACV+nG,EAAOtyH,KAAAI,MAAPkyH,EAAApxC,EAAeA,EAAI/hC,EAAGj9B,UAAU6kD,aACzB5nB,aAAcszE,uBACrB,MAAAloG,GAAAA,EAASvqB,KAAK,OAAA87E,EAAA,OAAAD,EAAA18B,EAAGuzE,WAAH72C,EAAgB18B,EAAG78B,aAAnBw5D,EAAkC,KAQxD,YAJgB,IAAZvxD,GACAhmB,EAAOvE,KAAKuqB,GAGThmB,CAAA,CAGX,SAAA60D,GAAgBmU,GAIZ,MAHI,UAAUljE,KAAKkjE,KACfA,EAAA,IAAAvuC,OAAUuuC,EAAInjE,QAAQ,KAAM,YAEzBmjE,CAAA,CAsBJ,SAAAolD,GACHrlD,EACAslD,EACA3kH,GA1OJ,IAAA4tE,EAAAC,EAAA+gB,EAAA7/B,EA4OU61D,EAAa,SAACt7C,EAAgB91E,EAAessE,GA5OvD,IAAAw1B,EAAA2I,EA6OcwkB,EAAWkC,EAAcnxH,GAC/B,QAAkB,IAAd81E,EAAK8U,MAAsB9U,EAAK8U,KAAK,KAAOqkC,EAAU,MAAO,GACjE,OAAQn5C,EAAKkI,WACJvB,GAAakC,UACblC,GAAatb,OACd,OAAOxJ,GAAO2U,EAAM,OAAAm+B,EAAA,OAAA3I,EAAAhsB,EAAK5zE,WAAL,EAAA4/F,EAAWljG,YAAX6rG,EAAyB,GAAK30B,EAAKy3C,kBACtD9wC,GAAamC,cACbnC,GAAa0B,WACb1B,GAAaoC,IACd,OAAOlnB,GAAOme,EAAK5zE,WAClBu6E,GAAaiC,WACbjC,GAAayB,OACd,OAAOpI,EAAK5zE,KAAKw8D,QAAO,SAAC2yD,EAAIjuC,GAAA,SAAA7lD,OAAUo6B,GAAO05D,GAAA,KAAA9zF,OAAOo6B,GAAOyrB,GAAA,SAC3D3G,GAAavgB,QACd,OAvCM,SAACmJ,GACnB,OAAQA,QACC,EACD,MAAO,YAEN,EACD,MAAO,aAENyX,GACD,MAAO,qBAEND,GACD,MAAO,WAGPzD,KAAY,CAwBDk4C,CAAcx7C,EAAK5zE,WACzBu6E,GAAawB,QACd,OAAO3R,EAAM,GAAK,gBACjBmQ,GAAa2B,UACd,OAAO9R,EAAM,GAAK,oBACjBmQ,GAAa4B,UACd,OAAOvI,EAAK5zE,KAAKyM,KAAI,SAAAzQ,GAAA,OAAKA,EAAEy5B,IAAA,IAAM+mC,QAAO,SAAC2yD,EAAIjuC,GAAA,SAAA7lD,OAAUo6B,GAAO05D,GAAA,KAAA9zF,OAAOo6B,GAAOyrB,GAAA,SAC5E3G,GAAaqC,OACd,OAAOnnB,GAAOme,EAAKqnC,kBAEnB/jC,KAAY,EAIlBtN,EAAMD,EAAMl9D,KAAI,SAAAmhE,GAAA,OAAOA,EAAInhE,KAAI,SAACwK,EAAGC,GAAA,OAAMg4G,EAAWj4G,EAAGC,GAAG,MAAQla,KAAK,SAAOA,KAAK,MAEzF,QAA0C,KAAtC,OAAAk7E,EAAAxgE,OAAO8/C,UAAU63D,gBAAjB,EAAAn3C,EAA4Bo3C,aAA6B,IAANhlH,EAAiB,CACpE,IAEkBilH,EAFZC,EAAS73G,SAASC,cAAc,SAAA63G,EAAAjrD,EAEpBmF,GAAA,IAAlB,IAAA8lD,EAAAxyD,MAAAsyD,EAAAE,EAAAvnH,KAAAygC,MAAyB,KAGO+mF,EAHrB9hD,EAAA2hD,EAAA9uH,MACDkvH,EAAQh4G,SAASC,cAAc,MAAAg4G,EAAAprD,EAEboJ,EAAI/vE,WAAA,IAA5B,IAAA+xH,EAAA3yD,MAAAyyD,EAAAE,EAAA1nH,KAAAygC,MAAuC,KAAAknF,GAAAh3D,EAAAA,EAAAA,GAAA62D,EAAAjvH,MAAA,GAA3BzE,EAAA6zH,EAAA,GAAGj8C,EAAAi8C,EAAA,GACLC,EAASn4G,SAASC,cAAc,MACtC,GAAIg8D,EAAKkI,OAASvB,GAAaoC,IAAK,CAChC,IAAMn5D,EAAO7L,SAASC,cAAc,KACpC4L,EAAKwU,KAAO47C,EAAK5zE,KACjBwjB,EAAKurG,UAAYn7C,EAAK5zE,KACtB8vH,EAAO35B,OAAO3yE,EAAA,MAEdssG,EAAOf,UAAYG,EAAWt7C,EAAM53E,GAAG,GAE3C2zH,EAAMx5B,OAAO25B,EAAA,QAAAp6G,GAAAk6G,EAAAtlH,EAAAoL,EAAA,SAAAk6G,EAAAz3G,GAAA,CAGjBq3G,EAAOr5B,OAAOw5B,EAAA,QAAAj6G,GAAA+5G,EAAAnlH,EAAAoL,EAAA,SAAA+5G,EAAAt3G,GAAA,CAElB,QAA0C,KAAtC,OAAAggE,EAAAzgE,OAAO8/C,UAAU63D,gBAAjB,EAAAl3C,EAA4Bm3C,OACvB53G,OAAO8/C,UAAU63D,UAAUC,MAAM,CAClC,IAAIS,cAAc,CACd,aAAc,IAAIC,KAAK,CAACpmD,GAAM,CAAEp7D,KAAM,eACtC,YAAa,IAAIwhH,KAAK,CAAC,UAAD30F,OAAWm0F,EAAOS,UAAA,aAAsB,CAAEzhH,KAAM,+BAGjE,IAANlE,GAAwC,QAArB,MAAAA,OAAA,EAAAA,EAAGymB,eAC7B,IAEIzmB,EAAEymB,cAAcunF,QAAQ,aAAc1uC,GACtCt/D,EAAEymB,cAAcunF,QAAQ,YAAa,UAAbj9E,OAAuBm0F,EAAOS,UAAA,mBACxDC,GACO,OAAAh3B,EAAAxhF,OAAO8/C,UAAU63D,YAAjBn2B,EAA4Bi3B,UAAUvmD,EAAA,OAI9C,OAAAvQ,EAAA3hD,OAAO8/C,UAAU63D,YAAjBh2D,EAA4B82D,UAAUvmD,GAG/C,MAAAt/D,GAAAA,EAAG0jB,gBAAA,CC5SP,SAAAoiG,GAAe9zF,GACX,MAAiB,kBAANA,EAAuBA,EAC3B,GAAPjB,OAAUiB,EAAA,UAGR+zF,IAAUx1D,EAAAA,EAAAA,GAAV,MAAUA,CAAV,CAAArvD,KAAA,UAAAyvD,MAAA,UAAAK,KAAA,cAQO,SAAAtkD,GAAA,OAAKA,EAAEmqE,UAAA,GARd,aASQ,SAAAnqE,GAAA,OAAKA,EAAE04E,WAAA,MAkBR4gC,GAA+E,SAAAt5G,GACxF,IAAQu5G,EAAyCv5G,EAAzCu5G,QAASC,EAAgCx5G,EAAhCw5G,SAAUjyG,EAAsBvH,EAAtBuH,SAAas9C,EAAAlb,EAAS3pC,EAAAy5G,IACjD,OACIC,EAAAA,cAACL,GAAAjrE,EAAA,CAAQsqC,YAAa0gC,GAAMI,GAAWrvC,WAAYivC,GAAMG,IAAc10D,GAClEt9C,EAAA,EC1BN,SAAAoyG,GAAuB3wH,GAC1B,OAAgB,IAATA,CAAS,CAGb,IAAM4wH,GAAyD,CAClE1V,uBAAwB,SAAA/jG,GAvB5B,IAAA+gE,EAAAC,EAuBiC,cAAAA,EAAA,OAAAD,EAAA/gE,EAAEnX,WAAF,EAAAk4E,EAAQx7E,YAARy7E,EAAsB,SACnD2D,KAAMvB,GAAavgB,QACnBs9C,YAAY,EACZ1zB,UAAU,EACV8zB,oBAAoB,EACpB0V,QAAS,kBAAM,IACfp1B,KAAM,SAAA/gF,GAAA,OpByuBH,SAAqBjF,EAAoBhS,EAAqD6wH,GACjG,GAAKA,GAAW7wH,IAAS26E,GAAzB,CAIA,IAAQ6P,EAA+Dx4E,EAA/Dw4E,IAAKiN,EAA0DzlF,EAA1DylF,YAAaxf,EAA6CjmE,EAA7CimE,MAAOiQ,EAAsCl2E,EAAtCk2E,KAAMsF,EAAgCx7E,EAAhCw7E,YAAaC,EAAmBz7E,EAAnBy7E,OAAQC,EAAW17E,EAAX07E,OACpDpxD,EAA8B4rD,EAA9B5rD,EAAGwJ,EAA2BoiD,EAA3BpiD,EAAUtJ,EAAiB0rD,EAAxBp1D,MAAkBrX,EAAMysE,EAAdn1D,OAIpBsiE,EAAQw7B,EAAU,IAFF,IAEkCp5B,EAAc,GAChEz3F,IAAS26E,KACT0a,GAASoC,GAEC,IAAVpC,IAGJ7K,EAAIuL,YAAcV,EAElB9H,GAAa/C,EAAKvS,EAAOj4E,EAAMs8B,EAAGwJ,EAAGtJ,EAAG/gB,EAAG+xE,EAAaC,EAAQC,GAEhElD,EAAIuL,YAAc,EAnBd,CAmBc,CoB9vBP+6B,CAAY75G,EAAGA,EAAE28D,KAAK5zE,KAAMg9E,GAAsB/lE,EAAE28D,MAAA,EAC/Dm9C,SAAU,SAAA55G,GAAA,OAAAiuC,EAAAA,EAAA,GACHjuC,GAAA,IACHnX,MAAM,KAEVq0C,QAAS,SAAA/pC,GACL,IAAQspE,EAAmCtpE,EAAnCspE,KAAYt3C,EAAuBhyB,EAA7B0oG,KAAeltE,EAAcx7B,EAApB2oG,KAASgB,EAAW3pG,EAAX2pG,OAChC,GACIj3B,GAAsBpJ,IACtBjsE,KAAK4/C,IAAIjrB,EAAI23E,EAAOnhF,MAAQ,IAAMmhF,EAAOlhF,OAAS,KAClDprB,KAAK4/C,IAAIzhB,EAAImuE,EAAOlhF,OAAS,IAAMkhF,EAAOlhF,OAAS,IAEnD,OAAAqyB,EAAAA,EAAA,GACOwuB,GAAA,IACH5zE,KAAM2wH,GAAc/8C,EAAK5zE,OAG1B,EAEXgxH,QAAS,SAACC,EAASr9C,GACf,IAAIiP,EAAwDlI,GAQ5D,MAP8B,SAA1Bs2C,EAAQn4G,cACR+pE,GAAS,EACwB,UAA1BouC,EAAQn4G,cACf+pE,GAAS,EACwB,kBAA1BouC,EAAQn4G,gBACf+pE,EAASjI,IAENiI,IAAWjP,EAAK5zE,UACjB,EAAAolD,EAAAA,EAAA,GAEOwuB,GAAA,IACH5zE,KAAM6iF,GAAA,GC3DjB,IAAMquC,IAA4Br2D,EAAAA,EAAAA,GAA5B,MAA4BA,CAA5B,CAAArvD,KAAA,4BAAAyvD,MAAA,aCkBbk2D,GAb6D,SAAAn6G,GACzD,IAAQyX,EAAYzX,EAAZyX,QACR,OACI2iG,EAAAA,cAACF,GAAD,KACKziG,EAAQhiB,KAAI,SAACyK,EAAGlb,GAAA,OACbo1H,EAAAA,cAAC,MAAD,CAAKt0H,IAAKd,EAAGgoD,UAAU,cAClB9sC,EAAA,IAGTk6G,EAAAA,cAAC,WAAD,CAAUptE,UAAU,YAAYxP,WAAW,MCT1C68E,GAAuD,CAChEnW,uBAAwB,SAAA/jG,GAP5B,IAAA+gE,EAAAC,EAOiC,cAAAA,EAAA,OAAAD,EAAA/gE,EAAEnX,WAAF,EAAAk4E,EAAQx7E,YAARy7E,EAAsB,IACnD2D,KAAMvB,GAAayB,OACnBs7B,YAAY,EACZ1zB,UAAU,EACV8zB,oBAAoB,EACpB0V,QAAS,SAAC5iC,EAAK5W,EAAMx3C,GAAA,OACjBw3C,EAAK5zE,KAAKw8D,QAAO,SAAC80D,EAAKtxH,GAAA,OAASwqF,EAAInlB,YAAYrlE,GAAM8yB,MAAQw+F,EAAM,KAAI,GAAK,EAAIl1F,EAAEw9C,sBAAwB,GAC/Goe,KAAM,SAAA/gF,GAAA,OvBixBH,SAAqBjF,EAAoBhS,GAC5C,IAQgBuxH,EARRrpC,EAAkCl2E,EAAlCk2E,KAAMjQ,EAA4BjmE,EAA5BimE,MAAOuS,EAAqBx4E,EAArBw4E,IAAKgD,EAAgBx7E,EAAhBw7E,YAClBlxD,EAA8B4rD,EAA9B5rD,EAAGwJ,EAA2BoiD,EAA3BpiD,EAAUtJ,EAAiB0rD,EAAxBp1D,MAAkBrX,EAAMysE,EAAdn1D,OAIpBq8D,EAAU9yD,EAAI27C,EAAM2B,sBAElB0W,EAA8C,GAAAkhC,EAAAhtD,EACpCxkE,GAAA,IAAhB,IAAAwxH,EAAAv0D,MAAAs0D,EAAAC,EAAAtpH,KAAAygC,MAAsB,KAAXs0B,EAAAs0D,EAAA9wH,MACP,GAAI2uF,EAAU9yD,EAAIE,EAAG,MACrB,IAAMg0D,EAAYjG,GAAkBttB,EAAGutB,EAAA,GAAAnvD,OAAQ48C,EAAM8B,cAAA,KAAA1+C,OAAiB48C,EAAM+B,aAAclnD,MAC1Fw9D,EAAYj0F,KAAK,CACbigC,EAAG8yD,EACHt8D,MAAO09D,IAGXpB,GAAWoB,EAAYI,GAnBZ,CAmB4B,QAAAl7E,GAAA87G,EAAAlnH,EAAAoL,EAAA,SAAA87G,EAAAr5G,GAAA,CAG3CqyE,EAAI4D,YACJ,IAAK,IAALqjC,EAAA,EAAAC,EAAuBphC,EAAAmhC,EAAAC,EAAAx1H,OAAAu1H,IAAa,CAApC,IAAWxgC,EAAAygC,EAAAD,GACPpjC,GACI7D,EACAyG,EAAS30D,EACTwJ,GAAKrqB,EAtBQ,IAsBY,EACzBw1E,EAASn+D,MAAQ89D,GAvBJ,GAyBbzB,GAAe,CAGvB3E,EAAIuB,UAAYyB,EAAcvV,EAAMqB,iBAAmBrB,EAAMoB,SAC7DmR,EAAIpD,OAAA,IAEoCuqC,EAFpCC,EAAAptD,EAEwB8rB,EAAYzyF,WAAA,IAAxC,IAAA+zH,EAAA30D,MAAA00D,EAAAC,EAAA1pH,KAAAygC,MAAmD,KAAAkpF,GAAAh5D,EAAAA,EAAAA,GAAA84D,EAAAlxH,MAAA,GAAvCzE,EAAA61H,EAAA,GAAG5gC,EAAA4gC,EAAA,GACXrnC,EAAI4D,YACJ5D,EAAIuB,UAAY9T,EAAMS,WACtB8R,EAAI0B,SAASlsF,EAAKhE,GAAIi1F,EAAS30D,EAjCjB,EAiCgCwJ,EAAIrqB,EAAI,EAAIovE,GAAoBL,EAAKvS,GAAA,QAAAviE,GAAAk8G,EAAAtnH,EAAAoL,EAAA,SAAAk8G,EAAAz5G,GAAA,EuBtzB5E25G,CAAY76G,EAAGA,EAAE28D,KAAK5zE,KAAA,EACjC6hF,cAAe,kBAAM,SAAA7qE,GACjB,IAAQvW,EAAUuW,EAAVvW,MACR,OAAOsxH,EAAAA,cAACZ,GAAD,CAAsB1iG,QAAShuB,EAAMT,MAAA,GAEhDgxH,QAAS,WAAM,GChBbgB,IAA8Bn3D,EAAAA,EAAAA,GAA9B,MAA8BA,CAA9B,CAAArvD,KAAA,8BAAAyvD,MAAA,YA0DNg3D,GAb+D,SAAAj7G,GAC3D,IAAQk7G,EAAel7G,EAAfk7G,WACR,OACIC,EAAAA,cAACH,GAAD,KACKE,EAAWzlH,KAAI,SAACyL,EAAGlc,GAAA,OAChBm2H,EAAAA,cAAC,MAAD,CAAKr1H,IAAKd,EAAGgoD,UAAU,mBACR,IAAV9rC,EAAEmL,KAAqB8uG,EAAAA,cAAC,MAAD,CAAK96E,IAAKn/B,EAAEmL,MACpC8uG,EAAAA,cAAC,MAAD,KAAMj6G,EAAEud,MAHf,IAGe,ECjDf28F,GAA6D,CACtElX,uBAAwB,SAAA/jG,GAAA,OAAKA,EAAEnX,KAAKyM,KAAI,SAAAyL,GAAA,OAAKA,EAAEud,IAAA,IAAMz4B,KAAK,OAC1D8+E,KAAMvB,GAAa4B,UACnBm7B,YAAY,EACZ1zB,UAAU,EACV8zB,oBAAoB,EACpB0V,QAAS,SAAC5iC,EAAK5W,EAAMx3C,GAAA,OACjBw3C,EAAK5zE,KAAKw8D,QACN,SAAC80D,EAAKtxH,GAAA,OAASwqF,EAAInlB,YAAYrlE,EAAKy1B,MAAM3C,MAAQw+F,EAAM,SAAmB,IAAbtxH,EAAKqjB,IAAoB,GAAK,KAC5F,GAEJ,EAAI+Y,EAAEw9C,sBACN,GACJoe,KAAM,SAAA/gF,GAAA,OAAK+3E,GAAkB/3E,EAAGA,EAAE28D,KAAK5zE,KAAA,EACvC6hF,cAAe,kBAAM,SAAA7qE,GACjB,IAAQvW,EAAUuW,EAAVvW,MACR,OAAO4xH,EAAAA,cAACJ,GAAD,CAAwBC,WAAYzxH,EAAMT,MAAA,GAErDgxH,QAAS,WAAM,GCvBNsB,IAA0Bz3D,EAAAA,EAAAA,GAA1B,MAA0BA,CAA1B,CAAArvD,KAAA,0BAAAyvD,MAAA,aCcAs3D,GAAuE,SAAAv7G,GAChF,IAAQw7G,EAA6Cx7G,EAA7Cw7G,KAAMC,EAAuCz7G,EAAvCy7G,SAAUC,EAA6B17G,EAA7B07G,YAAaC,EAAgB37G,EAAhB27G,YAE/BC,EAAWJ,EAAKttE,QAAO,SAAA3oB,GAAA,MAAW,KAANA,CAAM,IAExC,GAAwB,IAApBq2F,EAAS12H,OACT,OAAO,KAGX,IAAM22H,EAAYD,EAAS12H,OAAS,EACpC,OACI42H,EAAAA,cAACR,GAAD,CAAyB,cAAY,oCACjCQ,EAAAA,cAAC9oE,EAAAA,GAAD,CACI+F,WAAY8iE,EACZxjE,YAAY,EACZQ,UAAWgjE,EACX7mE,aAAc6mE,EACdhtE,aAAcgtE,GACbD,EAASnmH,KAAI,SAAAipB,GAlC9B,IAAAwiD,EAmC0B66C,EAAe,OAAA76C,EAAA,MAAAy6C,OAAA,EAAAA,EAAcj9F,IAAdwiD,EAAsB46C,EAAAA,cAAC,MAAD,CAAK5R,WAAW,EAAO7pE,IAAK3hB,IACvE,OACIo9F,EAAAA,cAAC,MAAD,CAAK9uE,UAAU,sBAAsBlnD,IAAK44B,GACrCq9F,EAAA,KAKhBN,GAAYC,GACTI,EAAAA,cAAC,SAAD,CAAQ9uE,UAAU,YAAY3P,QAASq+E,GACnCI,EAAAA,cAAC7rC,GAAD,SCtCP+rC,GAAqD,CAC9D9X,uBAAwB,SAAA/jG,GAAA,OAAKA,EAAEnX,KAAKhD,KAAK,OACzC8+E,KAAMvB,GAAaiC,MACnB86B,YAAY,EACZ1zB,UAAU,EACV8zB,oBAAoB,EACpB1f,KAAM,SAAA/gF,GAZV,IAAAihE,EAYe,O5BygCR,SAAmBlmE,EAAoBhS,GAA+C,IAIzEizH,EAJmDpjC,EAAA5zF,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAmB,EAC9EisF,EAA4Cl2E,EAA5Ck2E,KAAMhlE,EAAsClR,EAAtCkR,IAAK0qD,EAAiC57D,EAAjC47D,IAAKqK,EAA4BjmE,EAA5BimE,MAAOuS,EAAqBx4E,EAArBw4E,IAAK0E,EAAgBl9E,EAAhBk9E,YAC5B5yD,EAAoB4rD,EAApB5rD,EAAGwJ,EAAiBoiD,EAAjBpiD,EAAWrqB,EAAMysE,EAAdn1D,OACV0+D,EAAQn1D,EAAI27C,EAAM2B,sBAAAs5C,EAAA1uD,EACNxkE,GAAA,IAAhB,IAAAkzH,EAAAj2D,MAAAg2D,EAAAC,EAAAhrH,KAAAygC,MAAsB,KAAX3sC,EAAAi3H,EAAAxyH,MACP,GAAiB,IAAbzE,EAAEE,OAAN,CACA,IAAMmnB,EAAM6rE,EAAYwB,eAAe10F,EAAGknB,EAAK0qD,GAE/C,QAAY,IAARvqD,EAAmB,CACnB,IAAM8vG,EAAY13G,EAAgC,EAA5Bw8D,EAAM4B,oBACtB4W,EAAWptE,EAAIyP,OAASqgG,EAAY9vG,EAAI0P,QAC1C88D,EAAW,IACXxB,GAAY7D,EAAKiH,EAAO3rD,EAAImyC,EAAM4B,oBAAqB4W,EAAU0iC,EAAWtjC,GAC5ErF,EAAIpH,OACJoH,EAAI0C,QAER1C,EAAI6G,UAAUhuE,EAAKouE,EAAO3rD,EAAImyC,EAAM4B,oBAAqB4W,EAAU0iC,GAC/DtjC,EAAW,GACXrF,EAAIiB,UAGRgG,GAAShB,EA7QF,CA6Qa,CAhBI,CAgBJ,QAAA/6E,GAAAw9G,EAAA5oH,EAAAoL,EAAA,SAAAw9G,EAAA/6G,GAAA,E4B9hCjBk5E,CAAUp6E,EAAG,OAAAihE,EAAAjhE,EAAE28D,KAAKy3C,aAAPnzC,EAAsBjhE,EAAE28D,KAAK5zE,KAAMiX,EAAE28D,KAAKic,WAClEu9B,QAAS,SAACgG,EAAMx/C,GAAA,OAA4B,GAAnBA,EAAK5zE,KAAK9D,MAAS,EAC5C60H,SAAU,SAAA55G,GAAA,OAAAiuC,EAAAA,EAAA,GACHjuC,GAAA,IACHnX,KAAM,MAEV6hF,cAAe,kBAAM,SAAA7qE,GACjB,IAAQvW,EAAkDuW,EAAlDvW,MAAO4jF,EAA2CrtE,EAA3CqtE,kBAAmB5C,EAAwBzqE,EAAxByqE,oBAE5B4xC,EAAc,MAAA5xC,EAAAA,EAAuB8wC,GAE3C,OACIe,EAAAA,cAACD,EAAD,CACIb,KAAM/xH,EAAMT,KACZyyH,SAAUhyH,EAAM8yH,SAChBC,SAAUnvC,EACV74B,SAAU,SAAAioE,GACNpvC,EAAAj/B,EAAAA,EAAA,GACO3kD,GAAA,IACHT,KAAM,CAACyzH,KAAA,MAM3BzC,QAAS,SAACC,EAASr9C,GAEf,IACM8/C,GAFNzC,EAAUA,EAAQ/1G,QACQrC,MAAM,KAE3BpM,KAAI,SAAA0L,GACD,IAEI,OADA,IAAIw7G,IAAIx7G,GACDA,CAAA,OACT7N,GACE,MAAO,KAGd46C,QAAO,SAAA5oB,GAAA,YAAW,IAANA,CAAM,IAEvB,GAAIo3F,EAAKx3H,SAAW03E,EAAK5zE,KAAK9D,SAAUw3H,EAAKE,OAAM,SAACr3F,EAAGvgC,GAAA,OAAMugC,IAAMq3C,EAAK5zE,KAAKhE,EAAA,IAC7E,OAAAopD,EAAAA,EAAA,GACOwuB,GAAA,IACH5zE,KAAM0zH,GAAA,GCpDLG,GAAyD,CAClE3Y,uBAAwB,iBAAM,IAC9Bp/B,KAAMvB,GAAawB,QACnBu7B,YAAY,EACZ1zB,UAAU,EACV8zB,oBAAoB,EACpB0V,QAAS,kBAAM,KACfp1B,KAAM,WAAM,EACZg5B,QAAS,WAAM,GCTN8C,IAAoBj5D,EAAAA,EAAAA,GAApB,MAAoBA,CAApB,CAAArvD,KAAA,oBAAAyvD,MAAA,YCUb84D,GAAA,SAAAC,GAAA1yE,EAAAyyE,EAAAC,GAAA,IAAAC,EAAA3qE,EAAAyqE,GAAA,SAAAA,IAZA,IAAAG,EA4Ca,OA5CbtzE,EAAA,KAAAmzE,IAYAG,EAAAD,EAAAx3H,MAAA,KAAAR,YACYk4H,cAAoC,KA6BpCD,EAAAE,iBAAmB,SAACj+G,GACxB+9G,EAAKC,cAAgBh+G,EACrB+9G,EAAKG,uBAAA,EAAAH,CAAA,CAQ+B,OAR/BpzE,EAAAizE,EAAA,EAAAj3H,IAAA,wBAAA2D,MA7BD,WACJ,IAAQ0zH,EAAyBp2H,KAAzBo2H,cAAelqH,EAAUlM,KAAVkM,MACvB,GAAsB,OAAlBkqH,EAAJ,CAEA,IAAQG,EAAyBrqH,EAAzBqqH,SAAUC,EAAetqH,EAAfsqH,WAEZt1G,EAAqB63D,GAAew9C,GAEpCE,EAAa78G,SAAStD,cAC5BmgH,EAAWC,mBAAmBN,GAC9BK,EAAWE,iBAEX,IAAIC,EAAyC,MAAAJ,OAAA,EAAAA,EAAat1G,GAC1D,QAAiB,IAAb01G,EAAwB,CACxB,IAAMC,EAAWj9G,SAASC,cAAc,YACxCg9G,EAAS31G,UAAYA,EACrB01G,EAAWC,EAAS7hD,OAAA,CAExBohD,EAAch+B,OAAOw+B,GAErB,IACkBE,EAD8BC,EAAAtwD,EAAnC2vD,EAAc7nE,qBAAqB,MAC9B,IAAlB,IAAAwoE,EAAA73D,MAAA43D,EAAAC,EAAA5sH,KAAAygC,MAAwB,KAAbv9B,EAAAypH,EAAAp0H,MACP2K,EAAI8Y,OAAS,SACb9Y,EAAI2pH,IAAM,6BAAAr/G,GAAAo/G,EAAAxqH,EAAAoL,EAAA,SAAAo/G,EAAA38G,GAAA,CArBoB,CAqBpB,IAAArb,IAAA,SAAA2D,MASX,WAKH,OADA1C,KAAKs2H,wBACEW,EAAAA,cAAClB,GAAD,CAAmB/rF,IAAKhqC,KAAKq2H,kBAAA,KAAAL,CAAA,CAxC5C,CAAkFiB,EAAAA,eCVrEC,IAAWp6D,EAAAA,EAAAA,GAAX,WAAWA,CAAX,CAAArvD,KAAA,WAAAyvD,MAAA,YAmCAi6D,IAAYr6D,EAAAA,EAAAA,GAAZ,MAAYA,CAAZ,CAAArvD,KAAA,YAAAyvD,MAAA,YAoBAk6D,IAAoBt6D,EAAAA,EAAAA,GAApB,MAAoBA,CAApB,CAAArvD,KAAA,oBAAAyvD,MAAA,YC1CAm6D,GAA+C,SAACnrH,GACzD,IAAQorH,EAAsFprH,EAAtForH,YAAa50H,EAAyEwJ,EAAzExJ,MAAO0xD,EAAkEloD,EAAlEkoD,UAAWyU,EAAuD38D,EAAvD28D,UAAW0uD,EAA4CrrH,EAA5CqrH,WAAYhxC,EAAgCr6E,EAAhCq6E,mBAAuBzoB,EAAAlb,EAAS12C,EAAAsrH,IACtF/pE,EAAwBqQ,EAAxBrQ,SAAUxH,EAAc6X,EAAd7X,UAEZwxE,EAAiBC,EAAAA,OAAmC,MAEpDC,EAAU,MAAAj1H,EAAAA,EAAS,GAEzBu2E,QAAoB,IAAbxrB,EAAwB,gDAEzBiqE,EAAAA,WAAU,WACZ,IAAMv8G,EAAKs8G,EAAS5uG,QACpB,GAAW,OAAP1N,IAEAA,EAAGkF,SAAP,CACA,IAAMliB,EAASw5H,EAAQh5H,WAAWR,OAClCgd,EAAGugB,QACHvgB,EAAG0zG,kBAAkBhmD,EAAY,EAAI1qE,EAAQA,EAHtB,CAGsB,GAE9C,IAEGu5H,EAAAA,iBAAgB,WApC1B,IAAAv9C,EAqCQ,QAA2B,IAAvBoM,EAAkC,CAClC,IAAM7G,EAAsC,kBAAvB6G,EAAkC,CAACA,EAAoB,MAAQA,EACpF,OAAApM,EAAAs9C,EAAS5uG,UAATsxD,EAAkB00C,kBAAkBnvC,EAAM,GAAIA,EAAM,OAEzD,CAAC6G,IAEJ,IAAMqxC,EAAuBF,EAAAA,aACzB,SAAAnrH,GACkB,UAAVA,EAAExN,KAAmBwN,EAAEolB,WAA2B,IAAf4lG,GAGvC,MAAAnjE,GAAAA,EAAY7nD,EAAA,GAEhB,CAACgrH,EAAYnjE,IAGjB,OACIsjE,EAAAA,cAACN,GAAD,CAAmBnxE,UAAU,qBACzByxE,EAAAA,cAACP,GAAD,CAAWlxE,UAAAA,GAAuB0xE,EAAU,MAC5CD,EAAAA,cAACR,GAAA7vE,EAAAA,EAAA,GACOyW,GAAA,IACJ7X,WAAY,MAAAA,EAAAA,EAAa,IAAM,aAC/Bjc,IAAKytF,EACLrjE,UAAWwjE,EACXl1H,MAAOi1H,EACPL,YAAAA,EACA3iC,IAAI,YCxDPkjC,IAA6B/6D,EAAAA,EAAAA,GAA7B,MAA6BA,CAA7B,CAAArvD,KAAA,6BAAAyvD,MAAA,UAAAK,KAAA,cACI,SAAAtkD,GAAA,OAAKA,EAAEqoE,WAAA,EADX,SCYAw2C,GAAwD,SAAA7+G,GACjE,IAAQvW,EAAyFuW,EAAzFvW,MAAO+qD,EAAkFx0C,EAAlFw0C,SAAUg2B,EAAwExqE,EAAxEwqE,cAAe+yC,EAAyDv9G,EAAzDu9G,WAAYuB,EAA6C9+G,EAA7C8+G,WAAYtJ,EAAiCx1G,EAAjCw1G,SAAUloC,EAAuBttE,EAAvBstE,mBAEpE9P,EAAW/zE,EAAMT,KACjB68E,GAA8B,IAAnBp8E,EAAMo8E,SAEvBk5C,EAAsCC,EAAAA,SAA+B,KAAbxhD,GAAmBgN,GAAAy0C,GAAAp9D,EAAAA,EAAAA,GAAAk9D,EAAA,GAApEG,EAAAD,EAAA,GAAUE,EAAAF,EAAA,GACXvD,EAAoBsD,EAAAA,aAAY,WAClCG,GAAY,SAAA7rH,GAAA,OAAMA,CAAA,MACnB,IACG8rH,EAAa5hD,EAAW,OAAS,GAEvC,OAAI0hD,EAEIF,EAAAA,cAACJ,GAAD,CAA4Bv2C,YAAay2C,EAAWhjG,MAAQ,IACxDkjG,EAAAA,cAACZ,GAAD,CACI5gF,WAAW,EACXoyB,WAAW,EACX0d,mBAAAA,EACA7jF,MAAO+zE,EACPriB,UAAW,SAAA7nD,GACO,UAAVA,EAAExN,KAAiBwN,EAAEuiB,iBAAA,EAE7B2+B,SAAAA,IAEJwqE,EAAAA,cAAC,MAAD,CAAKhyE,UAAA,6BAAA3oB,OAAwC+6F,GAAc/hF,QAAS,kBAAMm4E,EAAS/rH,EAAA,GAC/Eu1H,EAAAA,cAACtuC,GAAD,QAMZsuC,EAAAA,cAACJ,GAAD,CAA4Bv2C,YAAay2C,EAAWhjG,OAChDkjG,EAAAA,cAACjC,GAAD,CAAaO,SAAU9/C,EAAU+/C,WAAAA,KAC/B13C,GACEm5C,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC,MAAD,CAAKhyE,UAAU,WACfgyE,EAAAA,cAAC,MAAD,CAAKhyE,UAAA,wBAAA3oB,OAAmC+6F,GAAc/hF,QAASq+E,GAC3DsD,EAAAA,cAAC/uC,GAAD,QAIZ+uC,EAAAA,cAAC,WAAD,CAAUhyE,UAAU,6BAA6BxP,WAAW,MCtD3D6hF,GAA2D,CACpEnb,uBAAwB,SAAA/jG,GAP5B,IAAA+gE,EAAAC,EAOiC,cAAAA,EAAA,OAAAD,EAAA/gE,EAAEnX,WAAF,EAAAk4E,EAAQx7E,YAARy7E,EAAsB,IACnD2D,KAAMvB,GAAamC,SACnB46B,YAAY,EACZI,oBAAoB,EACpBjf,SAAU9M,GACVyhC,QAAS,SAAC5iC,EAAK5W,EAAMx3C,GACjB,IAAMk6F,EAAY1iD,EAAK5zE,KAAK6Y,MAAM,MAAM,GACxC,OAAO2xE,EAAInlB,YAAYixD,GAAWxjG,MAAQ,EAAIsJ,EAAEw9C,qBAAA,EAEpDoe,KAAM,SAAA/gF,GAAA,OAAKq1E,GAAar1E,EAAGA,EAAE28D,KAAK5zE,KAAMiX,EAAE28D,KAAKqY,aAAA,EAC/C8kC,SAAU,SAAA55G,GAAA,OAAAiuC,EAAAA,EAAA,GACHjuC,GAAA,IACHnX,KAAM,MAEV6hF,cAAe,kBAAM,SAAA7qE,GACjB,IAAQw0C,EACJx0C,EADIw0C,SAAU/qD,EACduW,EADcvW,MAAOyjB,EACrBlN,EADqBkN,OAAQmgE,EAC7BrtE,EAD6BqtE,kBAAmB3C,EAChD1qE,EADgD0qE,sBAAuBF,EACvExqE,EADuEwqE,cAAe8C,EACtFttE,EADsFstE,mBAE1F,OACIiyC,EAAAA,cAACV,GAAD,CACIrJ,SAAUnoC,EACVyxC,WAAY5xG,EACZzjB,MAAAA,EACA6jF,mBAAAA,EACA94B,SAAU,SAAAlhD,GAAA,OACNkhD,EAAApG,EAAAA,EAAA,GACO3kD,GAAA,IACHT,KAAMsK,EAAE4Z,OAAOzjB,QAAA,EAGvB+gF,cAAAA,EACA+yC,WAAY7yC,GAAA,GAIxBsvC,QAAS,SAACC,EAASr9C,GAAA,OAAUq9C,IAAYr9C,EAAK5zE,UAAO,EAAAolD,EAAAA,EAAA,GAAiBwuB,GAAA,IAAM5zE,KAAMixH,GAAA,GCtCzEuF,GAAuD,CAChEtb,uBAAwB,SAAA/jG,GAAA,OAAKA,EAAEy2D,IAAIlxE,UAAA,EACnCo/E,KAAMd,GAAkBqB,OACxBi7B,YAAY,EACZI,oBAAoB,EACpBjf,SrCunBG,SAA2BzmF,EAAoB45E,GAClD,IAAQpB,EAAex4E,EAAfw4E,IAAKvS,EAAUjmE,EAAVimE,MACPw+C,EAAA,OAAAp7F,OAAiB48C,EAAM+B,YACvBp5E,EAA8B,MAAAgrF,EAAAA,EAAY,CAAC,EAOjD,OANI,MAAAhrF,OAAA,EAAAA,EAAQ6pF,QAASgsC,IACjBjsC,EAAIC,KAAOgsC,EACX71H,EAAO6pF,KAAOgsC,GAElB71H,EAAO23F,OAAS5J,GAChBnE,EAAIoC,UAAY,SACThsF,CAAA,EqChoBPwsH,QAAS,kBAAM,IACfp1B,KAAM,SAAA/gF,GAAA,OrCuoBH,SACHjF,EACAlU,EACAkf,EACAg5F,EACA0gB,GAEA,IAAQlsC,EAAkCx4E,EAAlCw4E,IAAKtC,EAA6Bl2E,EAA7Bk2E,KAAMuP,EAAuBzlF,EAAvBylF,YAAaxf,EAAUjmE,EAAVimE,MACxB37C,EAAwB4rD,EAAxB5rD,EAAGwJ,EAAqBoiD,EAArBpiD,EAAGhT,EAAkBo1D,EAAlBp1D,MAAOC,EAAWm1D,EAAXn1D,OACf4jG,EAAkB35G,EAAU,EAAIy6E,EACtC,GAAmB,WAAfue,GAA2B2gB,EAAkB,EAAG,CAChDnsC,EAAIuL,YAAc4gC,EAClB,IAAMC,EAAe,GAAK55G,EAAUy6E,EAAc,GAWlD,GAVAlK,GACI/C,EACAvS,EACAj7D,EACA05G,EAAap6F,EAAIs6F,EAAet6F,EAChCwJ,EACA4wF,EAAa5jG,EAAQ8jG,EAAe9jG,EACpCC,GACA,GAEA2jG,EAAY,CACZlsC,EAAIuL,YAAc0B,EAClBjN,EAAI4D,YACJ,IAAK,IAALyoC,EAAA,EAAA19D,EAAsB,CAAC,EAAG,GAAA09D,EAAA19D,EAAAj9D,OAAA26H,IACtB,IADJ,IAAW32C,EAAA/mB,EAAA09D,GACPC,EAAA,EAAAC,EAAsB,EAAE,GAAI,EAAG,GAAAD,EAAAC,EAAA76H,OAAA46H,IAAI,CAAnC,IAAWE,EAAAD,EAAAD,GACPtsC,EAAItC,KAAK5rD,EAAI4jD,EAASp6C,EAAI/S,EAAS,EAAIikG,EAAS,EAAG,GAI3DxsC,EAAIuB,UAAY9T,EAAMQ,UACtB+R,EAAIpD,OACJoD,EAAI4D,WAAA,CAER5D,EAAIuL,YAAc,EAEtB,GAAmB,WAAfigB,GAA2C,SAAfA,IAA0Bh5F,EAAU,CAChE,IAAMyY,EAAO33B,EAAMpB,WAEbqL,EAAQu0B,EAAIxJ,EAAQ,EACP,SAAfkjF,GAAyC,IAAhBve,IACzBjN,EAAIuL,YAAc,EAAI0B,GAE1BjN,EAAIuB,UAAY9T,EAAMQ,UACtB+R,EAAI0B,SAASz2D,EAAM1tB,EAAO+9B,EAAI/S,EAAS,EAAI83D,GAAoBL,EAAA,OAAAnvD,OAAY48C,EAAM+B,cAC7D,IAAhByd,IACAjN,EAAIuL,YAAc,IqCvrBfkhC,CAAkBhgH,EAAGA,EAAE28D,KAAKhG,IAAK32D,EAAE28D,KAAK52D,QAAS/F,EAAE28D,KAAKoiC,WAAY/+F,EAAE28D,KAAK8iD,WAAA,EACtFriF,QAAS,SAAA/pC,GACL,IAAQ2pG,EAAmC3pG,EAAnC2pG,OAAQrgC,EAA2BtpE,EAA3BspE,KAAYt3C,EAAehyB,EAArB0oG,KAAeltE,EAAMx7B,EAAZ2oG,KACvBngF,EAAkBmhF,EAAlBnhF,MAAOC,EAAWkhF,EAAXlhF,OAET46D,EAAU/Z,EAAK8iD,WAAa,GAAK5jG,EAAQ,GAAK,EAAIA,EAAQ,EAC1D86D,EAAU76D,EAAS,EAEzB,GAAIprB,KAAK4/C,IAAIjrB,EAAIqxD,IAAY,IAAMhmF,KAAK4/C,IAAIzhB,EAAI8nD,IAAY,GACxD,OAAAxoC,EAAAA,EAAA,GACOwuB,GAAA,IACH52D,SAAU42D,EAAK52D,SAGhB,EAEXg0G,QAAS,WAAM,GCvBNkG,GAAuD,CAChEhc,uBAAwB,iBAAM,IAC9Bp/B,KAAMd,GAAkBsB,OACxBg7B,YAAY,EACZI,oBAAoB,EACpB0V,QAAS,kBAAM,KACfp1B,KAAM,SAAA/gF,GAAA,OtCkeH,SAAwBjF,EAAoBhS,EAAc+7F,GAC7D,IAAQvR,EAAiDx4E,EAAjDw4E,IAAKtC,EAA4Cl2E,EAA5Ck2E,KAAMuP,EAAsCzlF,EAAtCylF,YAAaxf,EAAyBjmE,EAAzBimE,MAAOuf,EAAkBxlF,EAAlBwlF,cAC/Bl7D,EAA8B4rD,EAA9B5rD,EAAGwJ,EAA2BoiD,EAA3BpiD,EAAUtJ,EAAiB0rD,EAAxBp1D,MAAkBrX,EAAMysE,EAAdn1D,OACxBy3D,EAAI4D,YACJ5D,EAAIuL,YAAc0B,EAClBjN,EAAItC,KAAK5rD,EAAGwJ,EAAGtJ,EAAG/gB,GAClB+uE,EAAIuB,UAAY9T,EAAMmB,gBACtBoR,EAAIpD,OACJoD,EAAIuL,YAAc,EAClBvL,EAAI4D,YAEJ,IAAM+oC,EAA0B,KAATn3H,EAEnBo3H,EAAQ,EAEZ,QAAa,IAATr7B,EAAoB,CACpB,IACM97F,EAAOwb,EADG,EAEV47G,EAAK/6F,EAAIwzD,EACTwnC,EAAKxxF,EAAIgqD,EAEf0H,EAAcyE,WAAWF,EAAM,SAAUvR,EAAK6sC,EAAIC,EAAIr3H,EAAMg4E,EAAOk/C,EAAiB,EAAI1/B,GACxF2/B,EAAQn3H,CAAA,KACL,CACHm3H,EAAQ,GACR,IACMG,EAAWJ,EADK,MAC4B1/B,EAC5C+/B,EAAaL,EAAiB,EAFd,IAEmB,EAAI1/B,GAA+B,GAEtEggC,EAAUx/C,EAAM2B,sBAAwB,EAC1C29C,EAAW,IACX/sC,EAAI9+B,OAAOpvB,EAAIm7F,EAAUD,EAAY1xF,EAAIrqB,EAAI,GAC7C+uE,EAAI8D,OAAOhyD,EAAIm7F,EAAUD,EAAaD,EAAUzxF,EAAIrqB,EAAI,GACxD+uE,EAAI9+B,OAAOpvB,EAAIm7F,EAAUD,EAAwB,GAAXD,EAAgBzxF,EAAIrqB,EAAI,EAAe,GAAX87G,GAClE/sC,EAAI8D,OAAOhyD,EAAIm7F,EAAUD,EAAwB,GAAXD,EAAgBzxF,EAAIrqB,EAAI,EAAe,GAAX87G,GAClE/sC,EAAIkE,UAAY,EAChBlE,EAAI+D,YAActW,EAAMU,aACxB6R,EAAIiE,QAAU,QACdjE,EAAIlD,SAAA,CAIZkD,EAAIuB,UAAY9T,EAAMO,WACtBgS,EAAI0B,SAASlsF,EAAMo3H,EAAQ96F,EAAI27C,EAAM2B,sBAAwB,GAAK9zC,EAAIrqB,EAAI,EAAIovE,GAAoBL,EAAKvS,IACvGuS,EAAI4D,WAAA,CsC9gBOspC,CAAezgH,EAAGA,EAAE28D,KAAK9U,KAAM7nD,EAAE28D,KAAKmoB,KAAA,EACjDi1B,QAAS,WAAM,GCLb2G,GAA4BC,EAAAA,KAAArzD,EAAArF,IAAA6D,MAC9B,SAAA80D,IAAA,OAAA34D,IAAAO,MAAA,SAAAq4D,GAAA,cAAAA,EAAAv6D,KAAAu6D,EAAA5zF,MAAA,cAAA4zF,EAAA5zF,KAAA,EAAkB,6BAAO,cAAA4zF,EAAAl2D,OAAA,SAAAk2D,EAAAr2D,MAAA,wBAAAq2D,EAAAx0D,OAAA,GAAAu0D,EAAA,MAGhBE,GAAuD,CAChE7c,uBAAwB,SAAA/jG,GAV5B,IAAA+gE,EAAAC,EAUiC,cAAAA,EAAA,OAAAD,EAAA/gE,EAAEnX,WAAF,EAAAk4E,EAAQx7E,YAARy7E,EAAsB,IACnD2D,KAAMvB,GAAatb,OACnBq4C,YAAY,EACZI,oBAAoB,EACpB9zB,UAAU,EACV6U,SAAU9M,GACVqM,KAAM,SAAA/gF,GAAA,OAAKq1E,GAAar1E,EAAGA,EAAE28D,KAAKy3C,YAAap0G,EAAE28D,KAAKqY,aAAA,EACtDmhC,QAAS,SAAC5iC,EAAK5W,GAAA,OAAS4W,EAAInlB,YAAYuO,EAAKy3C,aAAav4F,MAAQ,IAClEi+F,SAAU,SAAA55G,GAAA,OAAAiuC,EAAAA,EAAA,GACHjuC,GAAA,IACHnX,UAAM,KAEV6hF,cAAe,kBAAM,SAAA7qE,GACjB,IAAQotE,EAAuDptE,EAAvDotE,cAAe54B,EAAwCx0C,EAAxCw0C,SAAU/qD,EAA8BuW,EAA9BvW,MAAO6jF,EAAuBttE,EAAvBstE,mBACxC,OACIszC,EAAAA,cAAOA,EAAAA,SAAP,CAAgBllF,SAAU,MACtBklF,EAAAA,cAACD,GAAD,CACI/wD,UAAWwd,EACXhmE,UAA6B,IAAnB3d,EAAMo8E,SAChBp8E,MAAOA,EAAMT,KACbskF,mBAAAA,EACA94B,SAAU,SAAAlvB,GA/B9B,IAAA47C,EAgCwB,OAAA1sB,EAAApG,EAAAA,EAAA,GACO3kD,GAAA,IACHT,KAAMi/D,OAAO7lD,MAAM,OAAA8+D,EAAA57C,EAAE07F,YAAF9/C,EAAgB,GAAK,EAAI57C,EAAE07F,iBAAA,GAOtEhH,QAAS,SAACC,EAASr9C,GACf,IAAMqkD,EAAYh5D,OAAOs3B,WAAW06B,GACpC,IAAIhyD,OAAO7lD,MAAM6+G,IAAcrkD,EAAK5zE,OAASi4H,EAC7C,OAAA7yE,EAAAA,EAAA,GAAYwuB,GAAA,IAAM5zE,KAAMi4H,GAAA,GCzCnBC,GAA6D,CACtEhd,uBAAwB,iBAAM,IAC9BkS,QAAS,kBAAM,KACftxC,KAAMvB,GAAa2B,UACnBo7B,YAAY,EACZI,oBAAoB,EACpB1f,KxC6rBG,SAA2BhmF,GAC9B,IAAQw4E,EAAqBx4E,EAArBw4E,IAAKvS,EAAgBjmE,EAAhBimE,MAAOiQ,EAASl2E,EAATk2E,KACZ5rD,EAAoB4rD,EAApB5rD,EAAGwJ,EAAiBoiD,EAAjBpiD,EAAWrqB,EAAMysE,EAAdn1D,OAEdy3D,EAAI4D,YAQJ,IANA,IAAMQ,EAAS,IACXupC,EAAS77F,EAAI27C,EAAM2B,sBAAwBgV,EACzCwpC,EAAStyF,EAAIrqB,EAAI,EACjBzE,EAAIrP,KAAK42F,IAAIxX,GAAiB,KAAO6H,EACrChpD,EAAIj+B,KAAK62F,IAAIzX,GAAiB,KAAO6H,EAElC5yF,EAAI,EAAGA,EAAI,GAAIA,IACpBwuF,EAAI9+B,OAAOysE,EAAQC,EAASxpC,GAC5BpE,EAAI8D,OAAO6pC,EAAQC,EAASxpC,GAE5BpE,EAAI9+B,OAAOysE,EAASnhH,EAAGohH,EAASxyF,GAChC4kD,EAAI8D,OAAO6pC,EAASnhH,EAAGohH,EAASxyF,GAEhC4kD,EAAI9+B,OAAOysE,EAASnhH,EAAGohH,EAASxyF,GAChC4kD,EAAI8D,OAAO6pC,EAASnhH,EAAGohH,EAASxyF,GAChCuyF,GAAU,EAEd3tC,EAAIkE,UAAY,IAChBlE,EAAIiE,QAAU,SACdjE,EAAI+D,YAActW,EAAMQ,UACxB+R,EAAIlD,QAAA,EwCttBJ0pC,QAAS,WAAM,GCLNqH,GAAqD,CAC9Dnd,uBAAwB,SAAA/jG,GAP5B,IAAA+gE,EAAAC,EAOiC,cAAAA,EAAA,OAAAD,EAAA/gE,EAAEnX,WAAF,EAAAk4E,EAAQx7E,YAARy7E,EAAsB,IACnD2D,KAAMvB,GAAa0B,MACnBq7B,YAAY,EACZI,oBAAoB,EACpBjf,SAAU,SAACxhF,EAAGC,GAAA,OAAMy0E,GAAa10E,EAAGC,EAAGD,EAAEghE,MAAMQ,UAAA,EAC/Cuf,KAAM,SAAA/gF,GAAA,OAAKq1E,GAAar1E,EAAGA,EAAE28D,KAAK5zE,KAAMiX,EAAE28D,KAAKqY,aAAA,EAC/CmhC,QAAS,SAAC5iC,EAAK5W,GAAA,OAAS4W,EAAInlB,YAAYuO,EAAK5zE,MAAM8yB,MAAQ,IAE3D+uD,cAAe,kBAAM,SAAA7qE,GACjB,IAAQotE,EAAuDptE,EAAvDotE,cAAe54B,EAAwCx0C,EAAxCw0C,SAAU/qD,EAA8BuW,EAA9BvW,MAAO6jF,EAAuBttE,EAAvBstE,mBACxC,OACIg0C,EAAAA,cAAClD,GAAD,CACIxuD,UAAWwd,EACX5vC,WAA8B,IAAnB/zC,EAAMo8E,SACjBz+D,UAA6B,IAAnB3d,EAAMo8E,SAChBp8E,MAAOA,EAAMT,KACbskF,mBAAAA,EACA94B,SAAU,SAAAlhD,GAAA,OACNkhD,EAAApG,EAAAA,EAAA,GACO3kD,GAAA,IACHT,KAAMsK,EAAE4Z,OAAOzjB,QAAA,MAMnCuwH,QAAS,WAAM,GC1BNuH,GAAmD,CAC5Drd,uBAAwB,SAAA/jG,GAP5B,IAAA+gE,EAAAC,EAOiC,cAAAA,EAAA,OAAAD,EAAA/gE,EAAEnX,WAAF,EAAAk4E,EAAQx7E,YAARy7E,EAAsB,IACnD2D,KAAMvB,GAAakC,KACnB66B,YAAY,EACZI,oBAAoB,EACpBjf,SAAU9M,GACV/H,UAAU,EACVoU,KAAM,SAAA/gF,GAAA,OAAMq1E,GAAar1E,EAAGA,EAAE28D,KAAKy3C,YAAap0G,EAAE28D,KAAKqY,aAAch1E,EAAE28D,KAAK2Y,cAAet1E,EAAEu1E,gBAAgB,GAC7G4gC,QAAS,SAAC5iC,EAAK5W,EAAMx3C,GACjB,IAAMo8F,EAAQ5kD,EAAKy3C,YAAYxyG,MAAM,MAAMlQ,MAAM,GAA0B,IAAvBirE,EAAK2Y,mBAAyB,EAAY,GAC9F,OAAO5kF,KAAKG,IAAArL,MAALkL,KAAA41E,EAAYi7C,EAAM/rH,KAAI,SAAA+O,GAAA,OAAKgvE,EAAInlB,YAAY7pD,GAAGsX,MAAQ,EAAIsJ,EAAEw9C,qBAAA,OAEvEm3C,SAAU,SAAA55G,GAAA,OAAAiuC,EAAAA,EAAA,GACHjuC,GAAA,IACHnX,KAAM,MAEV6hF,cAAe,kBAAM,SAAA7qE,GACjB,IAAQotE,EAAuDptE,EAAvDotE,cAAe54B,EAAwCx0C,EAAxCw0C,SAAU/qD,EAA8BuW,EAA9BvW,MAAO6jF,EAAuBttE,EAAvBstE,mBACxC,OACIm0C,EAAAA,cAACrD,GAAD,CACIxuD,UAAWwd,EACX5vC,WAA8B,IAAnB/zC,EAAMo8E,SACjBz+D,UAA6B,IAAnB3d,EAAMo8E,SAChBy4C,YAAY,EACZ70H,MAAOA,EAAMT,KACbskF,mBAAAA,EACA94B,SAAU,SAAAlhD,GAAA,OACNkhD,EAAApG,EAAAA,EAAA,GACO3kD,GAAA,IACHT,KAAMsK,EAAE4Z,OAAOzjB,QAAA,MAMnCuwH,QAAS,SAACC,EAASr9C,GAAA,OAAUq9C,IAAYr9C,EAAK5zE,UAAO,EAAAolD,EAAAA,EAAA,GAAiBwuB,GAAA,IAAM5zE,KAAMixH,GAAA,GCxCzEyH,IAAwB79D,EAAAA,EAAAA,GAAxB,MAAwBA,CAAxB,CAAArvD,KAAA,wBAAAyvD,MAAA,YCgDb09D,GApCyD,SAAA3hH,GACrD,IAAQ4hH,EAA+D5hH,EAA/D4hH,IAAKptE,EAA0Dx0C,EAA1Dw0C,SAAUg2B,EAAgDxqE,EAAhDwqE,cAAe3E,EAAiC7lE,EAAjC6lE,SAAUyH,EAAuBttE,EAAvBstE,mBAEhDu0C,EAAsCC,EAAAA,SAA0B,KAARF,GAAcp3C,GAAAu3C,GAAAlgE,EAAAA,EAAAA,GAAAggE,EAAA,GAA/D3C,EAAA6C,EAAA,GAAU5C,EAAA4C,EAAA,GAEXrG,EAAoBoG,EAAAA,aAAY,WAClC3C,GAAY,KACb,IAEH,OAAID,EAEI4C,EAAAA,cAAC1D,GAAD,CACI9wC,mBAAAA,EACA1d,WAAW,EACXpyB,WAAW,EACX/zC,MAAOm4H,EACPptE,SAAAA,IAMRstE,EAAAA,cAACJ,GAAD,KACII,EAAAA,cAAC,IAAD,CAAG90E,UAAU,YAAYhsB,KAAM4gG,EAAK10G,OAAO,SAAS6wG,IAAI,uBACnD6D,IAEH/7C,GACEi8C,EAAAA,cAAC,MAAD,CAAK90E,UAAU,YAAY3P,QAASq+E,GAChCoG,EAAAA,cAAC7xC,GAAD,OAGR6xC,EAAAA,cAAC,WAAD,CAAU90E,UAAU,YAAYxP,WAAW,MCtC1CwkF,GAAiD,CAC1D9d,uBAAwB,SAAA/jG,GAP5B,IAAA+gE,EAAAC,EAOiC,cAAAA,EAAA,OAAAD,EAAA/gE,EAAEnX,WAAF,EAAAk4E,EAAQx7E,YAARy7E,EAAsB,IACnD2D,KAAMvB,GAAaoC,IACnB26B,YAAY,EACZI,oBAAoB,EACpB9zB,UAAU,EACV6U,SAAU9M,GACVqM,KAAM,SAAA/gF,GAAA,OAAKq1E,GAAar1E,EAAGA,EAAE28D,KAAK5zE,KAAMiX,EAAE28D,KAAKqY,aAAA,EAC/CmhC,QAAS,SAAC5iC,EAAK5W,GAAA,OAAS4W,EAAInlB,YAAYuO,EAAK5zE,MAAM8yB,MAAQ,IAC3Di+F,SAAU,SAAA55G,GAAA,OAAAiuC,EAAAA,EAAA,GACHjuC,GAAA,IACHnX,KAAM,MAEV6hF,cAAe,kBAAM,SAAA7qE,GACjB,IAAQw0C,EAAuDx0C,EAAvDw0C,SAAU/qD,EAA6CuW,EAA7CvW,MAAO+gF,EAAsCxqE,EAAtCwqE,cAAe8C,EAAuBttE,EAAvBstE,mBACxC,OACI20C,EAAAA,cAACN,GAAD,CACIn3C,cAAAA,EACAo3C,IAAKn4H,EAAMT,KACXskF,mBAAAA,EACAzH,UAA6B,IAAnBp8E,EAAMo8E,SAChBrxB,SAAU,SAAAlhD,GAAA,OACNkhD,EAAApG,EAAAA,EAAA,GACO3kD,GAAA,IACHT,KAAMsK,EAAE4Z,OAAOzjB,QAAA,MAMnCuwH,QAAS,SAACC,EAASr9C,GAAA,OAAUq9C,IAAYr9C,EAAK5zE,UAAO,EAAAolD,EAAAA,EAAA,GAAiBwuB,GAAA,IAAM5zE,KAAMixH,GAAA,GCtBzEiI,IAAA7zE,EAAA8zE,GAAA,GACRn+C,GAAkBqB,OAASm6C,IAAAnxE,EAAA8zE,GAC3Bn+C,GAAkBsB,OAAS46C,IAAA7xE,EAAA8zE,GAC3B5+C,GAAavgB,QAAU42D,IAAAvrE,EAAA8zE,GACvB5+C,GAAayB,OAASq1C,IAAAhsE,EAAA8zE,GACtB5+C,GAAa4B,UAAYi2C,IAAA/sE,EAAA8zE,GACzB5+C,GAAaiC,MAAQw2C,IAAA3tE,EAAA8zE,GACrB5+C,GAAawB,QAAU83C,IAAAxuE,EAAA8zE,GACvB5+C,GAAamC,SAAW25C,IAAAhxE,EAAA8zE,GACxB5+C,GAAatb,OAAS84D,IAAA1yE,EAAA8zE,GACtB5+C,GAAa2B,UAAYg8C,IAAA7yE,EAAA8zE,GACzB5+C,GAAa0B,MAAQo8C,IAAAhzE,EAAA8zE,GACrB5+C,GAAakC,KAAO87C,IAAAlzE,EAAA8zE,GACpB5+C,GAAaoC,IAAMq8C,IAAAG,ICoCpBC,GAAY,EAyEhB,SAAAC,GAAwB/1G,EAAsB3hB,GAC1C,YAAc,IAAV2hB,GAAkC,IAAX3hB,GAA0C,IAAzB2hB,EAAMlD,QAAQlkB,aAAkC,IAAlBonB,EAAMsD,QACrEtD,EAEJ,CACHsD,aACsB,IAAlBtD,EAAMsD,aACA,EACA,CACIgtD,KAAM,CAACtwD,EAAMsD,QAAQgtD,KAAK,GAAKjyE,EAAQ2hB,EAAMsD,QAAQgtD,KAAK,IAC1Dx/D,MAAAgxC,EAAAA,EAAA,GACO9hC,EAAMsD,QAAQxS,OAAA,IACjBkoB,EAAGhZ,EAAMsD,QAAQxS,MAAMkoB,EAAI36B,IAE/B+jG,WAAYpiF,EAAMsD,QAAQ8+E,WAAWj5F,KAAI,SAAAo5B,GAAA,OAAAuf,EAAAA,EAAA,GAClCvf,GAAA,IACHvJ,EAAGuJ,EAAEvJ,EAAI36B,GAAA,KAG3BgsE,KAAMrqD,EAAMqqD,KACZvtD,QAASkD,EAAMlD,QAAQze,OAAOA,GAAA,CAoBtC,IAAM23H,GAA+B,CACjCC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACRC,UAAU,EACV77H,OAAO,EACP87H,MAAM,EACNC,OAAO,EACPxkG,QAAQ,EACR2oD,OAAO,EACPxqC,MAAM,GAmcJsmF,GAAwB,CAC1Bl+C,KAAMvB,GAAawB,QACnBsb,cAAc,GAGZ4iC,GAAoC,CACtC75G,QAAS2+D,GAAiBC,QAC1BrR,KAAMoR,GAAiBC,QACvBp4D,aAAS,GAw5FAszG,GAAmBC,EAAAA,YAr5FuD,SAACnjH,EAAG03F,GA3oB3F,IAAAx2B,EAAAC,EAAA+gB,EAAA7/B,EAAAL,EA4oBIohE,EAA0DD,EAAAA,SAAwBF,IAAAI,GAAAxhE,EAAAA,EAAAA,GAAAuhE,EAAA,GAA3EE,EAAAD,EAAA,GAAoBE,EAAAF,EAAA,GAC3BG,EACUL,EAAAA,WAAAM,GAAA5hE,EAAAA,EAAAA,GAAA2hE,EAAA,GADH3lB,EAAA4lB,EAAA,GAASC,EAAAD,EAAA,GAUVtS,EAAuBgS,EAAAA,OAAgC,MACvDjqB,EAAkBiqB,EAAAA,OAAiC,MACzDQ,EAA0CR,EAAAA,WAAAS,GAAA/hE,EAAAA,EAAAA,GAAA8hE,EAAA,GAAnCE,EAAAD,EAAA,GAAYE,EAAAF,EAAA,GACbjZ,EAAkBwY,EAAAA,OAA8B,MAChDY,EAAiBZ,EAAAA,SAEvBa,EAkGIhkH,EAjGAikH,WAAAA,OAAA,IAAAD,EAAa,OAAAA,EACGE,EAgGhBlkH,EAhGAmkH,eACA15C,EA+FAzqE,EA/FAyqE,oBACAsX,EA8FA/hF,EA9FA+hF,oBACArX,EA6FA1qE,EA7FA0qE,sBACA5uD,EA4FA9b,EA5FA8b,MACAC,EA2FA/b,EA3FA+b,OACSqoG,EA0FTpkH,EA1FAoJ,QACAutD,EAyFA32D,EAzFA22D,KACA01B,EAwFArsF,EAxFAqsF,eACAg4B,EAuFArkH,EAvFAqkH,cACAC,EAsFAtkH,EAtFAskH,gBACAj3C,EAqFArtE,EArFAqtE,kBACAk3C,EAoFAvkH,EApFAukH,iBACYC,EAmFZxkH,EAnFAikF,WACAwgC,EAkFAzkH,EAlFAykH,gBAAAC,EAkFA1kH,EAjFA2kH,kBAAAA,OAAA,IAAAD,EAAoB,UAAAA,EACpBE,GAgFA5kH,EAhFA4kH,qBACAC,GA+EA7kH,EA/EA6kH,kBACA73E,GA8EAhtC,EA9EAgtC,UACA83E,GA6EA9kH,EA7EA8kH,oBACsBC,GA4EtB/kH,EA5EAoxG,qBACA4T,GA2EAhlH,EA3EAglH,yBACAC,GA0EAjlH,EA1EAilH,qBACAC,GAyEAllH,EAzEAklH,aACAC,GAwEAnlH,EAxEAmlH,cACWC,GAuEXplH,EAvEAm7C,UACSkqE,GAsETrlH,EAtEAi5F,QACaqsB,GAqEbtlH,EArEAulH,YACAC,GAoEAxlH,EApEAwlH,cACA7d,GAmEA3nG,EAnEA2nG,cACc8d,GAkEdzlH,EAlEA2qE,aACkB+6C,GAiElB1lH,EAjEA0sF,iBACAi5B,GAgEA3lH,EAhEAsgF,SAAAslC,GAgEA5lH,EA/DA6lH,YAAAA,QAAA,IAAAD,GAAc,OAAAA,GAAAE,GA+Dd9lH,EA9DA+lH,aAAAA,QAAA,IAAAD,GAAe,QAAAA,GAAAE,GA8DfhmH,EA7DAimH,UAAAA,QAAA,IAAAD,GAAY,QAAAA,GAAAE,GA6DZlmH,EA5DAmmH,uBAAAA,QAAA,IAAAD,GAAyB,YAAAA,GAAAE,GA4DzBpmH,EA3DAqmH,wBAAAA,QAAA,IAAAD,GAA0B,YAAAA,GAAAE,GA2D1BtmH,EA1DAumH,qBAAAA,QAAA,IAAAD,GAAuB,YAAAA,GACbE,GAyDVxmH,EAzDA+5G,SACA5gB,GAwDAn5F,EAxDAm5F,YACAL,GAuDA94F,EAvDA84F,YACAkhB,GAsDAh6G,EAtDAg6G,QAAAyM,GAsDAzmH,EArDA0mH,YAAAA,QAAA,IAAAD,IAAcA,GAAAE,GAqDd3mH,EApDAq7E,cAAAA,QAAA,IAAAsrC,GAAgB,EAAAA,GAAAC,GAoDhB5mH,EAnDA6mH,iBAAAA,QAAA,IAAAD,GAAmB,OAAAA,GAAAE,GAmDnB9mH,EAlDA+mH,oBAAAA,QAAA,IAAAD,GAAsB,EAAAA,GACtBE,GAiDAhnH,EAjDAgnH,eACA/uB,GAgDAj4F,EAhDAi4F,kBACA9P,GA+CAnoF,EA/CAmoF,gBACe8+B,GA8CfjnH,EA9CAuxG,cACAxY,GA6CA/4F,EA7CA+4F,cACAmuB,GA4CAlnH,EA5CAknH,mBACYC,GA2CZnnH,EA3CA6wG,WACAvC,GA0CAtuG,EA1CAsuG,uBACe8Y,GAyCfpnH,EAzCAqnH,cACAC,GAwCAtnH,EAxCAsnH,sBAAAC,GAwCAvnH,EAvCAioG,eAAgBuf,QAAA,IAAAD,GAAmB,GAAAA,GAAAE,GAuCnCznH,EAtCAgoG,eAAgB0f,QAAA,IAAAD,GAAmB,IAAAA,GACfE,GAqCpB3nH,EArCA4nH,mBACA/8C,GAoCA7qE,EApCA6qE,cACAqjB,GAmCAluF,EAnCAkuF,mBACA25B,GAkCA7nH,EAlCA6nH,cACAC,GAiCA9nH,EAjCA8nH,cACA9lC,GAgCAhiF,EAhCAgiF,eACA2X,GA+BA35F,EA/BA25F,eACAC,GA8BA55F,EA9BA45F,OACgBmuB,GA6BhB/nH,EA7BA4nG,eACmBogB,GA4BnBhoH,EA5BA8nG,kBACqBmgB,GA2BrBjoH,EA3BA6nG,oBACiBqgB,GA0BjBloH,EA1BAmoH,gBACA94B,GAyBArvF,EAzBAqvF,WACAsJ,GAwBA34F,EAxBAmvF,cACAgL,GAuBAn6F,EAvBAm6F,aACA5B,GAsBAv4F,EAtBAu4F,aACAE,GAqBAz4F,EArBAy4F,aACA1a,GAoBA/9E,EApBA+9E,YACA+b,GAmBA95F,EAnBA85F,kBACA+Q,GAkBA7qG,EAlBA6qG,YACArR,GAiBAx5F,EAjBAw5F,YACAK,GAgBA75F,EAhBA65F,YACAqO,GAeAloG,EAfAkoG,WACakgB,GAcbpoH,EAdAuuG,YACa8Z,GAabroH,EAbAwuG,YACApE,GAYApqG,EAZAoqG,yBACAK,GAWAzqG,EAXAyqG,aACAC,GAUA1qG,EAVA0qG,kBACAgE,GASA1uG,EATA0uG,YACA1U,GAQAh6F,EARAg6F,cACAE,GAOAl6F,EAPAk6F,cACA0Q,GAMA5qG,EANA4qG,YAAA0d,GAMAtoH,EALAuoH,WAAAA,QAAA,IAAAD,IAAaA,GAAAE,GAKbxoH,EAJAw7E,UAAWitC,QAAA,IAAAD,GAAc,GAAAA,GAAAE,GAIzB1oH,EAHAy7E,aAAcktC,QAAA,IAAAD,GAAiB,GAAAA,GAAAE,GAG/B5oH,EAFAg7E,kBAAmB6tC,QAAA,IAAAD,GAAsBD,GAAAC,GAClCE,GACP9oH,EADAihE,MAGEgnC,GAAiBt3G,KAAKG,IAAI02H,GAAkB,IAC5Cxf,GAAiBr3G,KAAKG,IAAI42H,GAAkBzf,IAC5C2f,GAAqBj3H,KAAKG,IAAI,MAAA62H,GAAAA,GAAwB3f,GAAgBC,IAOtE8gB,GALiB5F,EAAAA,SAAQ,WAC3B,MAAsB,qBAAXziH,OAA+B,CAAEsoH,SAAU,QAC/CtoH,OAAOs9C,iBAAiBr9C,SAAS2gB,gBAAA,GACzC,IAE0B0nG,SAEvBC,GAAgB9F,EAAAA,SAAQ,kBAAMl7D,OAAOs3B,WAAWwpC,GAAA,GAAc,CAACA,KAErEG,GAA4F/F,EAAAA,SAAQ,WA9wBxG,IAAAv6B,EAAA2I,EAAA2R,EA+wBQ,IAAKqlB,IAA0B,KAAZU,GACf,MAAO,CAACR,GAAaE,GAAgBE,GAAqBC,GAASV,GAAeC,IACtF,IAAMc,EAASF,GAAU,GACnBz4F,EAAKi4F,GACLW,EAAKhmD,KACX,MAAO,CACW,kBAAP5yC,EAAkBA,EAAK24F,EAAS,SAACj4H,GAAA,OAAcP,KAAKC,KAAK4/B,EAAGt/B,GAAKi4H,EAAA,EACxEx4H,KAAKC,KAAK+3H,GAAiBQ,GAC3Bx4H,KAAKC,KAAKi4H,GAAsBM,GAAA/6E,EAAAA,EAAA,GAEzB06E,IAAA,IACH3lD,gBAAiB,OAAAylB,EAAA,MAAAkgC,QAAA,EAAAA,GAAS3lD,gBAATylB,EAA2BwgC,EAAGjmD,gBAAkBgmD,EACjEvmD,uBAAwB,OAAA2uB,EAAA,MAAAu3B,QAAA,EAAAA,GAASlmD,uBAAT2uB,EAAkC63B,EAAGxmD,uBAAyBumD,EACtFtmD,qBAAsB,OAAAqgC,EAAA,MAAA4lB,QAAA,EAAAA,GAASjmD,qBAATqgC,EAAgCkmB,EAAGvmD,qBAAuBsmD,IAEpFx4H,KAAKC,MAAM,MAAAw3H,GAAAA,GAAiB,GAAKe,GACjCx4H,KAAKC,MAAM,MAAAy3H,GAAAA,GAAiB,GAAKc,GAAA,GAEtC,CAACN,GAAqBF,GAAgBP,GAAeC,GAAeY,GAASR,GAAaF,GAAYO,KAAAO,IAAAxnE,EAAAA,EAAAA,GAAAqnE,GAAA,GAnBlG1tC,GAAA6tC,GAAA,GAAW5tC,GAAA4tC,GAAA,GAAcruC,GAAAquC,GAAA,GAAmBpoD,GAAAooD,GAAA,GAAO9a,GAAA8a,GAAA,GAAa7a,GAAA6a,GAAA,GAqBjE9D,GAAoBpC,EAAAA,SAAQ,WAC9B,YAAyB,IAAlBmC,GACDhD,GAAAl0E,EAAAA,EAAA,GAEOk0E,IACAgD,GAAA,GAEd,CAACA,KAEEnB,GAAiB,MAAAD,EAAAA,EAAsBvtD,EAAO,IAAS,GAAKA,EAAO,IAAO,GAAKA,EAAO,IAAM,GAAK,GACjG2yD,GAA+B,SAAfrF,EAChBsF,GAAkBD,GAAgB,EAAI,EACtCE,QAAyC,IAAlBhE,GACvBlqC,IAA+C,KAA/B,MAAA4S,QAAA,EAAAA,GAAoB/b,QAE1Cs3C,GAAoDtG,EAAAA,UAAS,GAAAuG,IAAA7nE,EAAAA,EAAAA,GAAA4nE,GAAA,GAAtDE,GAAAD,GAAA,GAAiBE,GAAAF,GAAA,GAClB7Y,GAAa,MAAAsW,GAAAA,GAAgBwC,GAE7BpY,GAAsB4R,EAAAA,aAAY,gBACZ,IAApB8D,GACAA,KAEA2C,IAAmB,KAExB,CAAC3C,KAEE4C,GAA6D1G,EAAAA,SAAQ,WACvE,YAA8B,IAAvBiE,QAAmC,EAAY/E,GAAe+E,GAAoBmC,GAAA,GAC1F,CAACnC,GAAoBmC,KAClBlC,GAAgB,MAAAwC,GAAAA,GAA6BvG,EAE7CnR,GAA2BgR,EAAAA,OAAO,IAAI/Q,iBACtC+Q,EAAAA,WAAU,WACZ,OAAO,WAEH,MAAAhR,IAAAA,GAAoBviG,QAAQ+iG,OAAA,IAEjC,IAEH,IAAAmX,GCr0BG,SACH/E,EACA14B,EACAk9B,EACAQ,GAEA,IAAMC,EAA4CC,EAAAA,aAC9C,SAAA/4C,GAbR,IAAAhQ,EAcY,IAA+B,IAA3B6jD,EAAiC,CAGjC,IAFA,IAAMn7H,EAAuB,GAEpBklC,EAAIoiD,EAAKpiD,EAAGA,EAAIoiD,EAAKpiD,EAAIoiD,EAAKn1D,OAAQ+S,IAAK,CAEhD,IADA,IAAM8nC,EAAkB,GACftxC,EAAI4rD,EAAK5rD,EAAGA,EAAI4rD,EAAK5rD,EAAI4rD,EAAKp1D,MAAOwJ,IACtCA,EAAI,EACJsxC,EAAIvxE,KAAK,CACLy/E,KAAMvB,GAAawB,QACnBsb,cAAc,IAGlBzpB,EAAIvxE,KAAKgnG,EAAe,CAAC/mE,EAAGwJ,KAGpCllC,EAAOvE,KAAKuxE,EAAA,CAGhB,OAAOhtE,CAAA,CAEX,OAAO,OAAAs3E,EAAA,MAAA6jD,OAAA,EAAAA,EAAyB7zC,EAAM64C,EAAgB3V,SAA/ClzC,EAA0D,KAErE,CAAC6oD,EAAgB3V,OAAQ/nB,EAAgB04B,IAEvCmF,OACyB,IAA3BnF,EAAuCiF,OAAsC,EAC3EG,EAAoCF,EAAAA,aACtC,SAAA/4C,GACI,QAAmC,IAA/Bg5C,EAA0C,MAAO,GACrD,IAAME,EAAAh8E,EAAAA,EAAA,GACC8iC,GAAA,IACH5rD,EAAG4rD,EAAK5rD,EAAIikG,IAEhB,GAAIa,EAAQ9kG,EAAI,EAAG,CACf8kG,EAAQ9kG,EAAI,EACZ8kG,EAAQtuG,QACR,IAAM+S,EAAIq7F,EAA2BE,EAASL,EAAgB3V,QAE9D,MAAiB,oBAANvlF,EACP0+B,EAAArF,IAAA6D,MAAO,SAAAs+D,IAAA,OAAAniE,IAAAO,MAAA,SAAA6hE,GAAA,cAAAA,EAAA/jE,KAAA+jE,EAAAp9F,MAAA,cAAAo9F,EAAAp9F,KAAA,EAEI2B,IAAA,cAAAy7F,EAAA1/D,OAAA,SAAA0/D,EAAA7/D,KAAKh1D,KAAkB,SAAAmhE,GAAA,OAC1B,CAAEkO,KAAMvB,GAAawB,QAASsb,cAAc,IAAAh8D,OAAAkiD,EACzC3P,GAAA,6BAAA0zD,EAAAh+D,OAAA,GAAA+9D,EAAA,KAGRx7F,EAAEp5B,KAAI,SAAAmhE,GAAA,OAAQ,CAAEkO,KAAMvB,GAAawB,QAASsb,cAAc,IAAAh8D,OAAAkiD,EAAY3P,GAAA,IAEjF,OAAOszD,EAA2BE,EAASL,EAAgB3V,OAAA,GAE/D,CAAC2V,EAAgB3V,OAAQ8V,EAA4BX,IAKzD,MAAO,MAFiD,IAA3BxE,EAAuCoF,OAA8B,EAEpED,EAAA,CDswB4BK,CACtDxF,GACA14B,EACAk9B,GACApX,GAAmBviG,SAAA46G,IAAA3oE,EAAAA,EAAAA,GAAAioE,GAAA,GAJhB1Y,GAAAoZ,GAAA,GAAsBC,GAAAD,GAAA,GAOvB7/C,GAAqBw4C,EAAAA,aACvB,SAACvmD,EAAMsP,EAAUw+C,GACb,QAAuB,IAAnBjF,GAA8B,OAAO,EACzC,IAAMnxE,EAAa,CAACsoB,EAAK,GAAK2sD,GAAiB3sD,EAAK,IACpD,OAAO,MAAA6oD,QAAA,EAAAA,GAAiBnxE,EAAM43B,EAAUw+C,EAAA,GAE5C,CAACnB,GAAiB9D,KAGhBkF,GAAsCxH,EAAAA,OAAkCiE,IACxEwD,GAAyBzH,EAAAA,aAC3B,SAACt3C,EAAuBg/C,GAChBA,IACAh/C,E7Bp1BT,SACHA,EACAulC,EACAmY,EACA5E,EACAoF,GAhBJ,IAAA7oD,EAAAC,EAkBU2pD,EAAUj/C,EAChB,GAA0B,iBAAtB84C,QAA2D,IAAnB94C,EAAOj8D,QAAuB,OAAOi8D,EACjF,QAA6B,IAAzBulC,EAAoC,CACpC,IAAI2Z,GAAW,EACf,EAAG,CACC,QAAwB,KAApB,MAAAl/C,OAAA,EAAAA,EAAQj8D,SAAuB,MACnC,IAAMif,EAAe,OAAAqyC,EAAA2K,EAAOj8D,cAAP,EAAAsxD,EAAgB9jE,MAC/Bu1D,EAAiC,GACvC,GAAI9jC,EAAE/S,MAAQ,EAAG,CACb,IAAMkvG,EAAY5Z,EACd,CACI9rF,EAAGuJ,EAAEvJ,EACLwJ,EAAGD,EAAEC,EACLhT,MAAO,EACPC,OAAQ8S,EAAE9S,QAEdguG,EAAgB3V,QAGpB,GAAyB,oBAAd4W,EACP,OAAOF,EAGXn4D,EAAMttE,KAAAI,MAANktE,EAAA4T,EAAcykD,IAEd,IAAMC,EAAa7Z,EACf,CACI9rF,EAAGuJ,EAAEvJ,EAAIuJ,EAAE/S,MAAQ,EACnBgT,EAAGD,EAAEC,EACLhT,MAAO,EACPC,OAAQ8S,EAAE9S,QAEdguG,EAAgB3V,QAGpB,GAA0B,oBAAf6W,EACP,OAAOH,EAGXn4D,EAAMttE,KAAAI,MAANktE,EAAA4T,EAAc0kD,GAAA,KACX,CACH,IAAMC,EAAS9Z,EACX,CACI9rF,EAAGuJ,EAAEvJ,EACLwJ,EAAGD,EAAEC,EACLhT,MAAO+S,EAAE/S,MACTC,OAAQ8S,EAAE9S,QAEdguG,EAAgB3V,QAEpB,GAAsB,oBAAX8W,EACP,OAAOJ,EAEXn4D,EAAMttE,KAAAI,MAANktE,EAAA4T,EAAc2kD,GAAA,CAKlB,IAFA,IAAI7oG,EAAOwM,EAAEvJ,EAAIikG,EACbx4E,EAAQliB,EAAEvJ,EAAIuJ,EAAE/S,MAAQ,EAAIytG,EAChC4B,EAAA,EAAAC,EAAkBz4D,EAAAw4D,EAAAC,EAAAlmI,OAAAimI,IAAO,CAAzB,IACuBE,EADZC,EAAA99D,EAAA49D,EAAAD,IACY,IAAnB,IAAAG,EAAArlE,MAAAolE,EAAAC,EAAAp6H,KAAAygC,MAAwB,KAAbirC,EAAAyuD,EAAA5hI,WACW,IAAdmzE,EAAK8U,OACTrvD,EAAO1xB,KAAKsJ,IAAI2iE,EAAK8U,KAAK,GAAIrvD,GAC9B0uB,EAAQpgD,KAAKG,IAAI8rE,EAAK8U,KAAK,GAAI3gC,GAAA,QAAAryC,GAAA4sH,EAAAh4H,EAAAoL,EAAA,SAAA4sH,EAAAnqH,GAAA,EAInCkhB,IAASwM,EAAEvJ,EAAIikG,GAAmBx4E,IAAUliB,EAAEvJ,EAAIuJ,EAAE/S,MAAQ,EAAIytG,EAChEwB,GAAW,EAEXl/C,EAAS,CACLj8D,QAAS,CACLgtD,KAAM,OAAAuE,EAAA0K,EAAOj8D,QAAQgtD,MAAfuE,EAAuB,CAAC,EAAG,GACjC/jE,MAAO,CACHkoB,EAAGjD,EAAOknG,EACVz6F,EAAGD,EAAEC,EACLhT,MAAOi1B,EAAQ1uB,EAAO,EACtBtG,OAAQ8S,EAAE9S,QAEd2yE,WAAY7iB,EAAOj8D,QAAQ8+E,YAE/BtlF,QAASyiE,EAAOziE,QAChButD,KAAMkV,EAAOlV,KAAA,QAGfo0D,EAAA,CAEd,OAAOl/C,CAAA,C6BuvBc0/C,CACL1/C,EACAulC,GACAmY,GACA5E,EACAxS,GAAmBviG,eAGG,IAA1B03G,IACAqD,GAA8B/6G,QAAUyyG,GAAex2C,GAAS09C,IAChEjC,GAAsBqD,GAA8B/6G,UAEpD2zG,EAAsB13C,EAAA,GAG9B,CAACy7C,GAAuBlW,GAAsBmY,GAAiB5E,IAG7D/c,GAAiB/3B,GACnBk4C,GACM5E,EAAAA,aACF,SAAClrE,EAAGzyB,EAAGgmG,EAAKhhG,GACR,MAAAu9F,IAAAA,GAAmB3D,EAAUoH,EAAMjC,IAAkB/jG,EAAGgmG,EAAMjC,GAAiB/+F,EAAA,GAEnF,CAACu9F,GAAkBwB,GAAiBnF,KAItCtc,GAAoBj4B,GACtBm4C,GACM7E,EAAAA,aACF,SAAClrE,EAAGzyB,EAAGgmG,EAAKhhG,GACR,MAAAw9F,IAAAA,GAAsB5D,EAAUoH,EAAMjC,IAAkB/jG,EAAGgmG,EAAMjC,GAAiB/+F,EAAA,GAEtF,CAACw9F,GAAqBuB,GAAiBnF,KAIzCvc,GAAsBh4B,GACxBo4C,GACM9E,EAAAA,aACF,SAAClrE,EAAGzyB,EAAGgmG,EAAKhhG,GACR,MAAAy9F,IAAAA,GAAwB7D,EAAUoH,EAAMjC,IAAkB/jG,EAAGgmG,EAAMjC,GAAiB/+F,EAAA,GAExF,CAACy9F,GAAuBsB,GAAiBnF,KAI3CqH,GAAa57C,GACf20C,EACMrB,EAAAA,aACF,SAAAnoH,GAj5BZ,IAAA4tF,EAk5BgB,OAAO,OAAAA,EAAA,MAAA47B,OAAA,EAAAA,EAAAp2E,EAAAA,EAAA,GAAoBpzC,GAAA,IAAM0pF,YAAa1pF,EAAK0pF,YAAc6kC,QAA1D3gC,CAAgF,GAE3F,CAAC47B,EAAc+E,MAIjBxP,GAAiBoJ,EAAAA,aACnB,SAAAuI,GACI,QAAmB,IAAflF,GAA0B,CAC1B,IAAM58H,EAAS48H,GAAWnE,GAAeqJ,GAAMnC,KAC/C,MAAsB,mBAAX3/H,EACAA,EAEJy4H,GAAez4H,EAAQ2/H,GAAA,CAElC,OAAO,IAEX,CAAC/C,GAAY+C,KAGjBoC,GE95BG,SACHtE,EACAuD,EACAgB,EACAC,EACAC,EACAjG,GA2GA,MAAO,CAxGYkG,EAAAA,aACf,SACItiI,EACAohI,EACA1rC,EACA6sC,GAvBZ,IAAA9qD,EAAAC,EAyBiC,SAAhB0kD,GAA0C,eAAhBA,QAA2C,IAAVp8H,IAC5DA,EAAA2kD,EAAAA,EAAA,GACO3kD,GAAA,IACH2T,MAAO,CACHkoB,EAAG77B,EAAMmzE,KAAK,GACd9tC,EAAGrlC,EAAMmzE,KAAK,GACd9gD,MAAO,EACPC,OAAQ,MAIpB,IAAMkwG,EAAiC,UAAlBL,IAA8BzsC,GAAsB,SAAZ6sC,GACvDE,EAAyC,UAAnBL,GAA8BI,EACpDE,EAAmC,UAAhBL,GAA2BG,EAChDpgD,EAAwB,CACxBj8D,aACc,IAAVnmB,OACM,EAAA2kD,EAAAA,EAAA,GAEO3kD,GAAA,IACHilG,WAAwB,SAAZs9B,GAAqB,OAAA7qD,EAAA,OAAAD,EAAAmmD,EAAcz3G,cAAd,EAAAsxD,EAAuBwtB,YAAvBvtB,EAA0C,KAEzF/3D,QAAS8iH,EAAsB7E,EAAcj+G,QAAU2+D,GAAiBC,QACxErR,KAAMw1D,EAAmB9E,EAAc1wD,KAAOoR,GAAiBC,SAG9CmX,IAA2B,eAAhB0mC,GAAgD,eAAhBA,SACzB,IAAnBh6C,EAAOj8D,cAAmD,IAA1By3G,EAAcz3G,UAC9Di8D,EAAAz9B,EAAAA,EAAA,GACOy9B,GAAA,IACHj8D,QAAAw+B,EAAAA,EAAA,GACOy9B,EAAOj8D,SAAA,IACV8+E,WAAA,GAAArqE,OAAAkiD,EAAgB8gD,EAAcz3G,QAAQ8+E,YAAA,CAAY24B,EAAcz3G,QAAQxS,aAIpFwtH,EAAiB/+C,EAAQg/C,EAAA,GAE7B,CAACgB,EAAgBxE,EAAeuE,EAAe/F,EAAaiG,EAAalB,IAGrDmB,EAAAA,aACpB,SAACK,EAAuCjtC,EAAoCktC,GAKxE,IAAIxgD,EACJ,GALAugD,EAAU,MAAAA,EAAAA,EAAW/E,EAAc1wD,UACpB,IAAXwoB,IACAitC,EAAUA,EAAQ3jI,IAAI02F,IAGN,cAAhB2sC,GAA+BM,EAAQlnI,OAAS,EAChD2mF,EAAS,CACLj8D,aAAS,EACTxG,QAAS2+D,GAAiBC,QAC1BrR,KAAMy1D,OAEP,CACH,IACME,EAAcD,GAAiC,UAAnBR,EAElChgD,EAAS,CACLj8D,QAJey8G,GAAgC,UAAlBT,EAESvE,EAAcz3G,aAA1B,EAG1BxG,QAASkjH,EAAcjF,EAAcj+G,QAAU2+D,GAAiBC,QAChErR,KAAMy1D,EAAA,CAGdxB,EAAiB/+C,GAAQ,KAE7B,CAACggD,EAAgBxE,EAAeuE,EAAeE,EAAalB,IAGrCmB,EAAAA,aACvB,SAACQ,EAAuCptC,EAAoCktC,GAKxE,IAAIxgD,EACJ,GALA0gD,EAAU,MAAAA,EAAAA,EAAWlF,EAAcj+G,aACpB,IAAX+1E,IACAotC,EAAUA,EAAQ9jI,IAAI02F,IAGH,cAAnB0sC,GAAkCU,EAAQrnI,OAAS,EACnD2mF,EAAS,CACLj8D,aAAS,EACT+mD,KAAMoR,GAAiBC,QACvB5+D,QAASmjH,OAEV,CACH,IACMC,EAAWH,GAA8B,UAAhBP,EAE/BjgD,EAAS,CACLj8D,QAJey8G,GAAgC,UAAlBT,EAESvE,EAAcz3G,aAA1B,EAG1B+mD,KAAM61D,EAAWnF,EAAc1wD,KAAOoR,GAAiBC,QACvD5+D,QAASmjH,EAAA,CAGjB3B,EAAiB/+C,GAAQ,KAE7B,CAACggD,EAAgBxE,EAAeuE,EAAeE,EAAalB,IAG3B,CF6yBqB6B,CACtDpF,GACAuD,GACAzE,GACAE,GACAE,GACAV,IAAA6G,IAAA7qE,EAAAA,EAAAA,GAAA8pE,GAAA,GANGgB,GAAAD,GAAA,GAAYE,GAAAF,GAAA,GAAiBG,GAAAH,GAAA,GAS9BI,GAAoB3J,EAAAA,SAAQ,WAC9B,OAAA/0E,EAAAA,EAAA,GAAYg1B,MAAyBnC,GAAA,GACtC,CAACA,KAEJ8rD,GAA0C5J,EAAAA,SAA4C,CAAC,GAAI,GAAI,IAAA6J,IAAAnrE,EAAAA,EAAAA,GAAAkrE,GAAA,GAAxF1e,GAAA2e,GAAA,GAAYC,GAAAD,GAAA,GAEbpiD,GAA2Fu4C,EAAAA,aAC7F,SAA0BvmD,GACtB,OAAIA,EAAKkI,OAASvB,GAAaqC,OACpBs8C,GAActlD,EAAKkI,MAEvB,MAAAojD,QAAA,EAAAA,GAAqB5sE,MAAK,SAAAh2B,GAAA,OAAKA,EAAE4nG,QAAQtwD,EAAA,MAEpD,CAACsrD,KAGC9+G,G/Bl4BH,SACHA,EACAutD,EACAy6C,EACAl9D,EACA+zD,EACAD,EACA/mC,EACA2J,EACAm/C,GAEA,IAAMoD,EAAgBC,EAAAA,OAAOz2D,GACvB02D,EAAgCD,EAAAA,OAAOhc,GACvCkc,EAAiBF,EAAAA,OAAOnsD,GAC9BksD,EAAQv9G,QAAU+mD,EAClB02D,EAAwBz9G,QAAUwhG,EAClCkc,EAAS19G,QAAUqxD,EAEnB,IAAAssD,EAAoBH,EAAAA,UAAS,WACzB,QAAsB,WAAX1sH,OAAsB,OAAO,KACxC,IAAMihG,EAAYhhG,SAASC,cAAc,UAKzC,OAJA+gG,EAAUl2F,MAAe,QAAI,OAC7Bk2F,EAAUl2F,MAAe,QAAI,IAC7Bk2F,EAAUl2F,MAAgB,SAAI,QAC9B9K,SAAS2gB,gBAAgB69D,OAAOwiB,GACzBA,EAAU3oB,WAAW,KAAM,CAAEqF,OAAO,OAPxC7K,GAOwC3xB,EAAAA,EAAAA,GAAA0rE,EAAA,GAPxC,GAUDC,EAAgBJ,EAAAA,OAA+B,CAAC,GAEhDK,EAAoBL,EAAAA,SAC1BM,EAA+CN,EAAAA,WAAAO,GAAA9rE,EAAAA,EAAAA,GAAA6rE,EAAA,GAAxC1X,EAAA2X,EAAA,GAAcC,EAAAD,EAAA,GAiDrB,OA/CMP,EAAAA,iBAAgB,WAClB,IAAMS,EAAWR,EAAwBz9G,QACzC,QAAiB,IAAbi+G,IAA0BzkH,EAAQwzG,MAAMr4C,IAA5C,CACA,IAAIupD,EAAcn9H,KAAKG,IAAI,EAAG,GAAKH,KAAKurD,MAAM9yC,EAAQlkB,OAAS,MAC3D6oI,EAAW,EACXD,EAAcX,EAAQv9G,SAAWk+G,EAAc,IAC/CA,IACAC,EAAW,GAGf,IAAMC,EAAc,CAChB1oG,EAAG,EACHwJ,EAAG,EACHhT,MAAO1S,EAAQlkB,OACf62B,OAAQprB,KAAKsJ,IAAIkzH,EAAQv9G,QAASk+G,IAGhCG,EAAkB,CACpB3oG,EAAG,EACHwJ,EAAGq+F,EAAQv9G,QAAU,EACrBkM,MAAO1S,EAAQlkB,OACf62B,OAAQ,GAEN6mC,EAAA,eAAAsrE,EAAA3gE,EAAArF,IAAA6D,MAAK,SAAAoiE,IAAA,IAAAC,EAAAC,EAAAC,EAAA,OAAApmE,IAAAO,MAAA,SAAA8lE,GAAA,cAAAA,EAAAhoE,KAAAgoE,EAAArhG,MAAA,OAEkF,GADnFkhG,EAAYP,EAASG,EAAajE,EAAgB3V,QAClDia,EAAgBN,EAAW,EAAIF,EAASI,EAAiBlE,EAAgB3V,aAAU,EAGhE,kBAAdga,EAAc,CAAAG,EAAArhG,KAAA,QACrBohG,EAAQF,EAAAG,EAAArhG,KAAA,sBAAAqhG,EAAArhG,KAAA,EAEMs3C,GAAkB4pD,GAAA,OAAhCE,EAAAC,EAAA9jE,KAAA,eAEkB,IAAlB4jE,EAAkB,CAAAE,EAAArhG,KAAA,YAEW,kBAAlBmhG,EAAkB,CAAAE,EAAArhG,KAAA,SACzBohG,EAAA,GAAAjqG,OAAAkiD,EAAY+nD,GAAA/nD,EAAU8nD,IAAAE,EAAArhG,KAAA,iBAEV,OAFUqhG,EAAAzmD,GAAA,GAAAymD,EAAAja,GAAA/tC,EAEV+nD,GAAAC,EAAAha,GAAAhuC,EAAAgoD,EAAArhG,KAAA,GAAiBs3C,GAAkB6pD,GAAA,QAAAE,EAAAC,GAAAD,EAAA9jE,KAAA8jE,EAAAE,IAAA,EAAAF,EAAAha,IAAAga,EAAAC,IAA/CF,EAAAC,EAAAzmD,GAAAzjD,OAAAt+B,KAAAwoI,EAAAzmD,GAAAymD,EAAAja,GAAAia,EAAAE,IAAA,QAGRhB,EAAY79G,QAAUxG,EACtBwkH,EAAiBU,GAAA,yBAAAC,EAAAjiE,OAAA,GAAA6hE,EAAA,uBAnBf,OAAAD,EAAAzoI,MAAA,KAAAR,UAAA,KAqBD29D,GA1CiE,CA0CjE,GACN,CAACmnE,EAAgB3V,OAAQhrG,IAEfgkH,EAAAA,SAAQ,WA9IzB,IAAAlsD,EAsMoCwtD,EAJxB9kI,EAlDIwf,EAAQwzG,MAAMr4C,IACPn7D,EAGC,OAARoqE,EACOpqE,EAAQ3T,KAAI,SAAA0K,GACf,OAAIokE,GAAkBpkE,GAAWA,EAEjCiuC,EAAAA,EAAA,GACOjuC,GAAA,IACH2b,MAAO+5F,IAAA,KAKnBriC,EAAIC,KAAA,GAAApvD,OAAUipG,EAAS19G,QAAQmzD,cAAA,KAAA1+C,OAAiBipG,EAAS19G,QAAQozD,YAE1D55D,EAAQ3T,KAAI,SAAC0K,EAAG41G,GACnB,GAAIxxC,GAAkBpkE,GAAI,OAAOA,EAEjC,QAA8B,IAA1BqtH,EAAQ59G,QAAQzP,EAAEwV,IAClB,OAAAy4B,EAAAA,EAAA,GACOjuC,GAAA,IACH2b,MAAO0xG,EAAQ59G,QAAQzP,EAAEwV,MAIjC,QAAqB,IAAjBqgG,GAA8ByX,EAAY79G,UAAYxG,QAAoB,IAATjJ,EAAEwV,GACnE,OAAAy4B,EAAAA,EAAA,GACOjuC,GAAA,IACH2b,MAAO+5F,KAIf,IAAMhnF,EAAIinF,GACNtiC,EACAvS,EACA9gE,EACA41G,EACAC,EACA/N,EACAD,GACA,EACAp9B,GAGJ,OADA4iD,EAAQ59G,QAAQzP,EAAEwV,IAAMkZ,EAAE/S,MACnB+S,CAAA,KAKX8/F,EAAa,EACbC,EAAY,EACVC,EAAuB,GAAAC,EAAAthE,EACR5jE,EAAO/C,WAAA,IAA5B,IAAAioI,EAAA7oE,MAAAyoE,EAAAI,EAAA59H,KAAAygC,MAAuC,KAAAo9F,GAAAltE,EAAAA,EAAAA,GAAA6sE,EAAAjlI,MAAA,GAA3BzE,EAAA+pI,EAAA,GAAG5uH,EAAA4uH,EAAA,GACXJ,GAAcxuH,EAAE2b,WACD,IAAX3b,EAAE6uH,MAAsB7uH,EAAE6uH,KAAO,IACjCJ,GAAazuH,EAAE6uH,KACfH,EAAWxpI,KAAKL,GAAA,QAAA0Z,GAAAowH,EAAAx7H,EAAAoL,EAAA,SAAAowH,EAAA3tH,GAAA,CAGxB,GAAIwtH,EAAaz6E,GAAe26E,EAAW3pI,OAAS,EAAG,CAInD,IAHA,IAAM+pI,EAAA1oD,EAAgB38E,GAChBslI,EAAQh7E,EAAcy6E,EACxBQ,EAAYD,EACP96F,EAAK,EAAGA,EAAKy6F,EAAW3pI,OAAQkvC,IAAM,CAC3C,IAAMpvC,EAAI6pI,EAAWz6F,GACfg7F,GAAY,OAAAluD,EAAAt3E,EAAO5E,GAAGgqI,MAAV9tD,EAAkB,GAAK0tD,EACnC3nD,EACF7yC,IAAOy6F,EAAW3pI,OAAS,EAAIiqI,EAAYx+H,KAAKsJ,IAAIk1H,EAAWx+H,KAAKurD,MAAMgzE,EAAQE,IACtFH,EAAUjqI,GAAAopD,EAAAA,EAAA,GACHxkD,EAAO5E,IAAA,IACVggH,WAAY/9B,EACZnrD,MAAOlyB,EAAO5E,GAAG82B,MAAQmrD,IAE7BkoD,GAAaloD,CAAA,CAEjBr9E,EAASqlI,CAAA,CAEb,OAAOrlI,CAAA,GACR,CAACsqD,EAAa9qC,EAASoqE,EAAKwiC,EAAc/0C,EAAOgnC,EAAgBD,EAAgBp9B,GAAA,C+BguBpEykD,CACZjL,EACAztD,EACA8zD,GACApc,GAAW,IAA0B,IAApBkb,GAAwB,EAAIpF,IAAkB9V,GAAW,GAC1EpG,GACA2f,GACAkF,GACAliD,GACAunC,GAAmBviG,SAGjBk4E,GAAqBq7B,EAAAA,SAAQ,WAC/B,OAAO/5G,GAAQu+C,MAAK,SAAAxnD,GAAA,YAAiB,IAAZA,EAAEy7E,KAAU,MACtC,CAACxyE,KAEE6xE,GAAoB6M,GAAerM,GAAeT,GAAoBS,GAEtE6zC,GAAkBjI,GAAc1wD,KAAKzxE,OACrCqqI,GACa,SAAftL,EACM,GACoB,IAApBqL,GACAjrD,GACAirD,KAAoB34D,EACpByN,GACAE,GAEJkrD,GAAoBrM,EAAAA,SAAQ,WAC9B,MAAmB,SAAfc,EAA8B76G,GAC3B,CACH,CACIkqD,MAAOi8D,GACPzzG,MAAOqoG,GACPp/B,UAAM,EACND,SAAS,EACTr5E,MAAO,SACPu9E,cAAeg+B,KAAA3iG,OAAAkiD,EAEhBn9D,IAAA,GAER,CAACA,GAAS+6G,GAAgBF,EAAYsL,GAAiBvI,KAE1DyI,GAAgDtM,EAAAA,SAAQ,WACpD,MAAO,MACe,IAAlB2E,IAAoD,kBAAdtsC,GAAyB7qF,KAAKurD,MAAM4rE,GAAgBtsC,IAAa,OACrF,IAAlBssC,IAAoD,kBAAdtsC,IAA2BssC,GAAgBtsC,GAAa,KAEnG,CAACssC,GAAetsC,KAAAk0C,IAAA7tE,EAAAA,EAAAA,GAAA4tE,GAAA,GALZE,GAAAD,GAAA,GAAgBE,GAAAF,GAAA,GAkBjBG,GAAyB1M,EAAAA,OAAsB,CACjDpnG,OAAQ,EACRD,MAAO,EACPwJ,EAAG,EACHwJ,EAAG,IAEDghG,GAA2B3M,EAAAA,SAC7B,WAngCR,IAAAv6B,EAAA2I,EAmgCe,OACHjsE,EAAGuqG,GAAiBjgH,QAAQ0V,EAC5BwJ,EAAG6gG,GACH7zG,MAAO,OAAA8sE,EAAAinC,GAAiBjgH,QAAQkM,OAAzB8sE,EAAkC,EACzC7sE,OAAQ,OAAAw1E,EAAAs+B,GAAiBjgH,QAAQmM,QAAzBw1E,EAAmC,EAE3ClO,GAAIusC,MAER,CAACA,GAAiBD,KAGhBI,GAAwB5M,EAAAA,QAAO,GAErC6M,GhD31BG,SAAsCC,GAEzC,IAAMC,EAAsBvgD,EAAAA,OAA8B,CAAC3H,GAAOioD,IAC9DC,EAActgH,QAAQ,KAAOqgH,IAE7BC,EAActgH,QAAQ,GAAKqgH,GAE/BC,EAActgH,QAAQ,GAAKqgH,EAE3B,IAAAE,EAAgCxgD,EAAAA,SAASsgD,GAAAG,GAAAvuE,EAAAA,EAAAA,GAAAsuE,EAAA,GAAlChgG,EAAAigG,EAAA,GAAOrgF,EAAAqgF,EAAA,GAEdC,EAA8B1gD,EAAAA,WAArB2gD,GAAqBzuE,EAAAA,EAAAA,GAAAwuE,EAAA,GAArB,GACHE,EAAsB5gD,EAAAA,aAA6B,SAAA6gD,GAKrD,IAAMvqE,EAAIiqE,EAActgH,QAAQ,GAC5Bq2C,IAAM+hB,KACNwoD,EAAmB,oBAAPA,EAAqBA,EAAoBvqE,GAAKuqE,KAC/CvqE,IAEXA,IAAM+hB,IAAOsoD,EAAY,CAAC,GAC9BvgF,GAAS,SAAAooE,GACL,MAAkB,oBAAPqY,EACCA,EAAoBvqE,IAAM+hB,GAAQmwC,EAAKlyD,GAE5CuqE,CAAA,IAEXN,EAActgH,QAAQ,GAAKo4D,GAAA,GAC5B,IAEGyoD,EAAgB9gD,EAAAA,aAAY,WAC9BugD,EAActgH,QAAQ,GAAKo4D,GAC3BsoD,EAAY,CAAC,EAAD,GACb,IAEH,MAAO,CAACJ,EAActgH,QAAQ,KAAOo4D,GAAQ73C,EAAQ+/F,EAActgH,QAAQ,GAAI2gH,EAAeE,EAAA,CgDszB7CC,CAAyCZ,IAAAa,IAAA9uE,EAAAA,EAAAA,GAAAmuE,GAAA,GAAnFY,GAAAD,GAAA,GAAeE,GAAAF,GAAA,GAAkBG,GAAAH,GAAA,GACxCd,GAAiBjgH,QAAUghH,GAE3B,IAAMG,IAAgB,OAAA7vD,EAAA0vD,GAAc70G,QAAdmlD,EAAwB,GAAK,EAC7CiiD,EAAAA,iBAAgB,WAClB,QAAsB,IAAlB2E,IAAqD,OAAtBnd,EAAU/6F,SAAoBmhH,GAAc,CAC3E,GAAIpmB,EAAU/6F,QAAQ4S,YAAcslG,GAAe,OACnDnd,EAAU/6F,QAAQ4S,UAAYslG,GAC1Bnd,EAAU/6F,QAAQ4S,YAAcslG,IAChCgJ,KAEJf,GAAgBngH,SAAU,KAE/B,CAACk4G,GAAeiJ,GAAcD,KAEjC,IAAME,IAAgB,OAAA7vD,EAAAyvD,GAAc90G,OAAdqlD,EAAuB,GAAK,EAC5CgiD,EAAAA,iBAAgB,WAClB,QAAsB,IAAlB0E,IAAqD,OAAtBld,EAAU/6F,SAAoBohH,GAAc,CAC3E,GAAIrmB,EAAU/6F,QAAQ0S,aAAeulG,GAAe,OACpDld,EAAU/6F,QAAQ0S,WAAaulG,GAC3Bld,EAAU/6F,QAAQ0S,aAAeulG,IACjCiJ,KAEJf,GAAgBngH,SAAU,KAE/B,CAACi4G,GAAemJ,GAAcF,KAEjC,IAAMv+C,GAAcq+C,GAActrG,EAAIikG,GAChCruC,GAAc01C,GAAc9hG,EAE5Bi5E,GAAgBob,EAAAA,OAA2B,MAE3C1gG,GAAc0gG,EAAAA,aAAY,SAAC8N,GAhjCrC,IAAAroC,GAijC0B,IAAdqoC,EACA,OAAAroC,EAAAmf,GAAQn4F,UAARg5E,EAAiBnmE,QAEjB/hB,OAAOqpE,uBAAsB,WApjCzC,IAAAyjB,EAqjCgB,OAAAA,EAAAua,GAAQn4F,UAAR49E,EAAiB/qE,OAAA,MAG1B,IAEGyuG,GAAc1H,GAAuB7yD,EAAO,EAAIA,EAEhDw6D,GAA6BhO,EAAAA,aAC/B,SAACxtD,GACG,IAAMy7D,EACkB,IAApB7H,GACM5zD,EACAA,EAAMlgE,KAAI,SAAA6vB,GAAA,OAAA8oB,EAAAA,EAAA,GACH9oB,GAAA,IACH/mB,SAAU,CAAC+mB,EAAE/mB,SAAS,GAAKgrH,GAAiBjkG,EAAE/mB,SAAS,SAE/DswB,EAAI,MAAAs2F,QAAA,EAAAA,GAAgBiM,GAE1B,IAAU,IAANviG,EAAY,KACIwiG,EADJC,EAAA9jE,EACI4jE,GAAA,IAAhB,IAAAE,EAAArrE,MAAAorE,EAAAC,EAAApgI,KAAAygC,MAA8B,KAAnB3sC,EAAAqsI,EAAA5nI,MAAmB,MAAAy7H,IAAAA,GAAelgI,EAAEuZ,SAAUvZ,EAAEyE,MAAA,QAAAiV,GAAA4yH,EAAAh+H,EAAAoL,EAAA,SAAA4yH,EAAAnwH,GAAA,EAG/D,OAAO0tB,CAAA,GAEX,CAACq2F,GAAcC,GAAeoE,KAG5B78B,GAAyBy2B,EAAAA,SAAQ,WACnC,QAA2B,IAAvBuC,GACJ,OAAwB,IAApB6D,GAA8B7D,GAE3BA,GACFjwH,KAAI,SAAAo5B,GACD,IAAM0iG,EAAW/B,GAAYtqI,OAAS2pC,EAAEzxB,MAAMkoB,EAAIikG,GAClD,KAAIgI,GAAY,GAChB,MAAO,CACHtzG,MAAO4Q,EAAE5Q,MACT7gB,MAAAgxC,EAAAA,EAAA,GACOvf,EAAEzxB,OAAA,IACLkoB,EAAGuJ,EAAEzxB,MAAMkoB,EAAIikG,GACfztG,MAAOnrB,KAAKsJ,IAAIs3H,EAAU1iG,EAAEzxB,MAAM0e,SAEtCrQ,MAAOojB,EAAEpjB,MAAA,IAGhByiC,QAAO,SAAA5oB,GAAA,YAAW,IAANA,CAAM,MACxB,CAACogG,GAAoB8J,GAAYtqI,OAAQqkI,KAEtCiI,GAAuBrO,EAAAA,OAAOqM,IACpCgC,GAAe5hH,QAAU4/G,GACzB,IAAMhmB,GAA8B2Z,EAAAA,aAChC,SAAAsO,GAAqC,IAxmC7C7oC,EAAA2I,EAAA2R,EAAAC,EAAAt1C,EAAA8pC,EAAAC,EAAAC,EAAA/1C,EAAA4vE,EAwmC6CC,GAAA9vE,EAAAA,EAAAA,GAAA4vE,EAAA,GAAnCvlH,EAAAylH,EAAA,GAAK/6D,EAAA+6D,EAAA,GACGC,EAAapI,IAAwB5yD,IAAQs6D,GAAc,EAEjE,GAD+B,IAARhlH,GAAao9G,GAEhC,OAAIsI,EACO5O,GAEJ,CACHl+C,KAAMd,GAAkBqB,OACxBgb,cAAc,EACdr6E,SAA+C,KAAtC,MAAAqhH,QAAA,EAAAA,GAAe1wD,KAAKwQ,SAASvQ,IACtCooC,WAA2B,qBAAfilB,EAAoC,SAAWA,EAC3DrtD,IAAKmwD,GAAsBnwD,EAC3B8oD,gBAA2B,IAAfxX,IAAe,GAExB0pB,EAAY,CAEnB,IAEMC,EAFU3lH,IAAQq9G,IAEe,OAAA3gC,EAAA,MAAAsF,QAAA,EAAAA,GAAoBpmC,MAApB8gC,EAAiC,GAClEzoF,EAAIqxH,GAAe5hH,QAAQ1D,GAEjC,IAAwC,KAApC,OAAAqlF,EAAA,MAAApxF,OAAA,EAAAA,EAAG+tF,yBAAH,EAAAqD,EAAuBnqF,UACvB,OAAO47G,GAEP,IAAMl7D,EAAO,OAAAq7C,EAAA,OAAAD,EAAA,MAAA/iG,OAAA,EAAAA,EAAG+tF,yBAAH,EAAAgV,EAAuBp7C,MAAvBq7C,EAA+B0uB,EACtC9sC,EAAO,OAAA4S,EAAA,OAAA9pC,EAAA,MAAA1tD,OAAA,EAAAA,EAAG+tF,yBAAH,EAAArgC,EAAuBikE,SAAvBn6B,EAAkC,MAAAzJ,QAAA,EAAAA,GAAoB4jC,QACnE,MAAO,CACHhtD,KAAMd,GAAkBsB,OACxBxd,KAAAA,EACAu4B,cAAc,EACd0E,KAAAA,EAAA,CAIR,IAAMgtC,EAAW7lH,EAAMq9G,GACvB,IAA6B,KAAzB,MAAApvB,QAAA,EAAAA,GAAc63B,QAAiB,CAC/B,IAAMC,EAAKpC,GAAiBjgH,QACtBsiH,EACFD,EAAG3sG,EAAIysG,GAAYA,EAAWE,EAAG3sG,EAAI2sG,EAAGn2G,OAASm2G,EAAGnjG,EAAI8nC,GAAOA,EAAMq7D,EAAGnjG,EAAImjG,EAAGl2G,OAC7Eo7B,EAAa46E,KAAa,OAAAl6B,EAAA,OAAAD,EAAAq6B,EAAGE,aAAH,EAAAv6B,EAAW1wF,eAAX,EAAA2wF,EAAsB,KAAMjhC,KAAQ,OAAA9U,EAAAmwE,EAAGE,aAAH,EAAArwE,EAAW56C,SAAS,IAClFkrH,OAC0B,KAA5B,OAAAV,EAAAO,EAAGE,aAAH,EAAAT,EAAWW,eACXJ,EAAGE,OAAOE,aAAa/sG,EAAIysG,GAC3BA,EAAWE,EAAGE,OAAOE,aAAa/sG,EAAI2sG,EAAGE,OAAOE,aAAav2G,OAC7Dm2G,EAAGE,OAAOE,aAAavjG,EAAI8nC,GAC3BA,EAAMq7D,EAAGE,OAAOE,aAAavjG,EAAImjG,EAAGE,OAAOE,aAAat2G,OAC5D,GAAIm2G,IAAsB/6E,GAAci7E,EACpC,MAAO,CACHttD,KAAMvB,GAAawB,QACnBsb,cAAc,GAI1B,IAAIz2F,EAASyiG,EAAe,CAAC0lC,EAAUn7D,IAOvC,OANwB,IAApB2yD,SAAyC,IAAhB3/H,EAAO8nF,OAChC9nF,EAAAwkD,EAAAA,EAAA,GACOxkD,GAAA,IACH8nF,KAAM,CAAC9nF,EAAO8nF,KAAK,GAAK63C,GAAiB3/H,EAAO8nF,KAAK,GAAK63C,OAG3D3/H,CAAA,GAGf,CACI4/H,GACA0H,GACA5H,GACA,MAAAjC,QAAA,EAAAA,GAAe1wD,KACfuxC,GACA+b,EACAsF,GACA,MAAAr7B,QAAA,EAAAA,GAAoBpmC,KACpB,MAAAomC,QAAA,EAAAA,GAAoB4jC,QACpB,MAAA33B,QAAA,EAAAA,GAAc63B,OACd3lC,EACA06B,KAIFuL,GAA+BnP,EAAAA,aACjC,SAAAvnC,GAzrCR,IAAAgN,EAAA2I,EA0rCgB3nG,EAAS,OAAAg/F,EAAA,MAAAT,QAAA,EAAAA,GAAkBvM,IAAlBgN,EAA4B,CAAEp0F,KAAMonF,GAoBjD,YAnB6B,IAAzBqpC,IAAgD,KAAVrpC,IACtChyF,EAAS,CACLm7F,KAAMn7F,EAAOm7F,KACbvwF,KAAM5K,EAAO4K,KACbu0F,cAAen/F,EAAOm/F,cACtBlF,QAAA,GAAAx/D,OAAAkiD,EACQ,OAAAgrB,EAAA3nG,EAAOi6F,SAAP0N,EAAkB,KACtB,CACIj+B,MAAO,SACPyxB,KAAM,aACN1nD,QAAS,SAAA/pC,GAAA,OACLi/H,GAAe,CACX32C,MAAOhyF,EAAO4K,KACdyoG,OAAQ3pG,EAAE2pG,QAAA,OAM3BrzG,CAAA,GAEX,CAACu+F,GAAiB88B,KAGhBuN,GAAyBrP,EAAAA,aAC3B,SAACh3D,GAptCT,IAAAy8B,EAqtCY6pC,GAAA5wE,EAAAA,EAAAA,GAAmBsK,EAAIyQ,KAAA,GAAhB1wD,EAAAumH,EAAA,GAAK77D,EAAA67D,EAAA,GACNhuC,EAAS+qC,GAAYtjH,GACrB48E,OACgB,KAAlB,MAAArE,OAAA,EAAAA,EAAQ7I,OAAsB,OAAAgN,EAAA0pC,GAAuB7tC,EAAO7I,aAA9B,EAAAgN,EAAsCG,mBAAgB,EAClFqE,EAAW,MAAA3I,OAAA,EAAAA,EAAQuE,cACnB1F,EAAW,MAAAvB,OAAA,EAAAA,EAAsBnrB,GAEvC8sD,EAAAt1E,EAAAA,EAAA,GACO+d,GAAA,IACH8U,MAAA7yB,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,GAAY0+E,IAAgBhkC,GAAesE,GAAa9J,GAAan3B,EAAI4P,QAAQitB,iBAAA,GAGzF,CAACjH,EAAqBytC,GAAa8C,GAAwBxF,KAGzD4F,GAAiBvP,EAAAA,aACnB,SAAClmB,EAAmB01B,EAAuBlsH,GAruCnD,IAAAmiF,EAsuCY,QAA8B,IAA1By+B,GAAcz3G,QAAlB,CAEA,IAAAgjH,GAAA/wE,EAAAA,EAAAA,GAAmBwlE,GAAcz3G,QAAQgtD,KAAA,GAAlC1wD,EAAA0mH,EAAA,GAAKh8D,EAAAg8D,EAAA,GACNzyH,EAAIqpG,GAAsB,CAACt9F,EAAK0qD,IACtC,GAAIz2D,EAAE2kE,OAASvB,GAAavgB,SAAW7iD,EAAEkgF,aAAc,CACnD,IAAItkB,EAAU57D,EACd,QAAqB,IAAjBsG,EACA,OAAQs1D,EAAQ+I,WACPvB,GAAatb,OACd,IAAM/mD,ExDhuC3B,SAAkB0hD,EAAa7mD,GAClC,IACI,OAAO6mD,GAAA,OACTtvD,GACE,OAAOyI,CAAA,EwD4tCuB82H,EAAM,iBAAwB,MAAjBpsH,GAAwB,EAAIwhD,OAAOs3B,WAAW94E,EAAA,GAAgB,GACrFs1D,EAAA3tB,EAAAA,EAAA,GACO2tB,GAAA,IACH/yE,KAAMi/D,OAAO7lD,MAAMlB,GAAK,EAAIA,IAEhC,WAECqiE,GAAakC,UACblC,GAAamC,cACbnC,GAAaoC,IACd5J,EAAA3tB,EAAAA,EAAA,GACO2tB,GAAA,IACH/yE,KAAMyd,IAMtB+rH,GAAiB,CACbtlH,OAAQ+vF,EACRlhC,QAAAA,EACAt1D,aAAAA,EACAm2D,KAAM,CAAC1wD,EAAK0qD,GACZhH,eAA4B,IAAjBnpD,EACX+jE,mBAAgC,IAAjB/jE,GAAiB,MAE7BtG,EAAE2kE,OAASvB,GAAavgB,SAAW2vE,IAA+B,IAAfxyH,EAAE0lE,WAC5DsrD,GAAqB,CACjB,CACI5yH,SAAU8oH,GAAcz3G,QAAQgtD,KAChCnzE,MAAA2kD,EAAAA,EAAA,GACOjuC,GAAA,IACHnX,KAAM2wH,GAAcx5G,EAAEnX,WAIlC,OAAA4/F,EAAAmf,GAAQn4F,UAARg5E,EAAiBR,OAAO,CAAC,CAAExrB,KAAMyqD,GAAcz3G,QAAQgtD,QA7CZ,CA6CY,GAG/D,CAAC4sC,GAAuB6d,GAAe8J,GAAsBqB,KAG3DM,GAAuC3P,EAAAA,aACzC,SAACj3G,EAAa0qD,GA1xCtB,IAAAgyB,EA2xCkBqU,EAAS,OAAArU,EAAAmf,GAAQn4F,cAAR,EAAAg5E,EAAiB6Z,UAAUv2F,EAAK0qD,GAC/C,QAAe,IAAXqmC,GAA8C,OAAtB0N,EAAU/6F,QAAtC,CAIA,IAAMmsD,EAAUytC,GAAsB,CAACt9F,EAAK0qD,IACvCmF,EAAQskB,cAIbmyC,GAAiB,CACbtlH,OAAQ+vF,EACRlhC,QAAAA,EACAt1D,kBAAc,EACdmpD,WAAW,EACXgN,KAAM,CAAC1wD,EAAK0qD,GACZ4T,eAAe,GAdf,CAce,GAGvB,CAACg/B,GAAuBgpB,KAGtB/hB,GAAiB0S,EAAAA,aACnB,SAACj3G,EAAK0qD,GAA6E,IAlzC3FgyB,EAkzCmBlN,EAAAz2F,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAM,OAAQ8tI,EAAA9tI,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAW,EAAG+tI,EAAA/tI,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,GAAW,EAAGkV,EAAAlV,UAAAC,OAAA,QAAAkG,IAAAnG,UAAA,GAAAA,UAAA,QAAU,EAC3D,GAA0B,OAAtB0lH,EAAU/6F,QAAkB,CAC5B,IAAMqjH,EAAOlrB,GAAQn4F,QACfmpE,EAASmgB,EAAUtpF,QAEnBsjH,EAAyB,kBAARhnH,EAAiC,SAAbA,EAAIs4C,KAAkBt4C,EAAIi6D,YAAS,EAAaj6D,EACrFinH,EAAyB,kBAARv8D,EAAiC,SAAbA,EAAIpS,KAAkBoS,EAAIuP,YAAS,EAAavP,EACrFw8D,EAA0B,kBAARlnH,GAAiC,OAAbA,EAAIs4C,KAAgBt4C,EAAIi6D,YAAS,EACvEktD,EAA0B,kBAARz8D,GAAiC,OAAbA,EAAIpS,KAAgBoS,EAAIuP,YAAS,EAC7E,GAAa,OAAT8sD,GAA4B,OAAXl6C,EAAiB,CAClC,IAAI+lC,EAAwB,CACxBx5F,EAAG,EACHwJ,EAAG,EACHhT,MAAO,EACPC,OAAQ,GAGRu3G,EAAU,EACVC,EAAU,EAEd,SAAgB,IAAZL,QAAqC,IAAZC,KAEA,KADzBrU,EAAa,OAAAl2B,EAAAqqC,EAAKxwB,WAAW,MAAAywB,EAAAA,EAAW,GAAK3J,GAAiB,MAAA4J,EAAAA,EAAW,IAA5DvqC,EAAkEk2B,GAChEhjG,OAAqC,IAAtBgjG,EAAW/iG,QAAc,OAG3D,IAAMy3G,EAAez6C,EAAO9O,wBAiB5B,QAfiB,IAAbmpD,IACAtU,EAAA1wE,EAAAA,EAAA,GACO0wE,GAAA,IACHx5F,EAAG8tG,EAAWI,EAAanxG,KAAOsoF,EAAU/6F,QAAQ0S,WACpDxG,MAAO,UAGE,IAAbu3G,IACAvU,EAAA1wE,EAAAA,EAAA,GACO0wE,GAAA,IACHhwF,EAAGukG,EAAWG,EAAajxG,IAAMooF,EAAU/6F,QAAQ4S,UACnDzG,OAAQ,UAIG,IAAf+iG,EAA0B,CAS1B,IARA,IAAM7hB,EAAS,CACX33E,EAAGw5F,EAAWx5F,EAAIytG,EAClBjkG,EAAGgwF,EAAWhwF,EAAIkkG,EAClBl3G,MAAOgjG,EAAWhjG,MAAQ,EAAIi3G,EAC9Bh3G,OAAQ+iG,EAAW/iG,OAAS,EAAIi3G,GAGhCS,EAAc,EACTzuI,EAAI,EAAGA,EAAIq2F,GAAer2F,IAC/ByuI,GAAerqH,GAAQpkB,GAAG82B,MAE9B,IAAI43G,EAAoB,EACpBp4C,KACAo4C,EAAyC,kBAAdl4C,GAAyBA,GAAYA,GAAU7kB,IAG9E,IAAIg9D,EAAQF,EAAcD,EAAanxG,KAAOknG,GAAkBpF,GAC5DyP,EAASJ,EAAaziF,MACtB8iF,EAAOL,EAAajxG,IAAM04D,GAC1B64C,EAAUN,EAAaxiF,OAAS0iF,EAE9BK,EAAOjV,EAAWhjG,MAAmB,EAAXi3G,EAChC,OAAQ,MAAA54H,OAAA,EAAAA,EAAS65H,YACR,QACDJ,EAASD,EAAQI,EACjB,UACC,MACDJ,EAAQC,EAASG,EACjB,UACC,SAEDH,GADAD,EAAQhjI,KAAKurD,OAAOy3E,EAAQC,GAAU,GAAKG,EAAO,GACjCA,EAIzB,IAAME,EAAOnV,EAAW/iG,OAAoB,EAAXi3G,EACjC,OAAQ,MAAA74H,OAAA,EAAAA,EAAS+5H,YACR,QACDJ,EAAUD,EAAOI,EACjB,UACC,MACDJ,EAAOC,EAAUG,EACjB,UACC,SAEDH,GADAD,EAAOljI,KAAKurD,OAAO23E,EAAOC,GAAW,GAAKG,EAAO,GAChCA,EAIrBN,EAAQ12B,EAAO33E,EACfguG,EAAUr2B,EAAO33E,EAAIquG,EACdC,EAAS32B,EAAO33E,EAAI23E,EAAOnhF,QAClCw3G,EAAUr2B,EAAO33E,EAAI23E,EAAOnhF,MAAQ83G,GAGpCC,EAAO52B,EAAOnuE,EACdykG,EAAUt2B,EAAOnuE,EAAI+kG,EACdC,EAAU72B,EAAOnuE,EAAImuE,EAAOlhF,SACnCw3G,EAAUt2B,EAAOnuE,EAAImuE,EAAOlhF,OAAS+3G,GAG7B,aAARp4C,GAAsBxvE,EAAMmvE,GAC5Bi4C,EAAU,EACK,eAAR53C,IACP63C,EAAU,GAGE,IAAZD,GAA6B,IAAZC,GACjB5oB,EAAU/6F,QAAQ6gG,SACd6iB,EAAU3oB,EAAU/6F,QAAQ0S,WAC5BixG,EAAU5oB,EAAU/6F,QAAQ4S,UAAA,MAOpD,CAAC+mG,GAAiBpF,GAAgBlpC,GAAmBK,GAAeD,GAAejyE,GAASoyE,GAAW7kB,IAGrGw9D,GAAsBhR,EAAAA,OAAO2P,IAC7BsB,GAA0BjR,EAAAA,OAAO92B,GACjC8gC,GAAgBhK,EAAAA,OAAOxsD,GAC7Bw9D,GAAcvkH,QAAUkjH,GACxBsB,GAAkBxkH,QAAUy8E,EAC5B8gC,GAAQv9G,QAAU+mD,EAClB,IAAM09D,GAAkBlR,EAAAA,YAAA,eAAAmR,EAAA/mE,EAAArF,IAAA6D,MACpB,SAAAwoE,EAAOroH,GAAA,IAAA08E,EAAAzoF,EAAAq0H,EAAA3lG,EAAAmiB,EAAAyjF,EAAA,OAAAvsE,IAAAO,MAAA,SAAAisE,GAAA,cAAAA,EAAAnuE,KAAAmuE,EAAAxnG,MAAA,OACmB,GAAhB/sB,EAAIqvH,GAAYtjH,IACkB,KAApC,OAAA08E,EAAA,MAAAzoF,OAAA,EAAAA,EAAG+tF,yBAAH,EAAAtF,EAAuBxhF,UAAa,CAAAstH,EAAAxnG,KAAA,eAAAwnG,EAAA9pE,OAAA,iBAM3B,GAHP4pE,EAAe,MAAAhP,QAAA,EAAAA,KAEjB32F,OAA2C,EAC3CmiB,GAAS,OACQ,IAAjBwjF,EAAiB,CAAAE,EAAAxnG,KAAA,gBAAAwnG,EAAAxnG,KAAA,EACPsnG,EAAA,OACA,SADV3lG,EAAA6lG,EAAAjqE,QACiBzZ,GAAS,GACT,kBAANniB,IAAgBmiB,GAAS,WAGpCyjF,EAAU,EACE,SAAVE,IACF,GAAIxH,GAAQv9G,SAAW+mD,EAKnB,OAJI89D,EAAU,KACV/zH,OAAOpF,WAAWq5H,EAASF,QAE/BA,EAAU,GAAe,EAAVA,GAInB,IAAM79D,EAAmB,kBAAN/nC,EAAiBA,EAAImiB,EAAS2lB,EAAO,EACxD85C,GAASvkG,EAAMq9G,GAAiB3yD,GAChC+1D,GACI,CACI/vD,KAAM,CAAC1wD,EAAK0qD,GACZx5D,MAAO,CACHkoB,EAAGpZ,EACH4iB,EAAG8nC,EACH96C,MAAO,EACPC,OAAQ,KAGhB,GACA,EACA,QAGJ,IAAM6gD,EAAOw3D,GAAkBxkH,QAAQ,CAAC1D,EAAMq9G,GAAiB3yD,IAC3DgG,EAAKyjB,cAAgB9a,GAAgB3I,KAA2B,IAAlBA,EAAKiJ,UAEnDnlE,OAAOpF,YAAW,WACd64H,GAAcvkH,QAAQ1D,EAAK0qD,EAAA,GAC5B,GAIX+9D,GAAA,yBAAAD,EAAApoE,OAAA,GAAAioE,EAAA,qBAAAK,GAAA,OAAAN,EAAA7uI,MAAA,KAAAR,UAAA,EApDgB,GAsDpB,CAACuqI,GAAahK,GAAe+D,GAAiB5yD,EAAM85C,GAAUkc,KAG5DkI,GAAoC1R,EAAAA,aACtC,SAACj3G,GA7+CT,IAAA08E,EAAA2I,EAAA2R,EA8+CkB4xB,EACF,OAAA5xB,EAAA,OAAA3R,EAAA,OAAA3I,EAAAx/E,GAAQ8C,SAAR,EAAA08E,EAAcsF,yBAAd,EAAAqD,EAAkCwjC,cAAlC7xB,EAAkD,MAAAhV,QAAA,EAAAA,GAAoB6mC,aAE1E,GAAkC,kBAAvBD,EAEP,OAAOA,GADoBxL,GAAgB,EAAI,GAInD,GAAkC,kBAAvBwL,EAAiC,CACxC,IAAME,EAAa5Q,EAAU14G,QAAQopH,GACrC,GAAIE,GAAc,EAEd,OAAOA,GADoB1L,GAAgB,EAAI,EAC3B,CAIrB,GAEX,CAAClgH,GAASg7G,EAAWkF,GAAe,MAAAp7B,QAAA,EAAAA,GAAoB6mC,eAGtDE,GAA2B9R,EAAAA,SAC3B+R,GAA2B/R,EAAAA,SAE3BgS,GAAqBhS,EAAAA,aACvB,SAACvmD,EAAqBw4D,GAvgD9B,IAAAxsC,EAwgDYysC,GAAAxzE,EAAAA,EAAAA,GAAmBuzE,EAAA,GAAZlpH,EAAAmpH,EAAA,GAAKz+D,EAAAy+D,EAAA,GACZ,OAAAjnF,EAAAA,EAAAA,EAAAA,EAAA,GACO0+E,IACA,OAAAlkC,EAAA4mC,GAAYtjH,SAAZ,EAAA08E,EAAkBI,eAClB,MAAAjH,OAAA,EAAAA,EAAsBnrB,IACtBgG,EAAKosB,cAAA,GAGhB,CAACjH,EAAqBytC,GAAa1C,KAGjCwI,GAAqBnS,EAAAA,aACvB,SAACnoH,GAphDT,IAAA4tF,EAAA2I,EAAA2R,EAAAC,EAqhDkBoyB,EAAaz+B,GAAartG,MAAQuR,EAAK4d,QAAU5d,EAAKyd,QACtD+8G,EAAaD,GAA4B,UAAdtP,GAC3BwP,EAAaF,GAA+B,UAAjBxP,GACjC2P,GAAA7zE,EAAAA,EAAAA,GAAmB7mD,EAAKuD,SAAA,GAAjB2N,EAAAwpH,EAAA,GAAK9+D,EAAA8+D,EAAA,GACNrtB,EAAkBgf,GAAcj+G,QAChCkrF,EAAe+yB,GAAc1wD,KACnCg/D,EAA2B,OAAApkC,EAAA,OAAA3I,EAAAy+B,GAAcz3G,cAAd,EAAAg5E,EAAuBhsB,MAAvB20B,EAA+B,GAAAqkC,GAAA/zE,EAAAA,EAAAA,GAAA8zE,EAAA,GAAnDnkD,EAAAokD,EAAA,GAASnkD,EAAAmkD,EAAA,GAEhB,GAAkB,SAAd56H,EAAK8pE,MAKL,GAJAowD,GAAmBtlH,aAAU,EAE7BimH,GAAwBjmH,QAAU,CAAC1D,EAAK0qD,GAE5B,IAAR1qD,GAAao9G,GAAe,CAC5B,IAC8B,IAAzBE,IAAiC5yD,IAAQD,GAC3B,WAAfstD,GACc,SAAdgC,GAEA,OAEJ,IAAM6P,EAAatsB,GAAsBxuG,EAAKuD,UAC9C,GAAIu3H,EAAWhxD,OAASd,GAAkBqB,OACtC,OAGJ,QAAmB,IAAf6iC,GAA0B,CAC1B,IAAMj4C,EAAW2a,GAAgBkrD,GACjC91D,IAAO,MAAA/P,OAAA,EAAAA,EAAU6U,QAASd,GAAkBqB,QAC5C,IAAM0wD,EAAY,OAAA7yB,EAAA,MAAAjzC,OAAA,EAAAA,EAAU5yB,cAAV,EAAA6lE,EAAAn9G,KAAAkqE,EAAA7hB,EAAAA,EAAA,GACXpzC,GAAA,IACH4hE,KAAMk5D,EACN95B,KAAMhhG,EAAKmiG,YACXlB,KAAMjhG,EAAKoiG,YACXH,OAAQjiG,EAAKiiG,OACbh8B,MAAOk0D,GAAaW,EAAY96H,EAAKuD,UACrCyY,eAAgB,WAAM,KAE1B,QAAkB,IAAd++G,GAA2BA,EAAU/vH,UAAY8vH,EAAW9vH,QAAS,OAG7E09G,OAAW,GACXjhG,KACA,IAAM00B,EAAam9C,EAAantB,SAASvQ,GAEnCo/D,EAAkBf,GAAmBrlH,QAC3C,GACkB,UAAdq2G,KACCjrH,EAAK0d,WAAiC,IAArB1d,EAAKilG,mBACH,IAApB+1B,GACA1hC,EAAantB,SAAS6uD,GACxB,CACE,IAAMC,EAAkB,CAACtlI,KAAKsJ,IAAI+7H,EAAiBp/D,GAAMjmE,KAAKG,IAAIklI,EAAiBp/D,GAAO,GAEtF4+D,GAAmC,UAArB3O,GACd+F,QAAgB,EAAWqJ,GAAU,GAErCrJ,GAAgB7kD,GAAiBE,oBAAoBguD,QAAW,EAAWT,EAAA,MAExEA,GAAcx6H,EAAK4hG,SAAgC,UAArBiqB,GACjC1vE,EACAy1E,GAAgBt4B,EAAa3tB,OAAO/P,QAAM,GAAW,IAErDg2D,QAAgB,EAAWh2D,GAAK,GAChCq+D,GAAmBrlH,QAAUgnD,GAE1Bzf,GAAsC,IAAxBm9C,EAAapvG,OAClC0nI,GAAgB7kD,GAAiBC,aAAS,EAAWutD,IAErD3I,GAAgB7kD,GAAiBE,oBAAoBrR,QAAM,EAAW2+D,GACtEN,GAAmBrlH,QAAUgnD,EAAA,SAE1B1qD,GAAOq9G,IAAmBC,IAAwB5yD,IAAQD,EAAM,CACvE,IAAMm+D,EAAqBD,GAA4B3oH,GAClDmoH,GAAU,MAAAS,EAAAA,EAAsB5oH,EAAA,MAErC,GAAIslE,IAAYtlE,GAAOulE,IAAY7a,EAAK,CACpC,IAAMgG,EAAO4sC,GAAsBxuG,EAAKuD,UAClC0xD,EAAW2a,GAAgBhO,GAEjC,QAA2B,KAAvB,MAAA3M,OAAA,EAAAA,EAAUimE,UAAwB,CAClC,IAAI70B,GAAY,EAUhB,GATApxC,EAASimE,SAAA9nF,EAAAA,EAAA,GACFpzC,GAAA,IACH4hE,KAAAA,EACAo/B,KAAMhhG,EAAKmiG,YACXlB,KAAMjhG,EAAKoiG,YACXH,OAAQjiG,EAAKiiG,OACbjmF,eAAgB,kBAAOqqF,GAAY,GACnCpgC,MAAOk0D,GAAav4D,EAAM5hE,EAAKuD,aAE/B8iG,EACA,OAGR,IAAM80B,EAAkB76C,IAAiB1kB,IAAQD,EAE3Cy/D,EACF96C,SAAmC,IAAlB+rC,KAA+B,OAAAlkB,EAAAkkB,GAAcz3G,cAAd,EAAAuzF,EAAuBvmC,KAAK,MAAOjG,EAEvF,IACK37D,EAAK0d,WAAiC,IAArB1d,EAAKilG,kBACX,IAAZzuB,QACY,IAAZC,QAC0B,IAA1B41C,GAAcz3G,SACbwmH,EA6BDzJ,GACI,CACI/vD,KAAM,CAAC1wD,EAAK0qD,GACZx5D,MAAO,CAAEkoB,EAAGpZ,EAAK4iB,EAAG8nC,EAAK96C,MAAO,EAAGC,OAAQ,KAE/C,EACAw5G,EACA,SAEJN,GAAmBrlH,aAAU,EAC7B8zG,OAAW,GACXjhG,SAvCF,CACE,GAAI0zG,EAGA,OAGJ,IAAM9zG,EAAO1xB,KAAKsJ,IAAIiS,EAAKslE,GACrBzgC,EAAQpgD,KAAKG,IAAIob,EAAKslE,GACtBjvD,EAAM5xB,KAAKsJ,IAAI28D,EAAK6a,GACpBzgC,EAASrgD,KAAKG,IAAI8lE,EAAK6a,GAC7Bk7C,GAAAv+E,EAAAA,EAAA,GAEWi5E,GAAcz3G,SAAA,IACjBxS,MAAO,CACHkoB,EAAGjD,EACHyM,EAAGvM,EACHzG,MAAOi1B,EAAQ1uB,EAAO,EACtBtG,OAAQi1B,EAASzuB,EAAM,MAG/B,EACAgzG,EACA,SAEJN,GAAmBrlH,aAAU,EAC7B6S,IAAA,CAaA,UAIS,WAAdznB,EAAK8pE,KAGZ,GAFA+wD,GAAwBjmH,QAAU,CAAC1D,EAAK0qD,GACxC8sD,OAAW,GACP4F,IAAyB,IAARp9G,EACjB+oH,GAAmBrlH,aAAU,EAC7BslH,GAAmBtlH,aAAU,EACX,UAAdq2G,KACI3xB,EAAapvG,SAAWyxE,EACxBi2D,GAAgB7kD,GAAiBE,oBAAoB,CAAC,EAAGtR,SAAQ,EAAW4+D,GAE5E3I,GAAgB7kD,GAAiBC,aAAS,EAAWutD,GAEzD9yG,UAED,CACH,IAAM+tE,EAAU0kC,GAAmBtlH,QACnC,GACqB,UAAjBm2G,KACC/qH,EAAK0d,WAAiC,IAArB1d,EAAKilG,mBACX,IAAZzP,GACA6X,EAAgBlhC,SAASqpB,GAC3B,CACE,IAAMylC,EAAkB,CAACtlI,KAAKsJ,IAAIu2F,EAAStkF,GAAMvb,KAAKG,IAAI0/F,EAAStkF,GAAO,GAEtEupH,EACA5I,QAAmB,EAAWoJ,EAAUV,GAExC1I,GAAmB9kD,GAAiBE,oBAAoBguD,QAAW,EAAWV,EAAA,MAE3EE,GACHptB,EAAgBlhC,SAASj7D,GACzB2gH,GAAmBxkB,EAAgB1hC,OAAOz6D,QAAM,EAAWqpH,GAE3D1I,QAAmB,EAAW3gH,EAAKqpH,GAEvCL,GAAmBtlH,QAAU1D,GACL,SAAjB65G,KACP8G,GAAmB9kD,GAAiBE,oBAAoB/7D,QAAM,EAAWqpH,GACzEL,GAAmBtlH,QAAU1D,GAEjC+oH,GAAmBrlH,aAAU,EAC7B6S,IAAA,MAEGznB,EAAK8pE,OAAShB,GACrB+xD,GAAwBjmH,QAAU,CAAC1D,EAAK0qD,GACjC57D,EAAK8pE,OAASf,KACrB6mD,GAAiB3H,IAAoB,GACrCS,OAAW,GACXjhG,KACA,MAAAykG,IAAAA,KACA+N,GAAmBrlH,aAAU,EAC7BslH,GAAmBtlH,aAAU,KAGrC,CACIykH,GACAtO,GACAtjG,GACAmoD,GACAiqD,GACArrB,GACA6d,GACAiC,GACAhuC,GACA4rC,GACAhf,GACAqhB,GACAtF,EACAgC,GACAY,GACAlwD,EACAg2D,GACA/B,GACAiC,GACAD,GACApD,GACA2L,KAIFU,GAAgC1S,EAAAA,SAChCkT,GAAsBlT,EAAAA,OAAOyN,IAC7B0F,GACInT,EAAAA,SAKJl2E,GAAoBk2E,EAAAA,aACtB,SAACnoH,GAnwDT,IAAA4tF,EAAA2I,EAswDY,GAFAglC,GAAY3mH,SAAU,EACtBymH,GAAczmH,QAAUigH,GAAiBjgH,QACrB,IAAhB5U,EAAK+d,OAAT,CAKA,IAAMhe,EAAOolD,YAAYpmD,MACnBy8H,EAAiBz7H,GAAQ,OAAAw2F,EAAA,OAAA3I,EAAA0tC,GAAc1mH,cAAd,EAAAg5E,EAAuB7tF,MAAvBw2F,GAAgC,KAAQ,IACvE+kC,GAAc1mH,QAAU,CACpB4mH,eAAAA,EACAz7H,KAAAA,EACAwD,SAAUvD,EAAKuD,UAGnB,IAAMmwB,EAAmB,SAAd1zB,EAAK8pE,MAAmB9pE,EAAKqiG,cAEnC3uE,GAAoB,SAAd1zB,EAAK8pE,MAAmB9pE,EAAKgiG,SAExC8mB,EAAc,CACV2S,kBAAmBpP,GACnBh4B,WAAY3gE,IAEhBmnG,GAAwBjmH,aAAU,EAE7B5U,EAAK4hG,SACN04B,GAAat6H,GAtBb,MADAs7H,GAAc1mH,aAAU,CAuBX,GAGrB,CAACy3G,GAAeiO,KAGpBoB,GACUvT,EAAAA,WAAAwT,IAAA90E,EAAAA,EAAAA,GAAA60E,GAAA,GADHE,GAAAD,GAAA,GAAapE,GAAAoE,GAAA,GAMdE,GAAmC1T,EAAAA,aACrC,SAACnoH,GACG,GAAIA,EAAK8pE,OAAShB,IAAoC,UAAjBiiD,GAArC,CAGA,IAAMwP,EAAaz+B,GAAartG,MAAQuR,EAAK4d,QAAU5d,EAAKyd,QACrDvM,GAAP21C,EAAAA,EAAAA,GAAc7mD,EAAKuD,SAAA,GAAZ,GACD8pG,EAAkBgf,GAAcj+G,QAEtC,KAAI8C,EAAMq9G,IAAV,CAKA,IAHA,IAAMuN,EAAStH,GAAYtjH,GACvBnb,EAAQmb,EACRlb,EAAMkb,EACDlnB,EAAIknB,EAAM,EAAGlnB,GAAKukI,IAClBv4C,GAAa8lD,EAAOl7C,MAAO4zC,GAAYxqI,GAAG42F,OADP52F,IAExC+L,IAGJ,IAAK,IAAI/L,EAAIknB,EAAM,EAAGlnB,EAAIwqI,GAAYtqI,QAC7B8rF,GAAa8lD,EAAOl7C,MAAO4zC,GAAYxqI,GAAG42F,OADL52F,IAE1CgM,IAKJ,GAFAyxB,KAEI8yG,EACA,GAAIltB,EAAgBhhC,OAAO,CAACt2E,EAAOC,EAAM,IAAK,CAE1C,IADA,IAAI66E,EAASw8B,EACJvhH,EAAQiK,EAAOjK,GAASkK,EAAKlK,IAClC+kF,EAASA,EAAOlF,OAAO7/E,GAE3B+lI,GAAmBhhD,OAAQ,EAAW0pD,EAAA,MAEtC1I,QAAmB,EAAW,CAAC97H,EAAOC,EAAM,GAAIukI,QAGpD1I,GAAmB9kD,GAAiBE,oBAAoB,CAACl3E,EAAOC,EAAM,SAAK,EAAWukI,EA5BzD,CAN7B,CAkCsF,GAG9F,CAACxP,GAActjG,GAAO4kG,GAAcj+G,QAASomH,GAAajG,GAAiBsD,KAGzEkK,GAAiB5T,EAAAA,aACnB,SAAC/2D,GAt1DT,IAAAw8B,EAu1DY,QAA8B,IAA1By+B,GAAcz3G,QAAlB,CAGA,IAFA,IAAM3O,EAAoB,GACpB4tB,EAAIw4F,GAAcz3G,QAAQxS,MACvBkoB,EAAI,EAAGA,EAAIuJ,EAAE/S,MAAOwJ,IAAK,CAC9B,IAAM0xG,EAAU1xG,EAAIuJ,EAAEvJ,EAChB2xG,EAAUztB,GAAsB,CAACwtB,EAAS5qE,EAAUv9B,EAAEC,EAAID,EAAE9S,OAAS,EAAI8S,EAAEC,IACjF,IAAIs2C,GAAgB6xD,IAAa1xD,GAAgB0xD,GACjD,IAAK,IAAInoG,EAAI,EAAGA,EAAID,EAAE9S,OAAQ+S,IAAK,CAC/B,IACM5hB,EAAS,CAAC8pH,EADA5qE,EAAUv9B,EAAEC,EAAID,EAAE9S,QAAU+S,EAAI,GAAKA,EAAID,EAAEC,GAE3D7tB,EAAE5b,KAAK,CACHkZ,SAAU2O,EACVzjB,MAAA2kD,EAAA,GAAY6oF,IAAA,EAKxB9F,GAAqBlwH,GAErB,OAAA2nF,EAAAmf,GAAQn4F,UAARg5E,EAAiBR,OACbnnF,EAAExL,KAAI,SAAA0K,GAAA,MAAM,CACRy8D,KAAMz8D,EAAE5B,SAAA,IArB+B,CAqB/B,GAIpB,CAACirG,GAAuB6d,GAAe8J,KAGrCoF,GAAoBpT,EAAAA,QAAO,GAE3B+T,GAAyB/T,EAAAA,YAAA,eAAAgU,EAAA5pE,EAAArF,IAAA6D,MAC3B,SAAAqrE,EAAOlrH,GAAA,IAAA08E,EAAA73F,EAAAC,EAAA2hE,EAAA0kE,EAAA11B,EAAAnuB,EAAA8jD,EAAA,OAAApvE,IAAAO,MAAA,SAAA8uE,GAAA,cAAAA,EAAAhxE,KAAAgxE,EAAArqG,MAAA,WAE2C,KAA1C,OAAA07D,EAAA0tC,GAAc1mH,cAAd,EAAAg5E,EAAuB4tC,sBACE,IAAzBplB,SACmB,IAAnBxJ,GAAmB,CAAA2vB,EAAArqG,KAAA,SAWY,GATzBn8B,EAAQ8+H,GAAiBjgH,QAAQkf,EACjC99B,EAAM6+H,GAAiBjgH,QAAQmM,OAUhB,kBATjB42C,EAAQy+C,GACR,CACI9rF,EAAGpZ,EACH4iB,EAAG/9B,EACH+qB,MAAO,EACPC,OAAQprB,KAAKsJ,IAAIjJ,EAAK2lE,EAAO5lE,IAEjCohH,GAAmBviG,QAAQwkG,SAEV,CAAAmjB,EAAArqG,KAAA,eAAAqqG,EAAArqG,KAAA,EACHylC,IAAA,OAAdA,EAAA4kE,EAAA9sE,KAAA,OAEE4sE,EAAWjuH,GAAQ8C,EAAMq9G,IACzB5nB,EAAYhhG,SAASC,cAAc,UAE7B,QADN4yE,EAAMmuB,EAAU3oB,WAAW,KAAM,CAAEqF,OAAO,OAE5C7K,EAAIC,KAAA,GAAApvD,OAAUyoG,GAAY/pD,cAAA,KAAA1+C,OAAiByoG,GAAY9pD,YACjDs0D,EAASxhB,GACXtiC,EACAs5C,GACAuK,EACA,EACA1kE,EACAs1C,GACAD,IACA,EACAp9B,IAEJ,MAAAg9B,IAAAA,GAAiByvB,EAAUC,EAAOx7G,MAAO5P,EAAKorH,EAAOx7G,QAAA,yBAAAy7G,EAAAjrE,OAAA,GAAA8qE,EAAA,qBAAAI,GAAA,OAAAL,EAAA1xI,MAAA,KAAAR,UAAA,EArCtC,GAyC3B,CACImkB,GACAgoG,GACApJ,GACA8kB,GACA7kB,GACAL,GACA2hB,GACA5yD,EACAiU,KAIR6sD,GAAwCtU,EAAAA,WAAAuU,IAAA71E,EAAAA,EAAAA,GAAA41E,GAAA,GAAjCE,GAAAD,GAAA,GAAWE,GAAAF,GAAA,GAEZ9+B,GAAkBuqB,EAAAA,aACpB,SAACnoH,EAA0BglG,GA96DnC,IAAApX,EAAA2I,EAAA2R,EA+6DkB20B,EAAQhU,EAId,GAHAC,OAAc,GACd8T,QAAa,IAET53B,EAEJ,IAA0B,KAAtB,MAAA63B,OAAA,EAAAA,EAAOxoC,kBAAiD,IAA1Bg4B,GAAcz3G,QAAhD,CAKA,IAAAkoH,GAAAj2E,EAAAA,EAAAA,GAAmB7mD,EAAKuD,SAAA,GAAjB2N,EAAA4rH,EAAA,GAAKlhE,EAAAkhE,EAAA,GACZC,EAA6C,OAAAnvC,EAAAitC,GAAwBjmH,SAAxBg5E,EAAmC,GAAAovC,GAAAn2E,EAAAA,EAAAA,GAAAk2E,EAAA,GAAzEE,EAAAD,EAAA,GAAkBE,EAAAF,EAAA,GAEnBhhH,EAAiB,WACnBu/G,GAAY3mH,SAAU,GAGpBuoH,EAAmB,SAACl4H,GAj8DtC,IAAAutF,EAAAwW,EAAAo0B,EAw8DgB,IANIn4H,EAAE28F,SAAYq7B,IAAqB/rH,GAAOgsH,IAAqBthE,KAC/D,MAAAytD,GAAAA,EAAgB,CAACn4G,EAAMq9G,GAAiB3yD,GAAAxoB,EAAAA,EAAA,GACjCnuC,GAAA,IACH+W,eAAAA,OAGHu/G,GAAY3mH,QAAS,CACtB,IAAMzP,EAAIqpG,GAAsBxuG,EAAKuD,UAC/BswB,EAAI+7C,GAAgBzqE,GAC1B,QAAU,IAAN0uB,QAAiC,IAAdA,EAAEwO,QAAuB,CAC5C,IAAMwuC,EAASh9C,EAAEwO,QAAA+Q,EAAAA,EAAA,GACVnuC,GAAA,IACH28D,KAAMz8D,EACN67F,KAAM/7F,EAAEk9F,YACRlB,KAAMh8F,EAAEm9F,YACRH,OAAQh9F,EAAEg9F,OACVh8B,MAAOk0D,GAAah1H,EAAGnF,EAAKuD,UAC5ByY,eAAAA,UAEW,IAAX60D,IAAyBzG,GAAgByG,IAAWhH,GAAmBgH,KACvEslD,GAAqB,CAAC,CAAE5yH,SAAU0B,EAAE1B,SAAU9U,MAAOoiF,KACrD,OAAA2hB,EAAAua,GAAQn4F,UAAR49E,EAAiBpF,OAAO,CACpB,CACIxrB,KAAM38D,EAAE1B,YAAA,CAKxB,IACKg4H,GAAY3mH,cAC+B,KAA5C,OAAAwoH,EAAA,OAAAp0B,EAAA,MAAA6zB,OAAA,EAAAA,EAAOpB,wBAAP,EAAAzyB,EAA0Bp0F,cAA1B,EAAAwoH,EAAmCx7D,YACT,IAA1ByqD,GAAcz3G,QAChB,CACE,IAAAyoH,GAAAx2E,EAAAA,EAAAA,GAAmCwlE,GAAcz3G,QAAQgtD,KAAA,GAAlD07D,EAAAD,EAAA,GAAaE,EAAAF,EAAA,GACpBG,GAAA32E,EAAAA,EAAAA,GAA2Bg2E,EAAMpB,kBAAkB7mH,QAAQgtD,KAAA,GAApD67D,EAAAD,EAAA,GAASE,EAAAF,EAAA,GAChB,GAAItsH,IAAQosH,GAAepsH,IAAQusH,GAAW7hE,IAAQ2hE,GAAe3hE,IAAQ8hE,EAGzE,OAFA,MAAApU,GAAAA,EAAkB,CAACp4G,EAAMq9G,GAAiB3yD,IAC1C87D,GAASzyH,EAAEg9F,QAAQ,IACZ,GAInB,OAAO,GAGL07B,EAAgB39H,EAAKuD,SAAS,GAAKgrH,GACzC,GAAIvuH,EAAK4hG,QAAT,CACI,IAAMq1B,EAAKpC,GAAiBjgH,QACtBgpH,EAAUvC,GAAczmH,QAC9B,GAAIqiH,EAAG3sG,IAAMszG,EAAQtzG,GAAK2sG,EAAGnjG,IAAM8pG,EAAQ9pG,EAEvC,OAGJ,IAAyB,IAArB9zB,EAAKilG,YAAsB,CAC3B,GACkB,SAAdjlG,EAAK8pE,OACL,OAAAysB,EAAA,MAAA81B,QAAA,EAAAA,GAAez3G,cAAf,EAAA2hF,EAAwB30B,KAAK,MAAO1wD,IACpC,OAAAg3F,EAAA,MAAAmkB,QAAA,EAAAA,GAAez3G,cAAf,EAAAszF,EAAwBtmC,KAAK,MAAOhG,EAMpC,YAJA,MAAAiuD,IAAAA,GAAoB,CAAC8T,EAAe39H,EAAKuD,SAAS,IAAA6vC,EAAAA,EAAA,GAC3CpzC,GAAA,IACHgc,eAAAA,MAEJ,GACqB,WAAdhc,EAAK8pE,MAAqBuiD,GAAcj+G,QAAQ+9D,SAASj7D,GAEhE,YADA,MAAA44G,IAAAA,GAAsB6T,EAAAvqF,EAAAA,EAAA,GAAoBpzC,GAAA,IAAMgc,eAAAA,MAChD,GACOhc,EAAK8pE,OAAShB,GAAiB,CACtC,GAAI60D,EAAgB,EAChB,OAIJ,YADA,MAAA3T,IAAAA,GAA2B2T,EAAAvqF,EAAAA,EAAA,GAAoBpzC,GAAA,IAAMgc,eAAAA,KACrD,EAGU,SAAdhc,EAAK8pE,KAEAqzD,EAAiBn9H,IAClBs6H,GAAat6H,GAEVA,EAAK8pE,OAAShB,GACrB,MAAA8gD,IAAAA,GAAuB+T,EAAAvqF,EAAAA,EAAA,GAAoBpzC,GAAA,IAAMgc,eAAAA,MAE7Chc,EAAK8pE,OAASjB,KACd,MAAA4gD,GAAAA,EAAkBkU,EAAAvqF,EAAAA,EAAA,GACXpzC,GAAA,IACHgc,eAAAA,MAGRs+G,GAAat6H,GAEjB,KA/CJ,CAkDA,GAAkB,WAAdA,EAAK8pE,KAAmB,CACxB,GAAI6zD,EAAgB,EAChB,OAGA39H,EAAKgiG,OACAk6B,GAAiBhrH,GACC,IAAhBlR,EAAK+d,QAAgB7M,IAAQ+rH,GAAoBrhE,IAAQshE,IAChE,MAAAzT,GAAAA,EAAkBkU,EAAAvqF,EAAAA,EAAA,GAAoBpzC,GAAA,IAAMgc,eAAAA,KAAA,CAIpD,GAAIhc,EAAK8pE,OAAShB,GAAiB,CAC/B,GAAI60D,EAAgB,EAChB,OAGgB,IAAhB39H,EAAK+d,QAAgB7M,IAAQ+rH,GAAoBrhE,IAAQshE,IACzD,MAAAtT,IAAAA,GAAuB+T,EAAAvqF,EAAAA,EAAA,GAAoBpzC,GAAA,IAAMgc,eAAAA,KAC5Cu/G,GAAY3mH,SACbinH,GAA2B77H,GAAA,CAKrB,SAAdA,EAAK8pE,MAAmC,IAAhB9pE,EAAK+d,QAC7Bo/G,EAAiBn9H,GAGrB66H,GAAwBjmH,aAAU,CAhC9B,CAxGA,MADAmnH,GAAS1P,GAAcz3G,QAAQgtD,KAAK,KAAOyqD,GAAcz3G,QAAQxS,MAAM0xB,EAyIzC,GAEtC,CACI+0F,EACA0F,GACAlC,GACAhD,EACA0S,GACAvtB,GACA5+B,GACAuqD,GACAhE,GACA7M,EACAoO,GACA7N,GACAC,GACAE,GACAsQ,GACA1Q,GACAsS,GACAzS,EACAoS,KAIFgC,GAAwB1V,EAAAA,aAC1B,SAACnoH,GACG,IAAMiF,EAAAmuC,EAAAA,EAAA,GACCpzC,GAAA,IACHuD,SAAU,CAACvD,EAAKuD,SAAS,GAAKgrH,GAAiBvuH,EAAKuD,SAAS,MAEjE,MAAAu6F,IAAAA,GAAc74F,GACd23H,IAAa,SAAA1tD,GA/lEzB,IAAA0e,EAAA2I,EAgmEgB,OAAIv2F,EAAK6hG,WAAW,MAAO,MAAA3yB,OAAA,EAAAA,EAAK,KAAMlvE,EAAK6hG,WAAW,KAAO3yB,EAAG,GAAWA,OACrD,IAAf25C,IAA6B,OAAAtyB,EAAA,OAAA3I,EAAA0tC,GAAc1mH,cAAd,EAAAg5E,EAAuBrqF,SAAS,IAAhCgzF,EAAsC,GAAKg4B,QACzE,EACAvuH,EAAK6hG,UAAA,MAGnB,CAACgnB,EAAY/qB,GAAaywB,MGjmE3B,SACHuP,EACAnuB,GAEA,IAAMouB,EAAcC,EAAAA,OAAa,GACjCC,EAAqB,MAAAH,EAAAA,EAAmB,CAAC,EAAG,GAAAI,GAAAr3E,EAAAA,EAAAA,GAAAo3E,EAAA,GAArCE,EAAAD,EAAA,GAAME,EAAAF,EAAA,GACbF,EAAAA,WAAgB,WACZ,GAAa,IAATG,GAAuB,IAATC,EAAlB,CAKA,IAAIC,EAAW,EAaXj0G,EAAI1kB,OAAOqpE,uBAZE,SAAXuvD,EAAYC,GAnB1B,IAAAr4D,EAoBY,GAAiB,IAAbm4D,EACAA,EAAWE,MACR,CACH,IAAMtoI,EAAOsoI,EAAUF,EACvBN,EAAYnpH,QAAUjf,KAAKsJ,IAAI,EAAG8+H,EAAYnpH,QAAU3e,EApBlD,MAqBN,IAAMuoI,EAAS7oI,KAAA8oI,IAAAV,EAAYnpH,QAAW,OAAQ3e,EAtB3C,EAuBH,OAAAiwE,EAAAypC,EAAU/6F,UAAVsxD,EAAmBw4D,SAASP,EAAOK,EAAQJ,EAAOI,GAClDH,EAAWE,CAAA,CAEfn0G,EAAI1kB,OAAOqpE,sBAAsBuvD,EAAA,IAGrC,OAAO,kBAAM54H,OAAO0pE,qBAAqBhlD,EAAA,CAjBrC,CADA2zG,EAAYnpH,QAAU,CAkBe,GAC1C,CAAC+6F,EAAWwuB,EAAMC,GAAA,CHykErBO,CAAchC,GAAWhtB,GAEzB,IAAMivB,GAA+BzW,EAAAA,aACjC,SAACj3G,EAAay8F,GACV,MAAA1Q,IAAAA,GAAoB/rF,EAAMq9G,GAAiB5gB,EAAA,GAE/C,CAAC1Q,GAAmBsxB,KAGlBsQ,GAAc,OAAA33C,EAAA,MAAAmlC,QAAA,EAAAA,GAAez3G,cAAf,EAAAsyE,EAAwBtlB,KACtCk9D,GAAmC3W,EAAAA,aACrC,SACIp0B,EACA76C,EACAC,EACA4lF,EACAvnD,EACA6Q,GAEA0sC,GAAgBngH,SAAU,EAC1B,IAAI1I,EAAW2yH,QACE,IAAb3yH,IACAA,EAAW,CAACA,EAAS,GAAKqiH,GAAiBriH,EAAS,KAExD,IAAM8yH,EAAY,CACd10G,EAAGypE,EAAOzpE,EAAIikG,GACdz6F,EAAGigE,EAAOjgE,EACVhT,MAAOizE,EAAOjzE,MACdC,OAAQytG,IAAwBz6B,EAAOjgE,EAAIigE,EAAOhzE,QAAU46C,EAAOo4B,EAAOhzE,OAAS,EAAIgzE,EAAOhzE,OAC9Fy2D,GAAAA,EACA6Q,GAAAA,EACA8uC,OAAQ,CACJjrH,SAAAA,EACAmrH,aACsB,IAAlBh3C,QACM,EACA,CACI/1D,EAAG,EACHwJ,EAAGigE,EAAOjgE,EACVhT,MAAOu/D,GACPt/D,OAAQgzE,EAAOhzE,UAIrCkxG,GAAc,CAAC/4E,EAAaC,EAAc4lF,IAC1ClJ,GAAiBmJ,GACjB,MAAA1rB,IAAAA,GAAyB0rB,EAAWA,EAAUxnD,GAAIwnD,EAAU32C,GAAI22C,EAAU7H,OAAA,GAE9E,CACI0H,GACAtQ,GACAC,GACA7yD,EACA0kB,GACAw1C,GACAviB,KAIF2rB,GAAoBpqD,GACtB83B,GACMwb,EAAAA,aACF,SAACpoD,EAAoB8X,GACjB,MAAA80B,IAAAA,GAAgB5sC,EAAawuD,GAAiB12C,EAAW02C,IACpC,SAAjBxD,IACA8G,GAAmB9kD,GAAiBE,oBAAoB4K,QAAW,GAAW,KAGtF,CAACkzC,GAAcpe,GAAe4hB,GAAiBsD,MAIjDqN,GAA2B/W,EAAAA,QAAO,GAClCzZ,GAAwByZ,EAAAA,aAC1B,SAACnoH,GAC4B,IAArBA,EAAKuD,SAAS,IAAYgrH,GAAkB,EAC5CvuH,EAAKgc,kBAGT,MAAAmiF,IAAAA,GAAA/qD,EAAAA,EAAA,GACOpzC,GAAA,IACHuD,SAAU,CAACvD,EAAKuD,SAAS,GAAKgrH,GAAiBvuH,EAAKuD,SAAS,OAG5DvD,EAAK6b,qBACNqjH,GAAmBtqH,SAAU,GAEjCk0G,OAAc,MAElB,CAAC3qB,GAAaowB,KAGZnwB,GAAkB+pB,EAAAA,aAAY,WAChC+W,GAAmBtqH,SAAU,IAC9B,IAEG04F,GAA0B6a,EAAAA,aAC5B,SAACnoH,GA1sET,IAAA4tF,EA2sEY,QACmB,IAAfi7B,GACuC,KAAvC,OAAAj7B,EAAA0tC,GAAc1mH,cAAd,EAAAg5E,EAAuBrqF,SAAS,KACX,IAArBvD,EAAKuD,SAAS,IACM,IAApBgrH,IACc,UAAdtD,IACApC,EAAW4S,oBACV5S,EAAW4S,kBAAkB9/D,KAAKwQ,SAASmvD,GAAc1mH,QAAQrR,SAAS,KAC3E8oH,GAAc1wD,KAAKwQ,SAASmvD,GAAc1mH,QAAQrR,SAAS,IAC7D,CACE,IAAMxN,EAAQJ,KAAKsJ,IAAIq8H,GAAc1mH,QAAQrR,SAAS,GAAIvD,EAAKuD,SAAS,IAClEvN,EAAML,KAAKG,IAAIwlI,GAAc1mH,QAAQrR,SAAS,GAAIvD,EAAKuD,SAAS,IAAM,EAC5EquH,GAAgB7kD,GAAiBE,oBAAoB,CAACl3E,EAAOC,SAAO,GAAW,GAEnF,QACmB,IAAf6yH,QAC0B,IAA1BwD,GAAcz3G,UACbsqH,GAAmBtqH,UACH,SAAhBi2G,IAA0C,eAAhBA,IAC7B,CACE,IAAAsU,GAAAt4E,EAAAA,EAAAA,GAAmCwlE,GAAcz3G,QAAQgtD,KAAA,GAAlD07D,EAAA6B,EAAA,GAAa5B,EAAA4B,EAAA,GAEpBC,GAAAv4E,EAAAA,EAAAA,GAAiB7mD,EAAKuD,SAAA,GAAjB2N,EAAAkuH,EAAA,GAAKxjE,EAAAwjE,EAAA,GAOV,GALIxjE,EAAM,IACNA,EAAMi5D,GAAiBjgH,QAAQkf,GAGFwsD,IAAiBi9C,IAAgB5hE,EACpC,OAG9B,GAD8B2kB,IAAiB1kB,IAAQD,EAC5B,CACvB,GAAI37D,EAAK8pE,OAASf,GACb,OAD8BnN,GAC9B,CAKT,IAAM/5C,GAFN3Q,EAAMvb,KAAKG,IAAIob,EAAKq9G,KAEC+O,EACfv7G,EAAS65C,EAAM2hE,EAEf8B,EAAsB,CACxB/0G,EAAGzI,GAAU,EAAIy7G,EAAcpsH,EAC/B4iB,EAAG/R,GAAU,EAAIw7G,EAAc3hE,EAC/B96C,MAAOnrB,KAAK4/C,IAAI1zB,GAAU,EAC1Bd,OAAQprB,KAAK4/C,IAAIxzB,GAAU,GAG/B4vG,GAAAv+E,EAAAA,EAAA,GAEWi5E,GAAcz3G,SAAA,IACjBxS,MAAOi9H,KAEX,GACA,EACA,QAIR,MAAAthC,IAAAA,GAAA3qD,EAAAA,EAAA,GAAqBpzC,GAAA,IAAMuD,SAAU,CAACvD,EAAKuD,SAAS,GAAKgrH,GAAiBvuH,EAAKuD,SAAS,SAE5F,CACIslH,EACA0F,GACAtD,GACAoB,GACAxB,GACA9sB,GACA6zB,GACAtxC,GACA3kB,EACAg2D,KAMF2N,GAAwBnX,EAAAA,aAC1B,SAACoX,GACG,QAA8B,IAA1BlT,GAAcz3G,QAAlB,CAEA,IAAA4qH,GAAA34E,EAAAA,EAAAA,GAAe04E,EAAA,GAARj1G,EAAAk1G,EAAA,GAAG1rG,EAAA0rG,EAAA,GACVC,GAAA54E,EAAAA,EAAAA,GAAmBwlE,GAAcz3G,QAAQgtD,KAAA,GAAlC1wD,EAAAuuH,EAAA,GAAK7jE,EAAA6jE,EAAA,GACNC,EAAMrT,GAAcz3G,QAAQxS,MAC9BilB,EAAOq4G,EAAIp1G,EACXyrB,EAAQ2pF,EAAIp1G,EAAIo1G,EAAI5+G,MACpByG,EAAMm4G,EAAI5rG,EACVkiB,EAAS0pF,EAAI5rG,EAAI4rG,EAAI3+G,OAGzB,GAAU,IAAN+S,EACA,OAAQA,QACC,EAGDvM,EAAMq0C,EACN65C,GAAS,EAFTz/D,EAAS2lB,EAEW,YAEpB,WAEE,EAGF3lB,EAAS4lB,EAAM,EACf65C,GAAS,EAFTluF,EAAM,EAEW,YAEjB,WAEC,EAEGA,EAAMq0C,GACNr0C,IACAkuF,GAAS,EAAGluF,EAAK,cAEjByuB,EAASrgD,KAAKsJ,IAAI08D,EAAM3lB,EAAS,GACjCy/D,GAAS,EAAGz/D,EAAQ,aAGxB,WAEE,EAEEA,EAAS4lB,EAAM,GACf5lB,IACAy/D,GAAS,EAAGz/D,EAAQ,cAEpBzuB,EAAM5xB,KAAKG,IAAI,EAAGyxB,EAAM,GACxBkuF,GAAS,EAAGluF,EAAK,aAGrB,cAGA29C,KAKZ,GAAU,IAAN56C,EACA,GAAU,IAANA,EACAyrB,EAAQy+E,GAAYtqI,OACpBm9B,EAAOnW,EACPukG,GAAS1/D,EAAQ,EAAIw4E,GAAiB,EAAG,uBAC3B,IAAPjkG,EAEPyrB,EAAQ7kC,EAAM,EACdukG,IAFApuF,EAAOknG,IAESA,GAAiB,EAAG,kBACjC,CACH,IAAIoR,EAAuB,GAC3B,QAA6B,IAAzBvpB,GAAoC,CACpC,IAAMz+C,EAAQy+C,GACV,CACI9rF,EAAGjD,EACHyM,EAAGvM,EACHzG,MAAOi1B,EAAQ1uB,EAAOknG,GACtBxtG,OAAQi1B,EAASzuB,GAErB4vF,GAAmBviG,QAAQwkG,QAGV,kBAAVzhD,IACPgoE,EA/uE5B,SAAsBhoE,GAClB,OAAOioE,EACHC,EACIA,EAAQloE,GACHzkB,QAAO,SAAA/tC,GAAA,YAAgB,IAAXA,EAAEuxE,IAAS,IACvBj8E,KAAI,SAAA0K,GAnIrB,IAAA+gE,EAAAC,EAAA+gB,EAAA7/B,EAmI0B,OAAAjlD,GAAO,OAAA+jE,EAAA,OAAAD,EAAA/gE,EAAEuxE,WAAF,EAAAxQ,EAAS,IAATC,EAAe,GAAK,GAAI,OAAA9e,EAAA,OAAA6/B,EAAA/hF,EAAEuxE,WAAF,EAAAwQ,EAAS,IAAT7/B,EAAe,GAAK,QA0uEpCy4E,CAAanoE,GAAA,CAGlC,GAAU,IAANrtC,EAAS,CAET,IAAIqM,GAAO,EACX,GAAItP,EAAOnW,EAAK,CACZ,GAAIyuH,EAAWz1I,OAAS,EAAG,CACvB,IAAMgoB,EAAS9P,EAAMilB,EAAO,EAAGnW,EAAM,GAAGovC,MACpC,SAAApqD,GAAA,OAAMypI,EAAW90I,SAASqL,EAAIq4H,GAAA,SAEnB,IAAXr8G,IACAmV,EAAOnV,EACPykB,GAAO,QAGXtP,IACAsP,GAAO,EAEPA,GAAM8+E,GAASpuF,EAAM,EAAG,cAE3BsP,IACDof,EAAQpgD,KAAKsJ,IAAIu1H,GAAYtqI,OAAQ6rD,EAAQ,GAC7C0/D,GAAS1/D,EAAQ,EAAIw4E,GAAiB,EAAG,wBAE/B,IAAPjkG,EAAU,CAEjB,IAAIqM,GAAO,EACX,GAAIof,EAAQ7kC,EAAM,EAAG,CACjB,GAAIyuH,EAAWz1I,OAAS,EAAG,CACvB,IAAMgoB,EAAS9P,EAAM2zC,EAAQ,EAAG7kC,GAAM,GAAGovC,MACrC,SAAApqD,GAAA,OAAMypI,EAAW90I,SAASqL,EAAIq4H,GAAA,SAEnB,IAAXr8G,IACA6jC,EAAQ7jC,EACRykB,GAAO,QAGXof,IACApf,GAAO,EAEPA,GAAM8+E,GAAS1/D,EAAQw4E,GAAiB,EAAG,cAE9C53F,IACDtP,EAAO1xB,KAAKG,IAAIy4H,GAAiBlnG,EAAO,GACxCouF,GAASpuF,EAAOknG,GAAiB,EAAG,oBAGxCrpD,IAAY,CAKxBysD,GACI,CACI/vD,KAAMyqD,GAAcz3G,QAAQgtD,KAC5Bx/D,MAAO,CACHkoB,EAAGjD,EACHyM,EAAGvM,EACHzG,MAAOi1B,EAAQ1uB,EACftG,OAAQi1B,EAASzuB,KAGzB,GACA,EACA,kBAnJ2C,CAmJ3C,GAGR,CAAC6uF,GAAsBiW,GAAemI,GAAYtqI,OAAQqkI,GAAiB5yD,EAAM85C,GAAUkc,KAGzFoO,GAA2B5X,EAAAA,aAC7B,SAACj3G,EAAa0qD,EAAaokE,EAAiCC,GACxD,IAAMC,EAAShK,IAAe8J,EAAyB,EAAI,GAI3D,GAHA9uH,EAAMivH,EAAMjvH,EAAKq9G,GAAiBngH,GAAQlkB,OAAS,EAAIqkI,IACvD3yD,EAAMukE,EAAMvkE,EAAK,EAAGskE,GAEhBhvH,KAAQ,MAAA2tH,QAAA,EAAAA,GAAc,KAAMjjE,KAAQ,MAAAijE,QAAA,EAAAA,GAAc,IAAI,OAAO,EACjE,GAAIoB,QAAsC,IAA1B5T,GAAcz3G,QAAuB,CACjD,IAAMwrH,EAAA70D,EAAe8gD,GAAcz3G,QAAQ8+E,aACvC24B,GAAcz3G,QAAQxS,MAAM0e,MAAQ,GAAKurG,GAAcz3G,QAAQxS,MAAM2e,OAAS,IAC9Eq/G,EAAS/1I,KAAKgiI,GAAcz3G,QAAQxS,OAExCwtH,GAAAx8E,EAAAA,EAAA,GAEWi5E,IAAA,IACHz3G,QAAS,CACLgtD,KAAM,CAAC1wD,EAAK0qD,GACZx5D,MAAO,CAAEkoB,EAAGpZ,EAAK4iB,EAAG8nC,EAAK96C,MAAO,EAAGC,OAAQ,GAC3C2yE,WAAY0sC,MAGpB,QAGJzO,GACI,CACI/vD,KAAM,CAAC1wD,EAAK0qD,GACZx5D,MAAO,CAAEkoB,EAAGpZ,EAAK4iB,EAAG8nC,EAAK96C,MAAO,EAAGC,OAAQ,KAE/C,GACA,EACA,gBAUR,YANyB,IAArBgoG,EAASn0G,SAAyBm0G,EAASn0G,QAAQ,KAAO1D,GAAO63G,EAASn0G,QAAQ,KAAOgnD,IACzFmtD,EAASn0G,aAAU,GAGvB6gG,GAASvkG,EAAMq9G,GAAiB3yD,IAEzB,IAEX,CACIs6D,GACA3H,GACAngH,GAAQlkB,OACR20I,GACAxS,GACA5W,GACAma,GACA+B,KAIFpiD,GAAwB44C,EAAAA,aAC1B,SAACj3C,EAAgCP,QACP,KAAlB,MAAAkyB,OAAA,EAAAA,EAASjhC,YAAmC,IAAbsP,GAA0BrH,GAAmBqH,KAC5EilD,GAAqB,CAAC,CAAE5yH,SAAUs/F,EAAQjhC,KAAMnzE,MAAOyiF,KACvDxrE,OAAOqpE,uBAAsB,WA/+E7C,IAAA6e,EAg/EoB,OAAAA,EAAAmf,GAAQn4F,UAARg5E,EAAiBR,OAAO,CACpB,CACIxrB,KAAMihC,EAAQjhC,OAAA,KAK9Bn6C,IAAM,GACNihG,OAAW,GAEX,IAAA2X,GAAAx5E,EAAAA,EAAAA,GAAqB8pB,EAAA,GAAd2vD,EAAAD,EAAA,GAAME,EAAAF,EAAA,GACb,QAA8B,IAA1BhU,GAAcz3G,UAAmC,IAAT0rH,GAAuB,IAATC,GAAa,CACnE,IAAMC,EACFnU,GAAcz3G,QAAQgtD,KAAK,KAAOs0D,GAAc,QAAkB,IAAbhlD,EACzD6uD,GACII,EAAM9T,GAAcz3G,QAAQgtD,KAAK,GAAK0+D,EAAM,EAAG9L,GAAYtqI,OAAS,GACpEi2I,EAAM9T,GAAcz3G,QAAQgtD,KAAK,GAAK2+D,EAAM,EAAGrK,GAAc,GAC7DsK,GACA,GAGR,MAAAnuD,GAAAA,EAAoBnB,EAAUP,EAAA,GAElC,CACI,MAAAkyB,OAAA,EAAAA,EAASjhC,KACTn6C,GACA4kG,GACAh6C,EACA8jD,GACAD,GACA6J,GACAvL,GAAYtqI,SAIdu2I,GAAkBtY,EAAAA,SAAQ,WAC5B,MAAO,eAAP9+F,OAAsB+9F,KAAA,GACvB,IAEGjnE,GAAkBgoE,EAAAA,aACpB,SAACpkG,GACG,IAAM6jC,EAAA,eAAA84E,EAAAnuE,EAAArF,IAAA6D,MAAK,SAAA4vE,IAAA,IAAA/yC,EAAA2I,EAAA2R,EAAAC,EAAAt1C,EAAA+tE,EAAA//H,EAAAggI,EAAAljH,EAAAD,EAAAE,EAAAH,EAAA3yB,EAAAm3G,EAAA6+B,EAAAC,EAAAC,EAAA/J,EAAA5pB,EAAA/T,EAAA9vD,EAAAyhB,EAAAg2E,EAwEPC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA5wH,EAAA0qD,EAAAqkE,EAAA8B,EAAAC,EAAAluG,GAAAmuG,GAAAhG,GAAA3xG,GAAA0xG,GAAA9pH,GAAAgwH,GAAAC,GAAA,OAAAj1E,IAAAO,MAAA,SAAA20E,GAAA,cAAAA,EAAA72E,KAAA62E,EAAAlwG,MAAA,OAlEwB,GAkExBgvG,EAAA,SAAqBrtG,GAjmFrC,IAAA2+D,EAAAwW,EAAAo0B,EAkmFoB31G,KAEA,IADA,IAAMs6G,EAA2B,GACxBz3G,EAAIuJ,EAAEvJ,EAAGA,EAAIuJ,EAAEvJ,EAAIuJ,EAAE/S,MAAOwJ,IACjC,IAAK,IAAIwJ,EAAID,EAAEC,EAAGA,EAAID,EAAEC,EAAID,EAAE9S,OAAQ+S,IAAK,CACvC,IAAMuuG,EAAYhxC,EAAe,CAAC/mE,EAAIikG,GAAiBz6F,IACvD,GAAKuuG,EAAUh9C,cAAgBg9C,EAAUv4D,OAASvB,GAAavgB,QAA/D,CACA,IAAI6oB,OAAoC,EACxC,GAAIwxD,EAAUv4D,OAASvB,GAAaqC,OAAQ,CACxC,IAAMwF,EAAS,MAAAP,QAAA,EAAAA,GAAgBwyD,GAC3Bv3D,GAA6BsF,KAC7BS,EAAS,OAAA2hB,EAAA,MAAApiB,OAAA,EAAAA,EAAQkyD,mBAAR,EAAA9vC,EAAAznG,KAAAqlF,EAAuBiyD,GAAA,SAGnCx4D,GAAmBw4D,IAAcA,EAAUh9C,cAC5Cg9C,EAAUv4D,OAASvB,GAAavgB,QAClC,CACE,IAAMo5E,EAAWxxD,GAAgByyD,GACjCxxD,EAAS,OAAAm4B,EAAA,MAAAo4B,OAAA,EAAAA,EAAUriB,eAAV,EAAA/V,EAAAj+G,KAAAq2I,EAAqBiB,EAAA,MAEnB,IAAXxxD,IAAyBzG,GAAgByG,IAAWhH,GAAmBgH,IACvEkxD,EAAS13I,KAAK,CAAEkZ,SAAU,CAAC+mB,EAAGwJ,GAAIrlC,MAAOoiF,GAfmC,CAenC,CAIrDslD,GAAqB4L,GACrB,OAAA3E,EAAArwB,GAAQn4F,UAARwoH,EAAiBhwC,OAAO20C,EAAStnI,KAAI,SAAA6vB,GAAA,MAAM,CAAEs3C,KAAMt3C,EAAE/mB,SAAA,MAjGrDq9H,GAAY,OACI,IAAhBxW,IACAA,GAAAh3E,EAAAA,EAAA,GACOrvB,GAAA,IACHljB,OAAQ,WACJ+/H,GAAY,OAKpBA,EAAA,CAAAwB,EAAAlwG,KAAA,eAAAkwG,EAAAxyE,OAAA,iBAc+B,GAZ7B/uD,EAAS,WACXkjB,EAAMlJ,kBACNkJ,EAAM/H,gBAAA,EAGJ6kH,OAA0B,IAAZh+B,EACZllF,EAAoDoG,EAApDpG,OAAQD,EAA4CqG,EAA5CrG,SAAUE,EAAkCmG,EAAlCnG,QAASH,EAAyBsG,EAAzBtG,QAAS3yB,EAAgBi5B,EAAhBj5B,IAAKm3G,EAAWl+E,EAAXk+E,OAC3C6+B,EAAQhlC,GAAartG,MACrBsyI,EAAeD,EAAQljH,EAAUH,EACjCujH,EAAsB,WAARl2I,GAAqBg2I,GAAiB,cAARh2I,EAC5CmsI,EAAKpC,GAAiBjgH,QACtBy4F,EAAkBgf,GAAcj+G,QAChCkrF,EAAe+yB,GAAc1wD,KAEvB,WAAR7wE,EAAQ,CAAAs3I,EAAAlwG,KAAA,SAKJ,OAJA2uG,EACAnY,OAAW,GACJ6B,GAAYv+H,QACnB4jI,GAAiB3H,IAAoB,GACrC,MAAAiE,IAAAA,MAAAkW,EAAAxyE,OAAA,sBAGG6rD,GAAS,YAAa13F,KAAUwmG,GAAYhD,UAAA,CAAA6a,EAAAlwG,KAAA,SA6BnD,OA5BK2uG,EAoBU,QADLr3F,EAAK7jC,SAAS6sE,eAAeiuD,OAEzBx1E,EAAIvlD,OAAOghB,gBACXmN,EAAIluB,SAAStD,eACjBogH,mBAAmBj5E,GACrB,MAAAyhB,GAAAA,EAAG/jC,kBACH,MAAA+jC,GAAAA,EAAG9jC,SAAS0M,IAxBhB+7F,GACI,CACIxhH,QAAS2+D,GAAiBC,QAC1BrR,KAAMoR,GAAiBC,QACvBp4D,QAAS,CACLgtD,KAAM,OAAA20B,EAAA,OAAA3I,EAAAy+B,GAAcz3G,cAAd,EAAAg5E,EAAuBhsB,MAAvB20B,EAA+B,CAACg4B,GAAiB,GACvDnsH,MAAO,CACHkoB,EAAGikG,GACHz6F,EAAG,EACHhT,MAAOsoG,EAAUl/H,OACjB62B,OAAQ46C,GAEZ+3B,WAAY,MAGpB,GAYR7yF,IAAAuhI,EAAAxyE,OAAA,kBAEO6rD,GAAS,YAAa13F,IAAUwmG,GAAYhnG,SACnD1iB,IACA,OAAAqnG,EAAA,MAAAiO,OAAA,EAAAA,EAAgBvhG,UAAhBszF,EAAyBzgF,MAAM,CAAE+/E,eAAe,IAChDonB,IAAmB,gBAgCnBoS,EAAA,CAAAoB,EAAAlwG,KAAA,SAGA,GAFMivG,EAAiB,OAAAh5B,EAAA,MAAA4W,QAAA,EAAAA,GAAWsN,MAAXlkB,EACvBtnG,KACuB,IAAnBsgI,EAA0B,CAS1B,QAAyB,KARnBC,GAA8B,IAAnBD,EAA0B9U,GAAgB8U,GAQ9CvsH,QAAuB,CAChCssH,EAAYE,EAASxsH,QAAQxS,OAAAi/H,EAAA7uE,EACb4uE,EAASxsH,QAAQ8+E,YAAA,IAAjC,IAAA2tC,EAAAp2E,MAAAq2E,EAAAD,EAAAnrI,KAAAygC,MAAW9C,EAAAytG,EAAA7yI,MACPyyI,EAAYrtG,EAAA,OAAAnwB,GAAA29H,EAAA/oI,EAAAoL,EAAA,SAAA29H,EAAAl7H,GAAA,EAAAq7H,EAAAhvE,EAIJ4uE,EAASzlE,MAAA,IAAzB,IAAA6lE,EAAAv2E,MAAAw2E,EAAAD,EAAAtrI,KAAAygC,MAAW9C,EAAA4tG,EAAAhzI,MACPyyI,EAAY,CACR52G,EAAGikG,GACHz6F,EAAGD,EACH/S,MAAO0zG,GAAYtqI,OAASqkI,GAC5BxtG,OAAQ,UAAArd,GAAA89H,EAAAlpI,EAAAoL,EAAA,SAAA89H,EAAAr7H,GAAA,CAAAw7H,EAAAnvE,EAIE4uE,EAAShzH,SAAA,IAA3B,IAAAuzH,EAAA12E,MAAA22E,EAAAD,EAAAzrI,KAAAygC,MAAWkrG,EAAAD,EAAAnzI,MACPyyI,EAAY,CACR52G,EAAGu3G,EACH/tG,EAAG,EACHhT,MAAO,EACPC,OAAQ46C,GAAA,OAAAj4D,GAAAi+H,EAAArpI,EAAAoL,EAAA,SAAAi+H,EAAAx7H,GAAA,SAAAi8H,EAAAxyE,OAAA,0BAOM,IAA1By8D,GAAcz3G,QAAY,CAAAwtH,EAAAlwG,KAAA,gBAAAkwG,EAAAxyE,OAAA,kBAEf,GAFekyE,GAAAj7E,EAAAA,EAAAA,GACbwlE,GAAcz3G,QAAQgtD,KAAA,GAAlC1wD,EAAA4wH,EAAA,GAAKlmE,EAAAkmE,EAAA,GACN7B,GAAW,GAEX1V,GAAY9C,eAAgBhM,GAAS,SAAU13F,IAA2B,SAAjBgnG,GAAiB,CAAAqX,EAAAlwG,KAAA,SACtEm7E,EAAgBlhC,SAASj7D,GACzB2gH,GAAmBxkB,EAAgB1hC,OAAOz6D,QAAM,GAAW,GAEtC,WAAjB65G,GACA8G,GAAmB9kD,GAAiBE,oBAAoB/7D,QAAM,GAAW,GAEzE2gH,QAAmB,EAAW3gH,GAAK,GAAAkxH,EAAAlwG,KAAA,sBAGpCq4F,GAAY/C,YAAa/L,GAAS,UAAW13F,IAAwB,SAAdknG,GAAc,CAAAmX,EAAAlwG,KAAA,SACxEonE,EAAantB,SAASvQ,GACtBg2D,GAAgBt4B,EAAa3tB,OAAO/P,QAAM,GAAW,GAEnC,WAAdqvD,GACA2G,GAAgB7kD,GAAiBE,oBAAoBrR,QAAM,GAAW,GAEtEg2D,QAAgB,EAAWh2D,GAAK,GAAAwmE,EAAAlwG,KAAA,uBAIvCupF,GAAS,QAAS13F,IAAU03F,GAAS,IAAK13F,IAAU03F,GAAS,cAAe13F,UAClE,IAAXk+E,EAAW,CAAAmgC,EAAAlwG,KAAA,SAEP2uG,GACAnY,OAAW,GACPjN,GAAS,QAAS13F,GAClB63C,IACO6/C,GAAS,cAAe13F,IAC/B63C,KAEGA,IAAQD,GAAQ6yD,GACvB9oH,OAAOpF,YAAW,WACd,IAAMw5H,EAAqBD,GAA4B3oH,GAClDmoH,GAAU,MAAAS,EAAAA,EAAsB5oH,EAAA,GACtC,IAEH,MAAAo4G,GAAAA,EAAkB,CAACp4G,EAAMq9G,GAAiB3yD,IAC1C87D,GAASz1B,GAAQ,GACjBphG,KAAAuhI,EAAAlwG,KAAA,uBAGJq4F,GAAY7C,UACZjM,GAAS,cAAe13F,IACxBsoG,GAAcz3G,QAAQxS,MAAM2e,OAAS,IAAAqhH,EAAAlwG,KAAA,SAGrC6pG,IAAS,GACTl7H,IAAAuhI,EAAAlwG,KAAA,uBAEAq4F,GAAY5C,WACZlM,GAAS,cAAe13F,IACxBsoG,GAAcz3G,QAAQxS,MAAM0e,MAAQ,IAAAshH,EAAAlwG,KAAA,SAG9B6vG,EAA2B,GAC3BluG,EAAIw4F,GAAcz3G,QAAQxS,MACvB0xB,GAAI,eAAGA,GAAID,EAAE9S,QAAA,CAAAqhH,EAAAlwG,KAAA,SAE0B,GADtC+vG,GAAUnuG,GAAID,EAAEC,GAElBs2C,GADE6xD,GAAUztB,GAAsB,CAAC36E,EAAEvJ,EAAG23G,OACX13D,GAAgB0xD,IAAA,CAAAmG,EAAAlwG,KAAA,gBAAAkwG,EAAAxyE,OAAA,uBACjD,IAAStlC,GAAI,EAAGA,GAAIuJ,EAAE/S,MAAOwJ,KACnB0xG,GAAU1xG,GAAIuJ,EAAEvJ,EAChBpY,GAAS,CAAC8pH,GAASiG,IACzBF,EAAS13I,KAAK,CACVkZ,SAAU2O,GACVzjB,MAAA2kD,EAAA,GAAY6oF,MAAA,QATMnoG,KAAAsuG,EAAAlwG,KAAA,iBAa9BikG,GAAqB4L,GACrB,OAAAlvE,EAAAk6C,GAAQn4F,UAARi+C,EAAiBu6B,OACb20C,EAAStnI,KAAI,SAAA0K,GAAA,MAAM,CACfy8D,KAAMz8D,EAAE5B,SAAA,KAGhB1C,IAAAuhI,EAAAlwG,KAAA,sBACOq4F,GAAY1C,WAAYpM,GAAS,WAAY13F,GAAA,CAAAq+G,EAAAlwG,KAAA,SACpD0pC,GAAOjmE,KAAKG,IAAI,EAAG++H,GAAiBjgH,QAAQmM,OAAS,GACrDlgB,IAAAuhI,EAAAlwG,KAAA,sBACOq4F,GAAY3C,SAAUnM,GAAS,SAAU13F,GAAA,CAAAq+G,EAAAlwG,KAAA,SAChD0pC,GAAOjmE,KAAKG,IAAI,EAAG++H,GAAiBjgH,QAAQmM,OAAS,GACrDlgB,IAAAuhI,EAAAlwG,KAAA,sBACOq4F,GAAYr+C,QAASuvC,GAAS,eAAgB13F,GAAA,CAAAq+G,EAAAlwG,KAAA,SACrDw2F,OAAW,GACX9sD,EAAM,EACN1qD,EAAM,EAAAkxH,EAAAlwG,KAAA,sBACCq4F,GAAY7oF,OAAQ+5E,GAAS,cAAe13F,GAAA,CAAAq+G,EAAAlwG,KAAA,SACnDw2F,OAAW,GACX9sD,EAAM3O,OAAOi5B,iBACbh1E,EAAM+7C,OAAOi5B,iBAAAk8C,EAAAlwG,KAAA,sBACNq4F,GAAYr+C,QAASuvC,GAAS,qBAAsB13F,GAAA,CAAAq+G,EAAAlwG,KAAA,SAC3Dw2F,OAAW,GACX4W,GAAgB,EAAE,GAAI,IAAD8C,EAAAlwG,KAAA,sBACdq4F,GAAY7oF,OAAQ+5E,GAAS,oBAAqB13F,GAAA,CAAAq+G,EAAAlwG,KAAA,UACzDw2F,OAAW,GACX4W,GAAgB,CAAC,EAAG,IAAA8C,EAAAlwG,KAAA,sBAEL,cAARpnC,EAAQ,CAAAs3I,EAAAlwG,KAAA,cACXzU,IAAWE,EAAA,CAAAykH,EAAAlwG,KAAA,iBAAAkwG,EAAAxyE,OAAA,mBAGf84D,OAAW,IACPhrG,GAA6B,SAAhBmtG,IAA0C,eAAhBA,IAInCltG,IAAWojH,IACXd,GAAW,GAEXc,IAAiBpjH,EACjBi+C,EAAMD,EAAO,EAEbC,GAAO,GARX0jE,GAAgB,CAAC,EAAGyB,IAAiBpjH,EAAS,EAAI,IAQvCykH,EAAAlwG,KAAA,sBAGA,YAARpnC,GAA6B,SAARA,EAAQ,CAAAs3I,EAAAlwG,KAAA,UAC9BgwG,GAAoB,SAARp3I,GAAkBi2I,EACpCrY,OAAW,IACPhrG,GAA6B,SAAhBmtG,IAA0C,eAAhBA,IAInCltG,IAAWukH,KACXjC,GAAW,GAEfrkE,GAAOsmE,KAAcvkH,EAASsvC,OAAO26B,kBAAoB,GALzD03C,GAAgB,CAAC,EAAG4C,KAAcvkH,GAAU,GAAK,IAKOykH,EAAAlwG,KAAA,sBAE7C,eAARpnC,GAAgC,QAARA,EAAQ,CAAAs3I,EAAAlwG,KAAA,UACjCgwG,GAAoB,QAARp3I,GAAiBi2I,EACnCrY,OAAW,IACPhrG,GAA6B,SAAhBmtG,IAA0C,eAAhBA,IAInCltG,IAAWukH,KACXjC,GAAW,GAEf/uH,GAAOgxH,KAAcvkH,EAASsvC,OAAOi5B,iBAAmB,GALxDo5C,GAAgB,CAAC4C,KAAcvkH,EAAS,EAAI,EAAG,IAKSykH,EAAAlwG,KAAA,sBAE7C,cAARpnC,EAAQ,CAAAs3I,EAAAlwG,KAAA,UACfw2F,OAAW,IACPhrG,GAA6B,SAAhBmtG,IAA0C,eAAhBA,IAInCltG,IAAWojH,IACXd,GAAW,GAEf/uH,GAAO6vH,IAAiBpjH,EAASsvC,OAAO26B,kBAAoB,GAL5D03C,GAAgB,CAACyB,IAAiBpjH,GAAU,GAAK,EAAG,IAKOykH,EAAAlwG,KAAA,sBAEhD,QAARpnC,EAAQ,CAAAs3I,EAAAlwG,KAAA,UACfw2F,OAAW,GACPhrG,EACAxM,IAEAA,IAAAkxH,EAAAlwG,KAAA,sBAGHtU,GACAH,QACyB,IAA1B4uG,GAAcz3G,SACC,IAAf9pB,EAAIZ,SACJ,SAASwK,KAAK5J,SACH,IAAXm3G,IACA13B,GAAgB8mB,EAAe,CAACngF,EAAMq9G,GAAiB54H,KAAKG,IAAI,EAAG8lE,EAAM,OAAAwmE,EAAAlwG,KAAA,aAGnEouD,IAAiB1kB,IAAQD,KAC1Bs7D,EAAGnjG,EAAI8nC,GAAOA,EAAMq7D,EAAGnjG,EAAImjG,EAAGl2G,QAAUk2G,EAAG3sG,EAAIpZ,GAAOA,EAAM+lH,EAAG3sG,EAAI2sG,EAAGn2G,OAAA,CAAAshH,EAAAlwG,KAAA,iBAAAkwG,EAAAxyE,OAAA,mBAI3E8nE,GAASz1B,GAAQ,EAAMn3G,GACvB+V,IAAA,SAGUk/H,GAAmB7uH,EAAK0qD,GAAK,EAAOqkE,IAE9Cp/H,IAAA,0BAAAuhI,EAAA9wE,OAAA,GAAAqvE,EAAA,uBApUF,OAAAD,EAAAj2I,MAAA,KAAAR,UAAA,KAuUD29D,GAAA,GAET,CACIwiE,GACAvnB,EACAwpB,GACA9B,GAAYhD,UACZgD,GAAYhnG,OACZgnG,GAAY9C,aACZ8C,GAAY/C,UACZ+C,GAAY7C,SACZ6C,GAAY5C,UACZ4C,GAAY1C,SACZ0C,GAAY3C,OACZ2C,GAAYr+C,MACZq+C,GAAY7oF,KACZ6oF,GAAYv+H,MACZ++H,GACAE,GACA55B,EACAk9B,GACAwR,GACAnQ,GACA1D,GACA9C,EAAUl/H,OACVyxE,EACA8kE,GACAh5G,GACA0uG,GACAtmD,GACAD,GACAmvC,GACAyV,GAAYtqI,OACZ2nI,GACAD,GACApD,GACAqL,GACAR,GACA/P,EACAoO,GACAqE,GACAvtB,GACA8wB,GACAzU,GACAvqC,KAIF+c,GAAsB8qB,EAAAA,aACxB,SAACnoH,EAA0Bgc,GACvB,IAAMumH,EAAcviI,EAAKuD,SAAS,GAAKgrH,GAKvC,GAJkB,WAAdvuH,EAAK8pE,OACL,MAAAggD,IAAAA,GAAsByY,EAAAnvF,EAAAA,EAAA,GAAkBpzC,GAAA,IAAMgc,eAAAA,MAG9Chc,EAAK8pE,OAAShB,GAAiB,CAC/B,GAAIy5D,EAAc,EACd,OAEJ,MAAAvY,IAAAA,GAA2BuY,EAAAnvF,EAAAA,EAAA,GAAkBpzC,GAAA,IAAMgc,eAAAA,IAAA,CAGvD,GAAkB,SAAdhc,EAAK8pE,KAAiB,CACtB,IAAA04D,GAAA37E,EAAAA,EAAAA,GAAmB7mD,EAAKuD,SAAA,GAAjB2N,EAAAsxH,EAAA,GAAK5mE,EAAA4mE,EAAA,GACZ,MAAA3Y,IAAAA,GAAoB,CAAC0Y,EAAa3mE,GAAAxoB,EAAAA,EAAA,GAC3BpzC,GAAA,IACHgc,eAAAA,KrD34Fb,SAA8B00G,EAAoBp3E,GACrD,IAAAmpF,GAAA57E,EAAAA,EAAAA,GAAmBvN,EAAA,GAAZpoC,EAAAuxH,EAAA,GAAK7mE,EAAA6mE,EAAA,GACZ,GAAI/R,EAAItiH,QAAQ+9D,SAASj7D,IAAQw/G,EAAI/0D,KAAKwQ,SAASvQ,GAAM,OAAO,EAChE,QAAoB,IAAhB80D,EAAI97G,QAAuB,CAC3B,GAAI87G,EAAI97G,QAAQgtD,KAAK,KAAO1wD,GAAOw/G,EAAI97G,QAAQgtD,KAAK,KAAOhG,EAAK,OAAO,EACvE,IACgBlI,EADmCC,EAAAnB,EAA7C,CAAWk+D,EAAI97G,QAAQxS,OAAAinB,OAAAkiD,EAAUmlD,EAAI97G,QAAQ8+E,cACnC,IAAhB,IAAA//B,EAAA1I,MAAAyI,EAAAC,EAAAz9D,KAAAygC,MAAyB,KAAd9C,EAAA6/B,EAAAjlE,MACP,GAAIyiB,GAAO2iB,EAAEvJ,GAAKpZ,EAAM2iB,EAAEvJ,EAAIuJ,EAAE/S,OAAS86C,GAAO/nC,EAAEC,GAAK8nC,EAAM/nC,EAAEC,EAAID,EAAE9S,OAAQ,OAAO,SAAArd,GAAAiwD,EAAAr7D,EAAAoL,EAAA,SAAAiwD,EAAAxtD,GAAA,EAG5F,OAAO,EqDo4FUu8H,CAAqBrW,GAAersH,EAAKuD,WAC1Cw8H,GAAmB7uH,EAAK0qD,GAAK,GAAO,MAIhD,CACIywD,GACAxC,GACAG,GACAF,GACAyE,GACAwR,KAIF4C,GAAwBxa,EAAAA,YAAA,eAAAya,EAAArwE,EAAArF,IAAA6D,MAC1B,SAAA8xE,EAAOvqI,GAAA,IAAAs1F,EAAA2I,EAAA2R,EAAAC,EAAAt1C,EAAA8pC,EAAAC,EAEHkmC,EAAAz1B,EAAA/T,EAAAuP,EAAA32F,EAAAlkB,EAAAy1B,EAAAs/G,EAAAC,EAAAC,EAAAC,EAAAC,EAAA7pF,EAAA8pF,EAAAltE,EAAAmtE,EAAA75F,EAAA85F,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA/0H,EAAAmzH,EAAA6B,EAAA/yD,EAAAgzD,EAAAC,EAAAC,EAAAnoE,EAAAooE,EAAAC,EAAAC,EAAAC,EAAAjzH,EAAAkzH,EAAAt4I,GAAAu4I,GAAAC,GAAA,OAAAp3E,IAAAO,MAAA,SAAA82E,GAAA,cAAAA,EAAAh5E,KAAAg5E,EAAAryG,MAAA,OAoCW,GApCX4wG,EAAA,SAAqBt4I,EAAsBg6I,EAAcvlB,GAv7FrE,IAAAzsB,EAAAwW,EAw7FgB,IAAK5+B,GAAgB5/E,IAAU+/E,GAAgB//E,KAA6B,IAAnBA,EAAMqgF,SAAmB,CAC9E,IAAM45D,EAAU,MAAAlb,OAAA,EAAAA,EAAmBtK,EAASz0H,GAC5C,QAAgB,IAAZi6I,GAAyB56D,GAAmB46D,GAK5C,OAJ6CA,EAAQ36D,OAASt/E,EAAMs/E,MAEhErsC,QAAQ8iB,KAAK,yCAEV,CACHh9C,SAAUihI,EACV/1I,MAAOg2I,GAGf,IAAM5wG,EAAI+7C,GAAgBplF,GAC1B,QAAU,IAANqpC,EAAiB,OACrB,GAAIA,EAAEi2C,OAASvB,GAAaqC,OAAQ,CAChC5F,GAAOx6E,EAAMs/E,OAASvB,GAAaqC,QACnC,IAAMiG,EAAS,OAAA2hB,EAAA3+D,EAAEmrF,cAAF,EAAAxsB,EAAAznG,KAAA8oC,EAAYorF,EAASz0H,GACpC,QAAe,IAAXqmF,EAAsB,OAC1B,MAAO,CACHttE,SAAUihI,EACV/1I,MAAA2kD,EAAAA,EAAA,GACO5oD,GAAA,IACHwD,KAAM6iF,IAAA,CAId,IAAMA,EAAS,OAAAm4B,EAAAn1E,EAAEmrF,cAAF,EAAAhW,EAAAj+G,KAAA8oC,EAAYorF,EAASz0H,GACpC,QAAe,IAAXqmF,EAAsB,OAE1B,OADA7L,GAAO6L,EAAO/G,OAASt/E,EAAMs/E,MACtB,CACHvmE,SAAUihI,EACV/1I,MAAOoiF,EAAA,CAIZ,EArCN05C,GAAYxC,MAAA,CAAAwc,EAAAryG,KAAA,eAAAqyG,EAAA30E,OAAA,iBAmDsC,GAXjDy9C,EAAkBgf,GAAcj+G,QAChCkrF,EAAe+yB,GAAc1wD,KAC7BktC,GACsD,KAAxD,OAAAjb,EAAA+hB,EAAU/6F,cAAV,EAAAg5E,EAAmBjoE,SAAShgB,SAASuF,kBACmB,KAAxD,OAAAqrF,EAAA2H,EAAUtpF,cAAV,EAAA2hF,EAAmB5wE,SAAShgB,SAASuF,qBAG1B,KADXgH,EAAS,OAAAg2F,EAAAmkB,GAAcz3G,cAAd,EAAAszF,EAAuBtmC,OACmB,IAA3ByrC,EAAgBnjH,SACxCgoB,EAAS,CAAC,OAAAi2F,EAAAkF,EAAgBnhC,SAAhBi8B,EAA2B,EAAG,SAE7B,IAAXj2F,GAAgD,IAAxBonF,EAAapvG,SACrCgoB,EAAS,CAACq8G,GAAiB,OAAA17D,EAAAymC,EAAaptB,SAAbrZ,EAAwB,KAGnDg2C,QAAsB,IAAX32F,EAAW,CAAAqyH,EAAAryG,KAAA,SAKL,GADX6wG,EAAY,aACZC,EAAW,iBAEgB,IAA7Bx9E,UAAU63D,UAAUqnB,KAAS,CAAAH,EAAAryG,KAAA,gBAAAqyG,EAAAryG,KAAA,GACEszB,UAAU63D,UAAUqnB,OAAA,QAA7CzB,EAAAsB,EAAA90E,KAAAyzE,EAAA1wE,EAEaywE,GAAAsB,EAAAh5E,KAAA,GAAA23E,EAAAj4E,IAAA,YAAAk4E,EAAAD,EAAAhtI,KAAAygC,KAAA,CAAA4tG,EAAAryG,KAAA,SAAR,KAAAonB,EAAA6pF,EAAA10I,OACEmP,MAAM/S,SAASm4I,GAAA,CAAAuB,EAAAryG,KAAA,gBAAAqyG,EAAAryG,KAAA,GACGonB,EAAKqrF,QAAQ3B,GAAA,QAA9B,OAAAI,EAAAmB,EAAA90E,KAAA80E,EAAAryG,KAAA,GACakxG,EAAS3/G,OAAA,QAGM,GAH5ByyC,EAAAquE,EAAA90E,MACA4zE,EAAW19H,SAASC,cAAc,SAC/BqH,UAAYipD,EAEV,QADL1sB,EAAK65F,EAASuB,cAAc,UACvB,CAAAL,EAAAryG,KAAA,SACW,OAAlBlkC,EAAOyuH,GAAWjzE,GAAA+6F,EAAA30E,OAAA,wBAItBtW,EAAK17C,MAAM/S,SAASk4I,GAAA,CAAAwB,EAAAryG,KAAA,gBAAAqyG,EAAAryG,KAAA,GAEAonB,EAAKqrF,QAAQ5B,GAAA,eAAAwB,EAAAryG,KAAA,GAAAqyG,EAAA90E,KAAYhsC,OAAA,QAA7CA,EAAA8gH,EAAA90E,KAAA,QAAA80E,EAAAryG,KAAA,iBAAAqyG,EAAAryG,KAAA,iBAAAqyG,EAAAh5E,KAAA,GAAAg5E,EAAAz3D,GAAAy3D,EAAA,UAAArB,EAAA5qI,EAAAisI,EAAAz3D,IAAA,eAAAy3D,EAAAh5E,KAAA,GAAA23E,EAAA/8H,IAAAo+H,EAAAvyE,OAAA,YAAAuyE,EAAAryG,KAAA,yBAGgC,IAAjCszB,UAAU63D,UAAUwnB,SAAa,CAAAN,EAAAryG,KAAA,gBAAAqyG,EAAAryG,KAAA,GAC3BszB,UAAU63D,UAAUwnB,WAAA,QAAjCphH,EAAA8gH,EAAA90E,KAAA80E,EAAAryG,KAAA,yBACa,IAAN55B,GAAwC,QAArB,MAAAA,OAAA,EAAAA,EAAGymB,eAAkB,CAAAwlH,EAAAryG,KAAA,SAC3C55B,EAAEymB,cAAcnhB,MAAM/S,SAASm4I,KACzB9sE,EAAO59D,EAAEymB,cAAc+lH,QAAQ9B,IAC/BK,EAAW19H,SAASC,cAAc,SAC/BqH,UAAYipD,EAEV,QADL1sB,EAAK65F,EAASuB,cAAc,YAE9B52I,EAAOyuH,GAAWjzE,UAGb,IAATx7C,GAAsBsK,EAAEymB,cAAcnhB,MAAM/S,SAASk4I,KACrDt/G,EAAOnrB,EAAEymB,cAAc+lH,QAAQ/B,IAAAwB,EAAAryG,KAAA,wBAAAqyG,EAAA30E,OAAA,kBAAA6zE,EAMZvxH,EAAAwxH,GAAA78E,EAAAA,EAAAA,GAAA48E,EAAA,GAApBE,EAAAD,EAAA,GAAS90H,EAAA80H,EAAA,GAEV3B,EAA2B,mBAEb,IAAZ/iB,GAAY,CAAAulB,EAAAryG,KAAA,SAQM,OAPZ0xG,EAAWp1B,GAAsBt8F,QAMxB,KALT2+D,EAASiyD,EACXc,EACA1xH,EACA,OAAAyqF,EAAA,MAAAl5E,EAAAA,EAAQ,MAAAz1B,OAAA,EAAAA,EAAMyM,KAAI,SAAAo5B,GAAA,OAAKA,EAAE7oC,KAAK,SAAOA,KAAK,OAA1C2xG,EAAmD,MAGnDolC,EAAS13I,KAAKwmF,GAAA0zD,EAAA30E,OAAA,4BAKT,IAAT5hE,EAAS,CAAAu2I,EAAAryG,KAAA,iBACI,IAATzO,EAAS,CAAA8gH,EAAAryG,KAAA,gBAAAqyG,EAAA30E,OAAA,kBACb5hE,EAAOouH,GAAQ34F,GAAA,YAIH,IAAZu7F,KACoB,oBAAZA,KAC0D,KAA9D,MAAAA,QAAA,EAAAA,GAAU,CAAC9sG,EAAO,GAAKq8G,GAAiBr8G,EAAO,IAAKlkB,KAAU,CAAAu2I,EAAAryG,KAAA,gBAAAqyG,EAAA30E,OAAA,kBAAAi0E,EAAArxE,EAKzCxkE,EAAKnC,WAAA04I,EAAAh5E,KAAA,GAAAs4E,EAAA54E,IAAA,YAAA64E,EAAAD,EAAA3tI,KAAAygC,KAAA,CAAA4tG,EAAAryG,KAAA,SAAjB,GAAiB6xG,GAAAl9E,EAAAA,EAAAA,GAAAi9E,EAAAr1I,MAAA,GAAtBmtE,EAAAmoE,EAAA,GAAKC,EAAAD,EAAA,KACTnoE,EAAMhtD,GAAW+sD,GAAA,CAAA4oE,EAAAryG,KAAA,gBAAAqyG,EAAA30E,OAAA,oBAAAq0E,EAAAzxE,EACSwxE,EAAQn4I,WAAA,IAAtC,IAAAo4I,EAAAh5E,MAAAi5E,EAAAD,EAAA/tI,KAAAygC,MAAiDwtG,GAAAt9E,EAAAA,EAAAA,GAAAq9E,EAAAz1I,MAAA,GAArCyiB,EAAAizH,EAAA,GAAKC,EAAAD,EAAA,GAEPP,GAAWp1B,GADX1iH,GAAQ,CAAColB,EAAMyyH,EAAS/nE,EAAMhtD,SAGrB,KADTiiE,GAASiyD,EAAYc,GAAU93I,GAAOs4I,KAExCrC,EAAS13I,KAAKwmF,GAAA,OAAAntE,GAAAugI,EAAA3rI,EAAAoL,EAAA,SAAAugI,EAAA99H,GAAA,SAAAo+H,EAAAryG,KAAA,iBAAAqyG,EAAAryG,KAAA,iBAAAqyG,EAAAh5E,KAAA,GAAAg5E,EAAAjrB,GAAAirB,EAAA,UAAAV,EAAAvrI,EAAAisI,EAAAjrB,IAAA,eAAAirB,EAAAh5E,KAAA,GAAAs4E,EAAA19H,IAAAo+H,EAAAvyE,OAAA,YAKrB,UAETmkE,GAAqB4L,GAErB,OAAAnlC,EAAAmQ,GAAQn4F,UAARgoF,EAAiBxP,OACb20C,EAAStnI,KAAI,SAAA0K,GAAA,MAAM,CACfy8D,KAAMz8D,EAAE5B,SAAA,8BAAAghI,EAAAjzE,OAAA,GAAAuxE,EAAA,wDAAAkC,GAAA,OAAAnC,EAAAn4I,MAAA,KAAAR,UAAA,EAtJE,GA2J1B,CACIs/H,EACA35C,GACA4+B,GACA6d,GACA9B,GAAYxC,MACZoO,GACAnX,GACAuP,GACA5yD,IAIR6Y,GAAiB,QAASmuD,GAAiBj9H,QAAQ,GAAO,GAK1D,IAAMs/H,GAAe7c,EAAAA,YAAA,eAAA8c,EAAA1yE,EAAArF,IAAA6D,MACjB,SAAAm0E,EAAO5sI,EAAoB6sI,GAAA,IAAAv3C,EAAA2I,EAAAsS,EAAAwE,EAAA/T,EAAA8rC,EAAAz7D,EAAA07D,EAAA1tE,EAAA2tE,EAAA9rB,EAAA+rB,EAAAC,EAAAC,EAAAv0H,EAAAw0H,EAAAC,EAAA,OAAAz4E,IAAAO,MAAA,SAAAm4E,GAAA,cAAAA,EAAAr6E,KAAAq6E,EAAA1zG,MAAA,UAClBq4F,GAAYzC,KAAA,CAAA8d,EAAA1zG,KAAA,eAAA0zG,EAAAh2E,OAAA,iBAsB2C,GArBtDi5C,GACc,IAAhBs8B,IACwD,KAAxD,OAAAv3C,EAAA+hB,EAAU/6F,cAAV,EAAAg5E,EAAmBjoE,SAAShgB,SAASuF,kBACmB,KAAxD,OAAAqrF,EAAA2H,EAAUtpF,cAAV,EAAA2hF,EAAmB5wE,SAAShgB,SAASuF,gBAEnCmiG,EAAkBgf,GAAcj+G,QAChCkrF,EAAe+yB,GAAc1wD,KAE7BypE,EAA6B,SAC/BztE,EACAslD,GAEKyO,GASD1O,GAAA,CANgBC,EAAcxiH,KAAI,SAAA3O,GAAA,MAAU,CACxCg+E,KAAMvB,GAAakC,KACnBz8E,KAAMo7H,EAAUt9H,GAAOwsE,MACvB+gD,YAAa+P,EAAUt9H,GAAOwsE,MAC9B+sB,cAAc,OAEDh8D,OAAAkiD,EAAY5T,IAAQslD,EAAe3kH,GARpD0kH,GAAgBrlD,EAAOslD,EAAe3kH,EAQc,GAIxDuwG,QAAoC,IAAzBuN,GAAyB,CAAAwvB,EAAA1zG,KAAA,iBACN,IAA1Bm6F,GAAcz3G,QAAY,CAAAgxH,EAAA1zG,KAAA,SAC+D,GACpE,kBADjBy3C,EAAQysC,GAAqBiW,GAAcz3G,QAAQxS,MAAO+0G,GAAmBviG,QAAQwkG,SACpE,CAAAwsB,EAAA1zG,KAAA,gBAAA0zG,EAAA1zG,KAAA,GACHy3C,IAAA,QAAdA,EAAAi8D,EAAAn2E,KAAA,QAEJ21E,EACIz7D,EACAvnE,EACIiqH,GAAcz3G,QAAQxS,MAAMkoB,EAAIikG,GAChClC,GAAcz3G,QAAQxS,MAAMkoB,EAAI+hG,GAAcz3G,QAAQxS,MAAM0e,MAAQytG,KAAAqX,EAAA1zG,KAAA,2BAGpD,IAAjBonE,GAA8BA,EAAapvG,OAAS,IAAA07I,EAAA1zG,KAAA,SAe5B,GAdzBmzG,EAAA95D,EAAa+tB,GACb3hC,EAAQ0tE,EAAO5qI,KAAI,SAAAorI,GACrB,IAAMl8D,EAAQysC,GACV,CACI9rF,EAAGikG,GACHz6F,EAAG+xG,EACH/kH,MAAOsoG,EAAUl/H,OAASqkI,GAC1BxtG,OAAQ,GAEZo2F,GAAmBviG,QAAQwkG,QAE/B,MAAqB,kBAAVzvC,EACAA,EAAM,GAEVA,IAAQt9C,MAAK,SAAApmB,GAAA,OAAKA,EAAE,UAE3B0xD,EAAMhL,MAAK,SAAAriC,GAAA,OAAKA,aAAap9B,OAAA,KAAA04I,EAAA1zG,KAAA,gBAAA0zG,EAAA1zG,KAAA,GACPhlC,QAAQq9D,IAAIoN,GAAA,QAA5B2tE,EAAAM,EAAAn2E,KACN21E,EAA2BE,EAASljI,EAAMgnH,EAAUl/H,SAAA07I,EAAA1zG,KAAA,iBAEpDkzG,EAA2BztE,EAAkCv1D,EAAMgnH,EAAUl/H,SAAA,QAAA07I,EAAA1zG,KAAA,sBAE1Em7E,EAAgBnjH,OAAS,IAAA07I,EAAA1zG,KAAA,SAC1BsnF,EAAgD,GAChD+rB,EAAiB,GAAAC,EAAAhzE,EACL66C,GAAAu4B,EAAAr6E,KAAA,GAAAi6E,EAAAv6E,IAAA,YAAAw6E,EAAAD,EAAAtvI,KAAAygC,KAAA,CAAAivG,EAAA1zG,KAAA,SAQiB,GARxBhhB,EAAAu0H,EAAAh3I,MAUc,kBATjBk7E,EAAQysC,GACR,CACI9rF,EAAGpZ,EACH4iB,EAAG,EACHhT,MAAO,EACPC,OAAQ46C,GAEZw7C,GAAmBviG,QAAQwkG,SAEV,CAAAwsB,EAAA1zG,KAAA,gBAAA0zG,EAAA1zG,KAAA,GACHy3C,IAAA,QAAdA,EAAAi8D,EAAAn2E,KAAA,QAEJ+pD,EAAQnvH,KAAKs/E,GACb47D,EAAKl7I,KAAK6mB,EAAMq9G,IAAA,QAAAqX,EAAA1zG,KAAA,iBAAA0zG,EAAA1zG,KAAA,iBAAA0zG,EAAAr6E,KAAA,GAAAq6E,EAAA94D,GAAA84D,EAAA,UAAAJ,EAAAltI,EAAAstI,EAAA94D,IAAA,eAAA84D,EAAAr6E,KAAA,GAAAi6E,EAAAr/H,IAAAy/H,EAAA5zE,OAAA,YAEG,IAAnBwnD,EAAQtvH,OACRk7I,EAA2B5rB,EAAQ,GAAI+rB,IAGjCF,EAAS7rB,EAAQhvD,QAAO,SAAC2yD,EAAIjuC,GAAA,OAAOiuC,EAAG1iH,KAAI,SAACmhE,EAAK9vE,GAAA,SAAAu9B,OAAAkiD,EAAc3P,GAAA2P,EAAQ2D,EAAGpjF,IAAA,OAChFs5I,EAA2BC,EAAQE,IAAA,yBAAAK,EAAAt0E,OAAA,GAAA4zE,EAAA,0CAAAY,EAAAC,GAAA,OAAAd,EAAAx6I,MAAA,KAAAR,UAAA,EAxFlC,GA6FjB,CAACm/H,EAAWhT,GAAsBiW,GAAe9B,GAAYzC,KAAMyG,GAAiB5yD,EAAM+vD,KAG9Fl3C,GAAiB,OAAQwwD,GAAQt/H,QAAQ,GAAO,GAEhD,IAAM2wG,GAA+B8R,EAAAA,aACjC,SAAC3O,EAA0BwsB,GACvB,GAAuB,IAAnBxsB,EAAQtvH,SAA8B,IAAd87I,EAA5B,CAEA,IAAAC,GAAAp/E,EAAAA,EAAAA,GAAmB2yD,EAAQwsB,GAAA,GAApB90H,EAAA+0H,EAAA,GAAKrqE,EAAAqqE,EAAA,QACa,IAArBld,EAASn0G,SAAyBm0G,EAASn0G,QAAQ,KAAO1D,GAAO63G,EAASn0G,QAAQ,KAAOgnD,IAG7FmtD,EAASn0G,QAAU,CAAC1D,EAAK0qD,GACzBmkE,GAAmB7uH,EAAK0qD,GAAK,GAAO,GAPe,CAOf,GAExC,CAACmkE,KAMLmG,GAAyB,OAAAl/E,EAAA,OAAAK,EAAA,MAAA+kE,QAAA,EAAAA,GAAoBx3G,cAApB,EAAAyyC,EAA6Bua,MAA7B5a,EAAqC,GAAAm/E,IAAAt/E,EAAAA,EAAAA,GAAAq/E,GAAA,GAAvDE,GAAAD,GAAA,GAAQE,GAAAF,GAAA,GACTG,GAAoBne,EAAAA,OAAO1S,IACjC6wB,GAAY1xH,QAAU6gG,GAChB0S,EAAAA,iBAAgB,WAvtG1B,IAAAv6B,EAAA2I,EAAA2R,EAAAC,EAytGa4sB,GAAgBngH,cACN,IAAXwxH,SACW,IAAXC,IACCD,MAAW,OAAA7vC,EAAA,OAAA3I,EAAA+hC,GAA8B/6G,cAA9B,EAAAg5E,EAAuCh5E,cAAvC,EAAA2hF,EAAgD30B,KAAK,KAC7DykE,MAAW,OAAAl+B,EAAA,OAAAD,EAAAynB,GAA8B/6G,cAA9B,EAAAszF,EAAuCtzF,cAAvC,EAAAuzF,EAAgDvmC,KAAK,KAEpE0kE,GAAY1xH,QAAQwxH,GAAQC,IAEhCtR,GAAgBngH,SAAU,IAC3B,CAACwxH,GAAQC,KAEZ,IAAM/0C,GAAqB62B,EAAAA,SAAQ,WAC/B,OAA6B,IAAzBqG,KAA8D,KAA7B,MAAAt7B,QAAA,EAAAA,GAAoBqzC,MAC9Cx5D,GAAiBE,oBAAoBipD,GAAc,GAEvDnpD,GAAiBC,OAAA,GACzB,CAACkpD,GAAa1H,GAAsB,MAAAt7B,QAAA,EAAAA,GAAoBqzC,OAErDC,GAA8Bre,EAAAA,aAChC,SAACj3G,GA5uGT,IAAA08E,EA6uGY,MAAiC,mBAAnB5G,GACRA,GACA,OAAA4G,EAAA,MAAA5G,QAAA,EAAAA,GAAiB91E,EAAMq9G,MAAvB3gC,CAA2C,GAErD,CAAC2gC,GAAiBvnC,KAGhBy/C,GAAwBte,EAAAA,SAAQ,WAClC,QAAoB,IAAhByT,IAAmD,OAAtB19B,EAAUtpF,QAAkB,OAAO,KACpE,IAAQqtF,EAAkB25B,GAAlB35B,OAAQrhB,EAAUg7C,GAAVh7C,MACV25B,EAAerc,EAAUtpF,QAAQq6D,wBACvC,OACIk5C,EAAAA,cAAC7N,GAAD,CACIrY,OAAAA,EACArhB,MAAAA,EACA25B,aAAAA,EACAd,QAAS,kBAAM8d,QAAe,IAC9B/c,SAAU,SAAA3pC,GACN0mD,QAAe,GACf,MAAAtN,IAAAA,GAAuBrpC,EAAO/P,EAAA,MAI3C,CAACo5C,GAAsB2R,KAEpB8K,GAAuB/wI,KAAKsJ,IAAIu1H,GAAYtqI,OAAQm2F,IAAiBiuC,GAAgB,EAAI,IAEzFnG,EAAAA,oBACFzrB,GACA,iBAAO,CACH28B,UAAW,SAACnoH,GAAA,OAAgBmoH,GAAUnoH,EAAMq9G,GAAA,EAC5CoY,YAAa,SAAAC,GA5wGzB,IAAAh5C,EAgxGgB,OAHwB,IAApB2gC,KACAqY,EAAaA,EAAWnsI,KAAI,SAAA6vB,GAAA,MAAM,CAAEs3C,KAAM,CAACt3C,EAAEs3C,KAAK,GAAK2sD,GAAiBjkG,EAAEs3C,KAAK,SAE5E,OAAAgsB,EAAAmf,GAAQn4F,cAAR,EAAAg5E,EAAiBR,OAAOw5C,EAAA,EAEnCn/B,UAAW,SAACv2F,EAAK0qD,GAlxG7B,IAAAgyB,EAmxGgB,OAAO,OAAAA,EAAAmf,GAAQn4F,cAAR,EAAAg5E,EAAiB6Z,UAAUv2F,EAAMq9G,GAAiB3yD,EAAA,EAE7Dn0C,MAAO,WArxGnB,IAAAmmE,EAqxGyB,cAAAA,EAAAmf,GAAQn4F,cAAR,EAAAg5E,EAAiBnmE,SAC9Bo/G,KAAA,eAAAC,EAAAv0E,EAAArF,IAAA6D,MAAM,SAAAg2E,EAAMzuI,GAAA,OAAA40D,IAAAO,MAAA,SAAAu5E,GAAA,cAAAA,EAAAz7E,KAAAy7E,EAAA90G,MAAA,OAAA80G,EAAAl6D,GACAx0E,EAAA0uI,EAAA90G,KACC,WADD80G,EAAAl6D,GACC,EAeA,eAfAk6D,EAAAl6D,GAeA,EAeA,cAfAk6D,EAAAl6D,GAeA,EAeA,SAfAk6D,EAAAl6D,GAeA,EAGA,UAHAk6D,EAAAl6D,GAGA,mBApCa,OAXd3sB,GAAU,CACN8hD,YAAQ,EACRphG,OAAQ,WAAM,EACdga,gBAAiB,WAAM,EACvBmB,eAAgB,WAAM,EACtByB,SAAS,EACT3yB,IAAK,SACLswB,QAAS,GACTwC,SAAS,EACTF,UAAU,EACVC,QAAQ,EACRkoF,cAAU,IAAAmhC,EAAAp3E,OAAA,mBAeA,OAXdzP,GAAU,CACN8hD,YAAQ,EACRphG,OAAQ,WAAM,EACdga,gBAAiB,WAAM,EACvBmB,eAAgB,WAAM,EACtByB,SAAS,EACT3yB,IAAK,IACLswB,QAAS,GACTwC,SAAS,EACTF,UAAU,EACVC,QAAQ,EACRkoF,cAAU,IAAAmhC,EAAAp3E,OAAA,mBAeA,OAXdzP,GAAU,CACN8hD,YAAQ,EACRphG,OAAQ,WAAM,EACdga,gBAAiB,WAAM,EACvBmB,eAAgB,WAAM,EACtByB,SAAS,EACT3yB,IAAK,IACLswB,QAAS,GACTwC,SAAS,EACTF,UAAU,EACVC,QAAQ,EACRkoF,cAAU,IAAAmhC,EAAAp3E,OAAA,0BAAAo3E,EAAA90G,KAAA,GAIR8yG,QAAO,GAAW,WAGlB,eAAAgC,EAAAp3E,OAAA,YAHkB,eAAAo3E,EAAA90G,KAAA,GAGlBywG,KAAA,yBAAAqE,EAAA11E,OAAA,GAAAy1E,EAAA,KACN,gBAAAE,GAAA,OAAAH,EAAAr8I,MAAA,KAAAR,UAAA,EApDZ,GAuDAwrH,SAAAA,GAAA,GAEJ,CAAC4jB,GAAW2L,GAAQ7kF,GAAWwiF,GAAiBpU,GAAiB9Y,KAGrE,IAAAyxB,GAAyB,MAAArI,GAAAA,GAAe,GAAAsI,IAAAtgF,EAAAA,EAAAA,GAAAqgF,GAAA,GAAjCE,GAAAD,GAAA,GAAQE,GAAAF,GAAA,GACTzoC,GAAsBypB,EAAAA,aACxB,SAACvmD,GACG,IAAA0lE,GAAAzgF,EAAAA,EAAAA,GAAmB+a,EAAA,GAAZ1wD,EAAAo2H,EAAA,GAAK1rE,EAAA0rE,EAAA,IAEC,IAAT1rE,EAQAwrE,KAAWl2H,GAAOm2H,KAAWzrE,IACjC+1D,GACI,CACI/vD,KAAAA,EACAx/D,MAAO,CAAEkoB,EAAGpZ,EAAK4iB,EAAG8nC,EAAK96C,MAAO,EAAGC,OAAQ,KAE/C,GACA,EACA,gBAEJ00F,GAASvkG,EAAK0qD,IAjBW,SAAjBmvD,KACA8G,GAAmB9kD,GAAiBE,oBAAoB/7D,QAAM,GAAW,GACzEuW,KAeM,GAElB,CAACsjG,GAActjG,GAAOguF,GAAU2xB,GAAQC,GAAQ1V,GAAYE,KAGhE0V,GAAwCpf,EAAAA,UAAS,GAAAqf,IAAA3gF,EAAAA,EAAAA,GAAA0gF,GAAA,GAA1Ch2C,GAAAi2C,GAAA,GAAWC,GAAAD,GAAA,GACZE,GAA8Bvf,EAAAA,OAChCwf,GAAS,SAACx2E,GACNs2E,GAAat2E,EAAA,GACd,IAGDgsC,GAAwBgrB,EAAAA,aAAY,WACtCuf,GAAsB9yH,SAAQ,QAIA,IAA1By3G,GAAcz3G,SACmB,IAAjCy3G,GAAcj+G,QAAQlkB,QACQ,IAA9BmiI,GAAc1wD,KAAKzxE,aACJ,IAAf2+H,GAEA8I,GACI,CACI/vD,KAAM,CAAC2sD,GAAiBruC,IACxB99E,MAAO,CACHkoB,EAAGikG,GACHz6F,EAAGosD,GACHp/D,MAAO,EACPC,OAAQ,KAGhB,GACA,EACA,qBAGT,CAACm/D,GAAamsC,GAAexD,EAAY0F,GAAiBoD,KAEvDiW,GAAmBzf,EAAAA,aAAY,WACjCuf,GAAsB9yH,SAAQ,KAC/B,IAEHizH,GAAwC1f,EAAAA,SAAQ,WAp5GpD,IAAAv6B,EAq5GYnkF,EACEq+H,EAAiB,OAAAl6C,EAAA,MAAAuR,QAAA,EAAAA,GAAc4oC,wBAAdn6C,EhDxwGxB,WACH,QAA4B,IAAxB7X,GAAmC,OAAOA,GAC9C,IAAMvrF,EAAQmb,SAASC,cAAc,KACrCpb,EAAMimB,MAAMqQ,MAAQ,OACpBt2B,EAAMimB,MAAMsQ,OAAS,QAErB,IAAM3pB,EAAQuO,SAASC,cAAc,OACrCxO,EAAMujB,GAAK,gBAEXvjB,EAAMqZ,MAAM4hC,SAAW,WACvBj7C,EAAMqZ,MAAM8W,IAAM,MAClBnwB,EAAMqZ,MAAM4W,KAAO,MACnBjwB,EAAMqZ,MAAMu3H,WAAa,SACzB5wI,EAAMqZ,MAAMqQ,MAAQ,QACpB1pB,EAAMqZ,MAAMsQ,OAAS,QACrB3pB,EAAMqZ,MAAMyf,SAAW,SACvB94B,EAAM+sF,OAAO35F,GAEbmb,SAASwF,KAAKg5E,OAAO/sF,GACrB,IAAMi4F,EAAK7kG,EAAMu4D,YACjB3rD,EAAMqZ,MAAMyf,SAAW,SACvB,IAAIq/D,EAAK/kG,EAAMu4D,YAQf,OAPIssC,IAAOE,IACPA,EAAKn4F,EAAM8hD,aAGf9hD,EAAMu0E,SAENoK,GAAsBsZ,EAAKE,CACpB,CgD2uG4D04C,GACzDC,EAA2BvsE,GAAQ6yD,GAAuB,EAAI,GACpE,GAAyB,kBAAdhuC,GACP/2E,EAAIw2E,GAAoBioD,EAA2B1nD,OAChD,CAGH,IAFA,IAAI2nD,EAAM,EACJC,EAAYzyI,KAAKsJ,IAAIipI,EAA0B,IAC5Cl+I,EAAI,EAAGA,EAAIo+I,EAAWp+I,IAC3Bm+I,GAAO3nD,GAAUx2F,GAErBm+I,EAAMxyI,KAAKurD,MAAMinF,EAAMC,GAEvB3+H,EAAIw2E,GAAoBioD,EAA2BC,CAAA,CAEvD1+H,GAAKq+H,EAEL,IAAMt9G,EAAIgqG,GAAYhqE,QAAO,SAAC80D,EAAKh1F,GAAA,OAAMA,EAAExJ,MAAQw+F,CAAA,GAAK,GAAKwoB,EAI7D,MAAO,CAAC,GAADz+G,OAAI1zB,KAAKsJ,IAAI,IAASurB,GAAA,SAAAnB,OAAW1zB,KAAKsJ,IAAI,IAASwK,GAAA,SAC3D,CAAC+qH,GAAa,MAAAr1B,QAAA,EAAAA,GAAc4oC,uBAAwBvnD,GAAW7kB,EAAM6yD,GAAsBvuC,KAAAooD,IAAAxhF,EAAAA,EAAAA,GAAAghF,GAAA,GAvBvFS,GAAAD,GAAA,GAAYE,GAAAF,GAAA,GAyBnB,OACIlgB,EAAAA,cAAC9/C,GAAa/jB,SAAd,CAAuB71D,MAAOqjI,IAC1B3J,EAAAA,cAAC7J,GAAD,CACI7tG,MAAOu1D,GAAa8rD,IACpB9/E,UAAAA,GACAusE,QAAS,MAAAz9F,EAAAA,EAASwnH,GAClB9pB,SAAU,MAAAz9F,EAAAA,EAAUwnH,IACpBpgB,EAAAA,cAACjS,GAAD,CACI7hB,WAAAA,GACAF,cAAAwJ,GACAwB,aAAAA,GACA5B,aAAAA,GACAE,aAAAA,GACA1W,oBAAAA,EACAhE,YAAAA,GACA+b,kBAAAA,GACA+Q,YAAAA,GACArR,YAAAA,GACAK,YAAAA,GACAqO,WAAAA,GACAqG,YAAAA,GACAC,YAAAA,GACApE,yBAAAA,GACAK,aAAAA,GACAC,kBAAAA,GACAgE,YAAAA,GACA1U,cAAAA,GACAE,cAAAA,GACAltD,UAAAA,GACA86C,aAAAA,GACAqQ,gBAAAA,GACAC,aAAcwqC,GACd1pC,UAAAA,EACAb,cAAAA,GACAp3B,MAAO6rD,GACPv6C,YAAAA,GACA2I,YAAAA,GACA4c,oBAAqB84B,GAAc70G,OACnCq9E,UAAAA,GACAhwF,QAASomH,GACTjvC,eAAgBolC,GAChB1hC,WAAAwnC,GACAn/B,aAAAA,GACAjR,cAAeqmD,GACfv5B,YAAaohB,GACbvwB,mBAAwC,IAApBuwB,GACpBl9B,eAAgBmd,GAChBvB,eAAAA,GACAD,eAAAA,GACAmJ,eAAAA,EACAN,WAAAA,GACAU,cAAAA,GACA7kB,iBAAAA,GACA0kB,qBAAAA,GACAjpB,gBAAiBmqC,GACjB72C,aAAAA,GACA8Q,UAAAA,GACAvR,kBAAmB8M,GAAe9M,GAAoB,EACtDiH,gBACKunC,IAA+D,KAA/B,MAAAt7B,QAAA,EAAAA,GAAoB/b,QAAkB,SAAW,WAA1D,OAE5By1B,eAAAA,GACAE,kBAAAA,GACAD,oBAAAA,GACAnO,cAAAA,GACAiO,cAAesyB,GACf9gC,YAAauQ,GACbzR,kBAAmB2hC,GACnB7gC,cAAeuP,GACfpQ,WAAsC,KAA3B,MAAA2rB,OAAA,EAAAA,EAAYx0B,YACvByJ,YAAa+/B,GACb19E,UAAAA,GACA89C,QAASosB,GACTp4E,YAAAA,GACA2rD,UAAAA,GACAe,eAAAA,GACAC,OAAAA,GACAyX,uBAAAA,GACA/C,uBAAwBwrB,GACxBzrB,WAAY,CAACA,GAAW,GAAIA,GAAW,IACvC7yB,UAAAA,GACA7kB,KAAMu6D,GACNvmB,UAAAA,EACAvkC,UAAWihD,GACXlsC,WAAYy1C,GAAcp+C,GAC1B4I,WAAYw1C,GAAcvtC,GAC1BrB,eAAgBw/C,GAChBz5B,QAAAA,GACAn9B,gBAAAA,GACAggC,YAAAA,KAEH62B,QACY,IAAZ5jC,GACGslB,EAAAA,cAAC94C,GAAAj8B,EAAAA,EAAA,GACOyvD,GAAA,IACJlzB,aAAAA,GACAh1D,GAAI8lH,GACJ7wD,gBAAAA,GACA59B,WAAuC,KAA5B,MAAAmtD,QAAA,EAAAA,GAAcqpC,WAAqB,4BAAyB,EACvE34D,cAAAA,GACAJ,oBAAAA,EACAF,gBAAAA,GACAG,sBAAAA,MAAA,IIphHjB,IAAM+4D,GAAe,CAC3B,CAAEnwE,MAAO,gBAAiB39C,GAAI,SAC9B,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,IAAU39C,GAAI,KACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,KAAU39C,GAAI,MACvB,CAAE29C,MAAO,SAAU39C,GAAI,MACvB,CAAE29C,MAAO,SAAU39C,GAAI,OAGX+tH,GAAa,CACzB,QACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MC3EYC,GAAW,CAAC,CAAC,MAAS,2CAA4C,EAAK,wJAA+D,EAAK,gCAAkB,EAAK,aAAc,EAAK,mCAAgB,EAAK,YAAa,EAAK,2CAAmB,EAAK,eAAgB,EAAK,+BAAiB,EAAK,SAAU,EAAK,mCAAgB,GAAM,aAAc,GAAM,6BAAe,GAAM,UAAW,GAAM,6BAAe,GAAM,YAAa,GAAM,wBAAY,GAAM,SAAU,GAAM,6BAAe,GAAM,WAAY,GAAM,4BAAc,GAAM,SAAU,GAAM,sBAAa,GAAM,WAAY,GAAM,4BAAc,GAAM,SAAU,GAAM,8BAAgB,GAAM,UAAW,GAAM,uBAAW,GAAM,8BAAgB,GAAM,4BAAc,GAAM,4BAAc,GAAM,4BAAc,GAAM,qBAAY,GAAM,qBAAY,GAAM,6BAAe,CAAC,MAAS,sBAAuB,EAAK,qCAAsC,EAAK,QAAS,EAAK,SAAU,EAAK,gBAAiB,EAAK,QAAS,EAAK,WAAY,EAAK,SAAU,EAAK,UAAW,EAAK,YAAa,EAAK,aAAc,GAAM,UAAW,GAAM,KAAM,GAAM,QAAS,GAAM,QAAS,GAAM,OAAQ,GAAM,SAAU,GAAM,OAAQ,GAAM,QAAS,GAAM,QAAS,GAAM,UAAW,GAAM,OAAQ,GAAM,OAAQ,GAAM,UAAW,GAAM,QAAS,GAAM,OAAQ,GAAM,OAAQ,GAAM,MAAO,GAAM,QAAS,GAAM,YAAa,GAAM,eAAgB,GAAM,OAAQ,GAAM,QAAS,GAAM,oBAAqB,GAAM,MAAO,GAAM,OAAQ,CAAC,MAAS,sCAAuC,EAAK,IAAK,EAAK,IAAK,EAAK,IAAK,EAAK,IAAK,EAAK,KAAM,EAAK,KAAM,EAAK,KAAM,EAAK,KAAM,EAAK,KAAM,EAAK,KAAM,GAAM,KAAM,GAAM,KAAM,GAAM,KAAM,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAQ,CAAC,MAAS,yBAA0B,EAAK,MAAO,EAAK,uBAAc,EAAK,uBAAc,EAAK,uBAAc,EAAK,eAAM,EAAK,eAAM,EAAK,eAAM,EAAK,eAAM,EAAK,eAAM,EAAK,eAAM,GAAM,eAAM,GAAM,2BAAkB,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,+BAAsB,GAAM,8BAAqB,GAAM,kCAAyB,GAAM,sBAAa,GAAM,+BAAsB,GAAM,8BAAqB,GAAM,MAAO,GAAM,kCAAyB,GAAM,4BAAmB,GAAM,sBAAa,GAAM,+BAAsB,GAAM,8BAAqB,GAAM,MAAO,GAAM,kCAAyB,GAAM,sBAAa,GAAM,MAAO,GAAM,yBAAgB,GAAM,MAAO,GAAM,0BAAiB,GAAM,OAAQ,CAAC,MAAS,qBAAsB,EAAK,MAAO,EAAK,4BAA6B,EAAK,2BAA4B,EAAK,0BAA2B,EAAK,2BAA4B,EAAK,0BAA2B,EAAK,4BAA6B,EAAK,2BAA4B,EAAK,0BAA2B,EAAK,4BAA6B,GAAM,4BAA6B,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,UAAW,GAAM,SAAU,GAAM,UAAW,GAAM,UAAW,GAAM,MAAO,GAAM,OAAQ,CAAC,MAAS,kCAAmC,EAAK,MAAO,EAAK,YAAa,EAAK,sBAAuB,EAAK,4BAA6B,EAAK,0CAA2C,EAAK,mBAAoB,EAAK,oCAAqC,EAAK,0BAA2B,EAAK,+BAAgC,EAAK,0BAA2B,GAAM,sBAAuB,GAAM,mBAAoB,GAAM,wBAAyB,GAAM,gBAAiB,GAAM,oBAAqB,GAAM,sBAAuB,GAAM,+BAAgC,GAAM,sBAAuB,GAAM,kCAAmC,GAAM,uDAAwD,GAAM,eAAgB,GAAM,uBAAwB,GAAM,mBAAoB,GAAM,eAAgB,GAAM,mBAAoB,GAAM,oCAAqC,GAAM,iBAAkB,GAAM,iBAAkB,GAAM,oBAAqB,GAAM,yBAA0B,GAAM,kBAAmB,GAAM,kBAAmB,GAAM,mCAAoC,GAAM,MAAO,GAAM,OAAQ,CAAC,MAAS,qCAAsC,EAAK,MAAO,EAAK,aAAc,EAAK,+BAAgC,EAAK,wBAAyB,EAAK,cAAe,EAAK,cAAe,EAAK,mCAAoC,EAAK,eAAgB,EAAK,eAAgB,EAAK,cAAe,GAAM,uCAAwC,GAAM,0CAA2C,GAAM,cAAe,GAAM,qBAAsB,GAAM,cAAe,GAAM,cAAe,GAAM,iBAAkB,GAAM,aAAc,GAAM,cAAe,GAAM,WAAY,GAAM,SAAU,GAAM,mBAAoB,GAAM,UAAW,GAAM,iCAAkC,GAAM,QAAS,GAAM,aAAc,GAAM,YAAa,GAAM,mBAAoB,GAAM,WAAY,GAAM,WAAY,GAAM,UAAW,GAAM,yDAA0D,GAAM,eAAgB,GAAM,oBAAqB,GAAM,iBAAkB,CAAC,MAAS,mCAAoC,EAAK,MAAO,EAAK,aAAc,EAAK,iBAAkB,EAAK,UAAW,EAAK,cAAe,EAAK,SAAU,EAAK,kBAAmB,EAAK,QAAS,EAAK,gBAAiB,EAAK,SAAU,GAAM,SAAU,GAAM,qBAAsB,GAAM,SAAU,GAAM,OAAQ,GAAM,gBAAiB,GAAM,UAAW,GAAM,aAAc,GAAM,SAAU,GAAM,QAAS,GAAM,mBAAoB,GAAM,mBAAoB,GAAM,SAAU,GAAM,gBAAiB,GAAM,YAAa,GAAM,aAAc,GAAM,OAAQ,GAAM,SAAU,GAAM,UAAW,GAAM,SAAU,GAAM,yBAA0B,GAAM,SAAU,GAAM,yBAA0B,GAAM,SAAU,GAAM,gCAAiC,GAAM,uBAAwB,CAAC,MAAS,uBAAwB,EAAK,MAAO,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,qCAAsC,GAAM,WAAY,CAAC,MAAS,iCAAkC,EAAK,MAAO,EAAK,mBAAoB,EAAK,OAAQ,EAAK,QAAS,EAAK,OAAQ,EAAK,cAAe,EAAK,gBAAiB,EAAK,UAAW,EAAK,SAAU,EAAK,SAAU,GAAM,UAAW,GAAM,WAAY,GAAM,SAAU,GAAM,SAAU,GAAM,WAAY,GAAM,MAAO,GAAM,cAAe,GAAM,aAAc,GAAM,SAAU,GAAM,cAAe,GAAM,aAAc,GAAM,OAAQ,GAAM,OAAQ,GAAM,YAAa,GAAM,aAAc,GAAM,SAAU,GAAM,QAAS,GAAM,MAAO,GAAM,WAAY,GAAM,6BAA8B,GAAM,cAAe,GAAM,aAAc,GAAM,QAAS,GAAM,QAAS,GAAM,4BAA6B,CAAC,MAAS,yBAA0B,EAAK,MAAO,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,WAAY,CAAC,MAAS,oCAAqC,EAAK,MAAO,EAAK,mBAAoB,EAAK,wCAAyC,EAAK,aAAc,EAAK,cAAe,EAAK,iBAAkB,EAAK,cAAe,EAAK,iCAAkC,EAAK,mBAAoB,EAAK,wCAAyC,GAAM,0BAA2B,GAAM,iBAAkB,GAAM,qBAAsB,GAAM,kBAAmB,GAAM,kBAAmB,GAAM,qBAAsB,GAAM,qBAAsB,GAAM,kBAAmB,GAAM,cAAe,GAAM,kBAAmB,GAAM,mBAAoB,GAAM,kBAAmB,GAAM,QAAS,GAAM,aAAc,GAAM,eAAgB,GAAM,gBAAiB,GAAM,iCAAkC,GAAM,aAAc,GAAM,wBAAyB,GAAM,aAAc,GAAM,aAAc,GAAM,oDAAqD,GAAM,MAAO,GAAM,MAAO,GAAM,OAAQ,CAAC,MAAS,4BAA6B,EAAK,MAAO,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,gCAAiC,EAAK,UAAW,EAAK,gCAAiC,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,gCAAiC,GAAM,UAAW,GAAM,gCAAiC,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,gCAAiC,GAAM,UAAW,GAAM,gCAAiC,GAAM,UAAW,GAAM,UAAW,GAAM,gCAAiC,GAAM,MAAO,GAAM,MAAO,GAAM,OAAQ,CAAC,MAAS,qCAAsC,EAAK,MAAO,EAAK,qBAAsB,EAAK,uCAAwC,EAAK,oBAAqB,EAAK,4BAA6B,EAAK,oBAAqB,EAAK,aAAc,EAAK,qBAAsB,EAAK,6BAA8B,EAAK,wBAAyB,GAAM,qBAAsB,GAAM,uBAAwB,GAAM,sBAAuB,GAAM,wBAAyB,GAAM,0CAA2C,GAAM,cAAe,GAAM,aAAc,GAAM,iCAAkC,GAAM,sBAAuB,GAAM,gBAAiB,GAAM,cAAe,GAAM,2BAA4B,GAAM,aAAc,GAAM,uBAAwB,GAAM,2CAA4C,GAAM,kBAAmB,GAAM,4BAA6B,GAAM,mCAAoC,GAAM,sBAAuB,GAAM,eAAgB,GAAM,kBAAmB,GAAM,uCAAwC,GAAM,mBAAoB,GAAM,mBAAoB,GAAM,wDAAyD,CAAC,MAAS,6BAA8B,EAAK,MAAO,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,EAAK,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,YCAttWC,GAAY,CACrBxiE,YAAa,UACbE,YAAa,6BAEbC,SAAU,UACVC,WAAY,UACZC,UAAW,UACXC,WAAY,UAEZC,aAAc,UACdC,aAAc,UACdC,WAAY,UACZE,mBAAoB,UAEpBC,OAAQ,UACRC,aAAc,UACdC,SAAU,UACVC,iBAAkB,UAClBC,gBAAiB,UAEjBC,SAAU,UACVC,iBAAkB,UAElBC,eAAgB,UAEhBC,YAAa,wBACbE,gBAAiB,wBAEjBC,UAAW,UAEXG,gBAAiB,YACjBC,cAAe,OACfC,WACI,yJCiGR,OAnHA,WAEC,IAAA6gE,EAAoCl/E,EAAAA,UAAe,GAAMm/E,GAAAjiF,EAAAA,EAAAA,GAAAgiF,EAAA,GAAlDhzB,EAAUizB,EAAA,GAAEC,EAAaD,EAAA,GAC1BvyB,EAAgB5sD,EAAAA,aAAkB,kBAAMo/E,GAAc,EAAM,GAAE,IAE9DC,EAAar/E,EAAAA,aAAmB,SAAAiY,GACrC,IAAA6sC,GAAA5nD,EAAAA,EAAAA,GAAmB+a,EAAI,GAAhB1wD,EAAGu9F,EAAA,GAAE7yC,EAAG6yC,EAAA,GACTu1B,EAAU2E,GAAS/sE,GAGzBn+B,QAAQ9mB,IAAKzF,EAAK0qD,EAAK8sE,GAAWx3H,GAAM8yH,GAExC,IAAM99H,EAAI89H,EAAS0E,GAAWx3H,IAC9B,MAAO,CACN44D,KAAMvB,GAAakC,KACnB4a,cAAc,EACdg0B,YAAanzG,EACblY,KAAMkY,EAER,GAAG,IA2BH,OACC+iI,EAAAA,GAAAA,KAAA,OAAKj3F,UAAU,MAAKzlC,UACnB28H,EAAAA,GAAAA,MAAA,OAAKl3F,UAAU,aAAYzlC,SAAA,EAC1B28H,EAAAA,GAAAA,MAAA,OAAKl3F,UAAU,UAASzlC,SAAA,EACvB08H,EAAAA,GAAAA,KAAA,OAAKj3F,UAAU,QAAOzlC,SAAC,cACvB08H,EAAAA,GAAAA,KAAA,OAAKj3F,UAAU,WAAUzlC,SAAC,0FAK3B08H,EAAAA,GAAAA,KAAA,OAAKj3F,UAAU,gBAAezlC,UAC7B08H,EAAAA,GAAAA,KAAA,OAAK5jG,IAAI,sCAGV4jG,EAAAA,GAAAA,KAAA,UAAQ5mG,QAAS,kBAAI0mG,GAAc,EAAK,EAAEvsI,KAAK,SAASw1C,UAAU,SAAQzlC,UACzE08H,EAAAA,GAAAA,KAAA,OAAKj3F,UAAU,gBAAezlC,UAC7B28H,EAAAA,GAAAA,MAAA,OAAK7zD,MAAM,6BAA6BpsB,MAAM,UAAUksB,QAAQ,cAAa5oE,SAAA,EAAC08H,EAAAA,GAAAA,KAAA,QAAM/iI,EAAE,wEAAwEkvE,KAAK,OAAOE,OAAO,eAAe,oBAAkB,KAAK,eAAa,QAAM2zD,EAAAA,GAAAA,KAAA,QAAM7zD,KAAK,OAAOE,OAAO,OAAO,iBAAe,QAAQ,oBAAkB,KAAK,eAAa,KAAKpvE,EAAE,mCAI9U+iI,EAAAA,GAAAA,KAAA,OAAKj3F,UAAU,gBAAezlC,UAC7B08H,EAAAA,GAAAA,KAAC/gB,GAAU,CACVjiD,MAAO2iE,GAEPvoD,cAAe,EACf8e,aAAc,CAAC3kB,eAAc,GAE7B+vC,YAAa,CAAChnG,QAAQ,GACtBsyF,WAAYA,EACZO,sBAAsB,EACtBG,cAAeA,EACfvkE,UAAU,OACVq/C,eAAgB23C,EAChB56H,QAASq6H,GACT9sE,KAAMgtE,GAASz+I,OAEfo7F,SAAU,SAAAtlF,GACT,IAAQ4hE,EAAoB5hE,EAApB4hE,KAAMsU,EAAcl2E,EAAdk2E,KAAMsC,EAAQx4E,EAARw4E,IAEd2wD,EAAYvnE,EAAKy3C,YAEvB,GAA2B,KAAvB8vB,EAAUvqI,OAAO,GAAW,OAAO,EAEvC45E,EAAIpH,OACJ,IArEgBg4D,EAqER9+G,EAAwB4rD,EAAxB5rD,EAAGwJ,EAAqBoiD,EAArBpiD,EAAGhT,EAAkBo1D,EAAlBp1D,MAAOC,EAAWm1D,EAAXn1D,OAYrB,OATAy3D,EAAIuB,UAAYovD,EAChB3wD,EAAI4N,SAAS97D,EAAI,EAAGwJ,EAAI,EAAGhT,EAAQ,EAAGC,EAAS,GAG/Cy3D,EAAIuB,YA5EYqvD,EA4EaD,GA1EbhhF,WAAW,OAC9BihF,EAAmBA,EAAiBzyI,MAAM,KAShB,MALlBkM,SAASumI,EAAiBzyI,MAAM,EAAG,GAAI,IAKR,MAJ/BkM,SAASumI,EAAiBzyI,MAAM,EAAG,GAAI,IAIK,MAH5CkM,SAASumI,EAAiBzyI,MAAM,EAAG,GAAI,KAGmB,IAI3C,GACV,UAEA,WA0DV6hF,EAAIC,KAAO,8BACXD,EAAI0B,SAASivD,EAAW7+G,EAAIxJ,EAAM,EAAGgT,EAAI/S,EAAS,EAAI,KACtDy3D,EAAIiB,WAEG,CACR,OAMFwvD,EAAAA,GAAAA,KAAA,OAAKj3F,UAAU,SAAQzlC,SAAC,2DAI5B,ECpHA,GAZwB,SAAA88H,GAClBA,GAAeA,aAAuBj1I,UACxC,6BAAqBi4B,MAAK,SAAA6jB,GAAkD,IAA/Co5F,EAAMp5F,EAANo5F,OAAQC,EAAMr5F,EAANq5F,OAAQC,EAAMt5F,EAANs5F,OAAQC,EAAMv5F,EAANu5F,OAAQC,EAAOx5F,EAAPw5F,QAC3DJ,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EACV,GAEJ,ECJaM,EAAAA,WAAoBhkI,SAAS6sE,eAAe,SACpD3oE,QACHo/H,EAAAA,GAAAA,KAACt/E,EAAAA,WAAgB,CAAAp9C,UACf08H,EAAAA,GAAAA,KAACW,GAAG,OAORC","sources":["../node_modules/classnames/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAggregator.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClamp.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHas.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createAggregator.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/clamp.js","../node_modules/lodash/debounce.js","../node_modules/lodash/eq.js","../node_modules/lodash/flatten.js","../node_modules/lodash/get.js","../node_modules/lodash/groupBy.js","../node_modules/lodash/has.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/memoize.js","../node_modules/lodash/noop.js","../node_modules/lodash/now.js","../node_modules/lodash/property.js","../node_modules/lodash/range.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/throttle.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/uniq.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-easy-swipe/lib/index.js","../node_modules/react-easy-swipe/lib/react-swipe.js","../node_modules/react-responsive-carousel/lib/js/CSSTranslate.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/animations.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/index.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/utils.js","../node_modules/react-responsive-carousel/lib/js/components/Thumbs.js","../node_modules/react-responsive-carousel/lib/js/cssClasses.js","../node_modules/react-responsive-carousel/lib/js/dimensions.js","../node_modules/react-responsive-carousel/lib/js/index.js","../node_modules/react-responsive-carousel/lib/js/shims/document.js","../node_modules/react-responsive-carousel/lib/js/shims/window.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","../node_modules/node_modules/@linaria/core/src/cx.ts","../node_modules/node_modules/@linaria/react/src/styled.ts","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","logo.svg","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/canvas-hypertxt/src/multi-line.ts","../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","../node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js","../node_modules/marked/lib/marked.esm.js","../node_modules/@glideapps/glide-data-grid/src/common/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/common/support.ts","../node_modules/@glideapps/glide-data-grid/src/click-outside-container/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/click-outside-container/click-outside-container.tsx","../node_modules/@glideapps/glide-data-grid/src/common/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/common/styles.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/data-grid-types.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/data-grid-overlay-editor-style.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/use-stay-on-screen.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/data-grid-overlay-editor.tsx","../node_modules/@glideapps/glide-data-grid/src/common/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/common/image-window-loader.ts","../node_modules/@glideapps/glide-data-grid/src/common/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/common/utils.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/data-grid-lib.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/sprites.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/data-grid-sprites.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/color-parser.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/data-grid-render.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/animation-manager.ts","../node_modules/@glideapps/glide-data-grid/src/common/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/common/browser-detect.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/use-animation-queue.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/data-grid.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-dnd/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-dnd/data-grid-dnd.tsx","../node_modules/@glideapps/glide-data-grid/src/scrolling-data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/scrolling-data-grid/infinite-scroller.tsx","../node_modules/@glideapps/glide-data-grid/src/common/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/common/resize-detector.ts","../node_modules/@glideapps/glide-data-grid/src/scrolling-data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/scrolling-data-grid/scrolling-data-grid.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-search/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-search/data-grid-search-style.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-search/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-search/data-grid-search.tsx","../node_modules/@glideapps/glide-data-grid/src/data-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor/group-rename.tsx","../node_modules/@glideapps/glide-data-grid/src/data-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor/use-column-sizer.ts","../node_modules/@glideapps/glide-data-grid/src/common/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/common/is-hotkey.ts","../node_modules/@glideapps/glide-data-grid/src/data-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor/data-editor-fns.ts","../node_modules/@glideapps/glide-data-grid/src/data-editor-container/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor-container/data-grid-container.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/boolean-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/bubbles-overlay-editor-style.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/bubbles-overlay-editor.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/bubble-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/drilldown-overlay-editor.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/drilldown-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/image-overlay-editor-style.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/image-overlay-editor.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/image-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/loading-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/markdown-div/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/markdown-div/private/markdown-container.tsx","../node_modules/@glideapps/glide-data-grid/src/markdown-div/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/markdown-div/markdown-div.tsx","../node_modules/@glideapps/glide-data-grid/src/growing-entry/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/growing-entry/growing-entry-style.tsx","../node_modules/@glideapps/glide-data-grid/src/growing-entry/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/growing-entry/growing-entry.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/markdown-overlay-editor-style.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/markdown-overlay-editor.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/markdown-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/marker-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/new-row-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/number-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/protected-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/row-id-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/text-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/uri-overlay-editor-style.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid-overlay-editor/private/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/uri-overlay-editor.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/uri-cell.tsx","../node_modules/@glideapps/glide-data-grid/src/data-grid/cells/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/cells/index.ts","../node_modules/@glideapps/glide-data-grid/src/data-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor/data-editor.tsx","../node_modules/@glideapps/glide-data-grid/src/data-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor/use-cells-for-selection.ts","../node_modules/@glideapps/glide-data-grid/src/data-grid/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-grid/use-selection-behavior.ts","../node_modules/@glideapps/glide-data-grid/src/data-editor/home/runner/work/glide-data-grid/glide-data-grid/packages/core/src/data-editor/use-autoscroll.ts","structure.js","liber_777.js","dark.js","App.js","reportWebVitals.js","index.js"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var supportsCaptureOption = false;\n function setHasSupportToCaptureOption(hasSupport) {\n supportsCaptureOption = hasSupport;\n }\n\n try {\n addEventListener('test', null, Object.defineProperty({}, 'capture', { get: function get() {\n setHasSupportToCaptureOption(true);\n } }));\n } catch (e) {} // eslint-disable-line no-empty\n\n function getSafeEventHandlerOpts() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { capture: true };\n\n return supportsCaptureOption ? options : options.capture;\n }\n\n /**\n * [getPosition returns a position element that works for mouse or touch events]\n * @param {[Event]} event [the received event]\n * @return {[Object]} [x and y coords]\n */\n function getPosition(event) {\n if ('touches' in event) {\n var _event$touches$ = event.touches[0],\n pageX = _event$touches$.pageX,\n pageY = _event$touches$.pageY;\n\n return { x: pageX, y: pageY };\n }\n\n var screenX = event.screenX,\n screenY = event.screenY;\n\n return { x: screenX, y: screenY };\n }\n\n var ReactSwipe = function (_Component) {\n _inherits(ReactSwipe, _Component);\n\n function ReactSwipe() {\n var _ref;\n\n _classCallCheck(this, ReactSwipe);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = ReactSwipe.__proto__ || Object.getPrototypeOf(ReactSwipe)).call.apply(_ref, [this].concat(args)));\n\n _this._handleSwipeStart = _this._handleSwipeStart.bind(_this);\n _this._handleSwipeMove = _this._handleSwipeMove.bind(_this);\n _this._handleSwipeEnd = _this._handleSwipeEnd.bind(_this);\n\n _this._onMouseDown = _this._onMouseDown.bind(_this);\n _this._onMouseMove = _this._onMouseMove.bind(_this);\n _this._onMouseUp = _this._onMouseUp.bind(_this);\n\n _this._setSwiperRef = _this._setSwiperRef.bind(_this);\n return _this;\n }\n\n _createClass(ReactSwipe, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.swiper) {\n this.swiper.addEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.swiper) {\n this.swiper.removeEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: '_onMouseDown',\n value: function _onMouseDown(event) {\n if (!this.props.allowMouseEvents) {\n return;\n }\n\n this.mouseDown = true;\n\n document.addEventListener('mouseup', this._onMouseUp);\n document.addEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeStart(event);\n }\n }, {\n key: '_onMouseMove',\n value: function _onMouseMove(event) {\n if (!this.mouseDown) {\n return;\n }\n\n this._handleSwipeMove(event);\n }\n }, {\n key: '_onMouseUp',\n value: function _onMouseUp(event) {\n this.mouseDown = false;\n\n document.removeEventListener('mouseup', this._onMouseUp);\n document.removeEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeEnd(event);\n }\n }, {\n key: '_handleSwipeStart',\n value: function _handleSwipeStart(event) {\n var _getPosition = getPosition(event),\n x = _getPosition.x,\n y = _getPosition.y;\n\n this.moveStart = { x: x, y: y };\n this.props.onSwipeStart(event);\n }\n }, {\n key: '_handleSwipeMove',\n value: function _handleSwipeMove(event) {\n if (!this.moveStart) {\n return;\n }\n\n var _getPosition2 = getPosition(event),\n x = _getPosition2.x,\n y = _getPosition2.y;\n\n var deltaX = x - this.moveStart.x;\n var deltaY = y - this.moveStart.y;\n this.moving = true;\n\n // handling the responsability of cancelling the scroll to\n // the component handling the event\n var shouldPreventDefault = this.props.onSwipeMove({\n x: deltaX,\n y: deltaY\n }, event);\n\n if (shouldPreventDefault && event.cancelable) {\n event.preventDefault();\n }\n\n this.movePosition = { deltaX: deltaX, deltaY: deltaY };\n }\n }, {\n key: '_handleSwipeEnd',\n value: function _handleSwipeEnd(event) {\n this.props.onSwipeEnd(event);\n\n var tolerance = this.props.tolerance;\n\n\n if (this.moving && this.movePosition) {\n if (this.movePosition.deltaX < -tolerance) {\n this.props.onSwipeLeft(1, event);\n } else if (this.movePosition.deltaX > tolerance) {\n this.props.onSwipeRight(1, event);\n }\n if (this.movePosition.deltaY < -tolerance) {\n this.props.onSwipeUp(1, event);\n } else if (this.movePosition.deltaY > tolerance) {\n this.props.onSwipeDown(1, event);\n }\n }\n\n this.moveStart = null;\n this.moving = false;\n this.movePosition = null;\n }\n }, {\n key: '_setSwiperRef',\n value: function _setSwiperRef(node) {\n this.swiper = node;\n this.props.innerRef(node);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n tagName = _props.tagName,\n className = _props.className,\n style = _props.style,\n children = _props.children,\n allowMouseEvents = _props.allowMouseEvents,\n onSwipeUp = _props.onSwipeUp,\n onSwipeDown = _props.onSwipeDown,\n onSwipeLeft = _props.onSwipeLeft,\n onSwipeRight = _props.onSwipeRight,\n onSwipeStart = _props.onSwipeStart,\n onSwipeMove = _props.onSwipeMove,\n onSwipeEnd = _props.onSwipeEnd,\n innerRef = _props.innerRef,\n tolerance = _props.tolerance,\n props = _objectWithoutProperties(_props, ['tagName', 'className', 'style', 'children', 'allowMouseEvents', 'onSwipeUp', 'onSwipeDown', 'onSwipeLeft', 'onSwipeRight', 'onSwipeStart', 'onSwipeMove', 'onSwipeEnd', 'innerRef', 'tolerance']);\n\n return _react2.default.createElement(\n this.props.tagName,\n _extends({\n ref: this._setSwiperRef,\n onMouseDown: this._onMouseDown,\n onTouchStart: this._handleSwipeStart,\n onTouchEnd: this._handleSwipeEnd,\n className: className,\n style: style\n }, props),\n children\n );\n }\n }]);\n\n return ReactSwipe;\n }(_react.Component);\n\n ReactSwipe.displayName = 'ReactSwipe';\n ReactSwipe.propTypes = {\n tagName: _propTypes2.default.string,\n className: _propTypes2.default.string,\n style: _propTypes2.default.object,\n children: _propTypes2.default.node,\n allowMouseEvents: _propTypes2.default.bool,\n onSwipeUp: _propTypes2.default.func,\n onSwipeDown: _propTypes2.default.func,\n onSwipeLeft: _propTypes2.default.func,\n onSwipeRight: _propTypes2.default.func,\n onSwipeStart: _propTypes2.default.func,\n onSwipeMove: _propTypes2.default.func,\n onSwipeEnd: _propTypes2.default.func,\n innerRef: _propTypes2.default.func,\n tolerance: _propTypes2.default.number.isRequired\n };\n ReactSwipe.defaultProps = {\n tagName: 'div',\n allowMouseEvents: false,\n onSwipeUp: function onSwipeUp() {},\n onSwipeDown: function onSwipeDown() {},\n onSwipeLeft: function onSwipeLeft() {},\n onSwipeRight: function onSwipeRight() {},\n onSwipeStart: function onSwipeStart() {},\n onSwipeMove: function onSwipeMove() {},\n onSwipeEnd: function onSwipeEnd() {},\n innerRef: function innerRef() {},\n\n tolerance: 0\n };\n exports.default = ReactSwipe;\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default(position, metric, axis) {\n var positionPercent = position === 0 ? position : position + metric;\n var positionCss = axis === 'horizontal' ? [positionPercent, 0, 0] : [0, positionPercent, 0];\n var transitionProp = 'translate3d';\n var translatedPosition = '(' + positionCss.join(',') + ')';\n return transitionProp + translatedPosition;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fadeAnimationHandler = exports.slideStopSwipingHandler = exports.slideSwipeAnimationHandler = exports.slideAnimationHandler = void 0;\n\nvar _react = require(\"react\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../../CSSTranslate\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Main animation handler for the default 'sliding' style animation\n * @param props\n * @param state\n */\nvar slideAnimationHandler = function slideAnimationHandler(props, state) {\n var returnStyles = {};\n var selectedItem = state.selectedItem;\n var previousItem = selectedItem;\n var lastPosition = _react.Children.count(props.children) - 1;\n var needClonedSlide = props.infiniteLoop && (selectedItem < 0 || selectedItem > lastPosition); // Handle list position if it needs a clone\n\n if (needClonedSlide) {\n if (previousItem < 0) {\n if (props.centerMode && props.centerSlidePercentage && props.axis === 'horizontal') {\n returnStyles.itemListStyle = (0, _utils.setPosition)(-(lastPosition + 2) * props.centerSlidePercentage - (100 - props.centerSlidePercentage) / 2, props.axis);\n } else {\n returnStyles.itemListStyle = (0, _utils.setPosition)(-(lastPosition + 2) * 100, props.axis);\n }\n } else if (previousItem > lastPosition) {\n returnStyles.itemListStyle = (0, _utils.setPosition)(0, props.axis);\n }\n\n return returnStyles;\n }\n\n var currentPosition = (0, _utils.getPosition)(selectedItem, props); // if 3d is available, let's take advantage of the performance of transform\n\n var transformProp = (0, _CSSTranslate.default)(currentPosition, '%', props.axis);\n var transitionTime = props.transitionTime + 'ms';\n returnStyles.itemListStyle = {\n WebkitTransform: transformProp,\n msTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp\n };\n\n if (!state.swiping) {\n returnStyles.itemListStyle = _objectSpread(_objectSpread({}, returnStyles.itemListStyle), {}, {\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n });\n }\n\n return returnStyles;\n};\n/**\n * Swiping animation handler for the default 'sliding' style animation\n * @param delta\n * @param props\n * @param state\n * @param setState\n */\n\n\nexports.slideAnimationHandler = slideAnimationHandler;\n\nvar slideSwipeAnimationHandler = function slideSwipeAnimationHandler(delta, props, state, setState) {\n var returnStyles = {};\n var isHorizontal = props.axis === 'horizontal';\n\n var childrenLength = _react.Children.count(props.children);\n\n var initialBoundry = 0;\n var currentPosition = (0, _utils.getPosition)(state.selectedItem, props);\n var finalBoundry = props.infiniteLoop ? (0, _utils.getPosition)(childrenLength - 1, props) - 100 : (0, _utils.getPosition)(childrenLength - 1, props);\n var axisDelta = isHorizontal ? delta.x : delta.y;\n var handledDelta = axisDelta; // prevent user from swiping left out of boundaries\n\n if (currentPosition === initialBoundry && axisDelta > 0) {\n handledDelta = 0;\n } // prevent user from swiping right out of boundaries\n\n\n if (currentPosition === finalBoundry && axisDelta < 0) {\n handledDelta = 0;\n }\n\n var position = currentPosition + 100 / (state.itemSize / handledDelta);\n var hasMoved = Math.abs(axisDelta) > props.swipeScrollTolerance;\n\n if (props.infiniteLoop && hasMoved) {\n // When allowing infinite loop, if we slide left from position 0 we reveal the cloned last slide that appears before it\n // if we slide even further we need to jump to other side so it can continue - and vice versa for the last slide\n if (state.selectedItem === 0 && position > -100) {\n position -= childrenLength * 100;\n } else if (state.selectedItem === childrenLength - 1 && position < -childrenLength * 100) {\n position += childrenLength * 100;\n }\n }\n\n if (!props.preventMovementUntilSwipeScrollTolerance || hasMoved || state.swipeMovementStarted) {\n if (!state.swipeMovementStarted) {\n setState({\n swipeMovementStarted: true\n });\n }\n\n returnStyles.itemListStyle = (0, _utils.setPosition)(position, props.axis);\n } //allows scroll if the swipe was within the tolerance\n\n\n if (hasMoved && !state.cancelClick) {\n setState({\n cancelClick: true\n });\n }\n\n return returnStyles;\n};\n/**\n * Default 'sliding' style animination handler for when a swipe action stops.\n * @param props\n * @param state\n */\n\n\nexports.slideSwipeAnimationHandler = slideSwipeAnimationHandler;\n\nvar slideStopSwipingHandler = function slideStopSwipingHandler(props, state) {\n var currentPosition = (0, _utils.getPosition)(state.selectedItem, props);\n var itemListStyle = (0, _utils.setPosition)(currentPosition, props.axis);\n return {\n itemListStyle: itemListStyle\n };\n};\n/**\n * Main animation handler for the default 'fade' style animation\n * @param props\n * @param state\n */\n\n\nexports.slideStopSwipingHandler = slideStopSwipingHandler;\n\nvar fadeAnimationHandler = function fadeAnimationHandler(props, state) {\n var transitionTime = props.transitionTime + 'ms';\n var transitionTimingFunction = 'ease-in-out';\n var slideStyle = {\n position: 'absolute',\n display: 'block',\n zIndex: -2,\n minHeight: '100%',\n opacity: 0,\n top: 0,\n right: 0,\n left: 0,\n bottom: 0,\n transitionTimingFunction: transitionTimingFunction,\n msTransitionTimingFunction: transitionTimingFunction,\n MozTransitionTimingFunction: transitionTimingFunction,\n WebkitTransitionTimingFunction: transitionTimingFunction,\n OTransitionTimingFunction: transitionTimingFunction\n };\n\n if (!state.swiping) {\n slideStyle = _objectSpread(_objectSpread({}, slideStyle), {}, {\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n });\n }\n\n return {\n slideStyle: slideStyle,\n selectedStyle: _objectSpread(_objectSpread({}, slideStyle), {}, {\n opacity: 1,\n position: 'relative'\n }),\n prevStyle: _objectSpread({}, slideStyle)\n };\n};\n\nexports.fadeAnimationHandler = fadeAnimationHandler;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactEasySwipe = _interopRequireDefault(require(\"react-easy-swipe\"));\n\nvar _cssClasses = _interopRequireDefault(require(\"../../cssClasses\"));\n\nvar _Thumbs = _interopRequireDefault(require(\"../Thumbs\"));\n\nvar _document = _interopRequireDefault(require(\"../../shims/document\"));\n\nvar _window = _interopRequireDefault(require(\"../../shims/window\"));\n\nvar _utils = require(\"./utils\");\n\nvar _animations = require(\"./animations\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Carousel = /*#__PURE__*/function (_React$Component) {\n _inherits(Carousel, _React$Component);\n\n var _super = _createSuper(Carousel);\n\n // @ts-ignore\n function Carousel(props) {\n var _this;\n\n _classCallCheck(this, Carousel);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"thumbsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"carouselWrapperRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"listRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"timer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"animationHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setThumbsRef\", function (node) {\n _this.thumbsRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setCarouselWrapperRef\", function (node) {\n _this.carouselWrapperRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setListRef\", function (node) {\n _this.listRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsRef\", function (node, index) {\n if (!_this.itemsRef) {\n _this.itemsRef = [];\n }\n\n _this.itemsRef[index] = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function () {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.clearAutoPlay();\n\n if (!_this.props.autoPlay) {\n return;\n }\n\n _this.timer = setTimeout(function () {\n _this.increment();\n }, _this.props.interval);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clearAutoPlay\", function () {\n if (_this.timer) clearTimeout(_this.timer);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resetAutoPlay\", function () {\n _this.clearAutoPlay();\n\n _this.autoPlay();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"stopOnHover\", function () {\n _this.setState({\n isMouseEntered: true\n }, _this.clearAutoPlay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"startOnLeave\", function () {\n _this.setState({\n isMouseEntered: false\n }, _this.autoPlay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isFocusWithinTheCarousel\", function () {\n if (!_this.carouselWrapperRef) {\n return false;\n }\n\n if ((0, _document.default)().activeElement === _this.carouselWrapperRef || _this.carouselWrapperRef.contains((0, _document.default)().activeElement)) {\n return true;\n }\n\n return false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"navigateWithKeyboard\", function (e) {\n if (!_this.isFocusWithinTheCarousel()) {\n return;\n }\n\n var axis = _this.props.axis;\n var isHorizontal = axis === 'horizontal';\n var keyNames = {\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n ArrowLeft: 37\n };\n var nextKey = isHorizontal ? keyNames.ArrowRight : keyNames.ArrowDown;\n var prevKey = isHorizontal ? keyNames.ArrowLeft : keyNames.ArrowUp;\n\n if (nextKey === e.keyCode) {\n _this.increment();\n } else if (prevKey === e.keyCode) {\n _this.decrement();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSizes\", function () {\n if (!_this.state.initialized || !_this.itemsRef || _this.itemsRef.length === 0) {\n return;\n }\n\n var isHorizontal = _this.props.axis === 'horizontal';\n var firstItem = _this.itemsRef[0];\n\n if (!firstItem) {\n return;\n }\n\n var itemSize = isHorizontal ? firstItem.clientWidth : firstItem.clientHeight;\n\n _this.setState({\n itemSize: itemSize\n });\n\n if (_this.thumbsRef) {\n _this.thumbsRef.updateSizes();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setMountState\", function () {\n _this.setState({\n hasMount: true\n });\n\n _this.updateSizes();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickItem\", function (index, item) {\n if (_react.Children.count(_this.props.children) === 0) {\n return;\n }\n\n if (_this.state.cancelClick) {\n _this.setState({\n cancelClick: false\n });\n\n return;\n }\n\n _this.props.onClickItem(index, item);\n\n if (index !== _this.state.selectedItem) {\n _this.setState({\n selectedItem: index\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleOnChange\", function (index, item) {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.props.onChange(index, item);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickThumb\", function (index, item) {\n _this.props.onClickThumb(index, item);\n\n _this.moveTo(index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeStart\", function (event) {\n _this.setState({\n swiping: true\n });\n\n _this.props.onSwipeStart(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeEnd\", function (event) {\n _this.setState({\n swiping: false,\n cancelClick: false,\n swipeMovementStarted: false\n });\n\n _this.props.onSwipeEnd(event);\n\n _this.clearAutoPlay();\n\n if (_this.state.autoPlay) {\n _this.autoPlay();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeMove\", function (delta, event) {\n _this.props.onSwipeMove(event);\n\n var animationHandlerResponse = _this.props.swipeAnimationHandler(delta, _this.props, _this.state, _this.setState.bind(_assertThisInitialized(_this)));\n\n _this.setState(_objectSpread({}, animationHandlerResponse)); // If we have not moved, we should have an empty object returned\n // Return false to allow scrolling when not swiping\n\n\n return !!Object.keys(animationHandlerResponse).length;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"decrement\", function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n _this.moveTo(_this.state.selectedItem - (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"increment\", function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n _this.moveTo(_this.state.selectedItem + (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"moveTo\", function (position) {\n if (typeof position !== 'number') {\n return;\n }\n\n var lastPosition = _react.Children.count(_this.props.children) - 1;\n\n if (position < 0) {\n position = _this.props.infiniteLoop ? lastPosition : 0;\n }\n\n if (position > lastPosition) {\n position = _this.props.infiniteLoop ? 0 : lastPosition;\n }\n\n _this.selectItem({\n // if it's not a slider, we don't need to set position here\n selectedItem: position\n }); // don't reset auto play when stop on hover is enabled, doing so will trigger a call to auto play more than once\n // and will result in the interval function not being cleared correctly.\n\n\n if (_this.state.autoPlay && _this.state.isMouseEntered === false) {\n _this.resetAutoPlay();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickNext\", function () {\n _this.increment(1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickPrev\", function () {\n _this.decrement(1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeForward\", function () {\n _this.increment(1);\n\n if (_this.props.emulateTouch) {\n _this.setState({\n cancelClick: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeBackwards\", function () {\n _this.decrement(1);\n\n if (_this.props.emulateTouch) {\n _this.setState({\n cancelClick: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeItem\", function (newIndex) {\n return function (e) {\n if (!(0, _utils.isKeyboardEvent)(e) || e.key === 'Enter') {\n _this.moveTo(newIndex);\n }\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectItem\", function (state) {\n // Merge in the new state while updating updating previous item\n _this.setState(_objectSpread({\n previousItem: _this.state.selectedItem\n }, state), function () {\n // Run animation handler and update styles based on it\n _this.setState(_this.animationHandler(_this.props, _this.state));\n });\n\n _this.handleOnChange(state.selectedItem, _react.Children.toArray(_this.props.children)[state.selectedItem]);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInitialImage\", function () {\n var selectedItem = _this.props.selectedItem;\n var item = _this.itemsRef && _this.itemsRef[selectedItem];\n var images = item && item.getElementsByTagName('img') || [];\n return images[0];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getVariableItemHeight\", function (position) {\n var item = _this.itemsRef && _this.itemsRef[position];\n\n if (_this.state.hasMount && item && item.children.length) {\n var slideImages = item.children[0].getElementsByTagName('img') || [];\n\n if (slideImages.length > 0) {\n var image = slideImages[0];\n\n if (!image.complete) {\n // if the image is still loading, the size won't be available so we trigger a new render after it's done\n var onImageLoad = function onImageLoad() {\n _this.forceUpdate();\n\n image.removeEventListener('load', onImageLoad);\n };\n\n image.addEventListener('load', onImageLoad);\n }\n } // try to get img first, if img not there find first display tag\n\n\n var displayItem = slideImages[0] || item.children[0];\n var height = displayItem.clientHeight;\n return height > 0 ? height : null;\n }\n\n return null;\n });\n\n var initState = {\n initialized: false,\n previousItem: props.selectedItem,\n selectedItem: props.selectedItem,\n hasMount: false,\n isMouseEntered: false,\n autoPlay: props.autoPlay,\n swiping: false,\n swipeMovementStarted: false,\n cancelClick: false,\n itemSize: 1,\n itemListStyle: {},\n slideStyle: {},\n selectedStyle: {},\n prevStyle: {}\n };\n _this.animationHandler = typeof props.animationHandler === 'function' && props.animationHandler || props.animationHandler === 'fade' && _animations.fadeAnimationHandler || _animations.slideAnimationHandler;\n _this.state = _objectSpread(_objectSpread({}, initState), _this.animationHandler(props, initState));\n return _this;\n }\n\n _createClass(Carousel, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.children) {\n return;\n }\n\n this.setupCarousel();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (!prevProps.children && this.props.children && !this.state.initialized) {\n this.setupCarousel();\n }\n\n if (!prevProps.autoFocus && this.props.autoFocus) {\n this.forceFocus();\n }\n\n if (prevState.swiping && !this.state.swiping) {\n // We stopped swiping, ensure we are heading to the new/current slide and not stuck\n this.setState(_objectSpread({}, this.props.stopSwipingHandler(this.props, this.state)));\n }\n\n if (prevProps.selectedItem !== this.props.selectedItem || prevProps.centerMode !== this.props.centerMode) {\n this.updateSizes();\n this.moveTo(this.props.selectedItem);\n }\n\n if (prevProps.autoPlay !== this.props.autoPlay) {\n if (this.props.autoPlay) {\n this.setupAutoPlay();\n } else {\n this.destroyAutoPlay();\n }\n\n this.setState({\n autoPlay: this.props.autoPlay\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyCarousel();\n }\n }, {\n key: \"setupCarousel\",\n value: function setupCarousel() {\n var _this2 = this;\n\n this.bindEvents();\n\n if (this.state.autoPlay && _react.Children.count(this.props.children) > 1) {\n this.setupAutoPlay();\n }\n\n if (this.props.autoFocus) {\n this.forceFocus();\n }\n\n this.setState({\n initialized: true\n }, function () {\n var initialImage = _this2.getInitialImage();\n\n if (initialImage && !initialImage.complete) {\n // if it's a carousel of images, we set the mount state after the first image is loaded\n initialImage.addEventListener('load', _this2.setMountState);\n } else {\n _this2.setMountState();\n }\n });\n }\n }, {\n key: \"destroyCarousel\",\n value: function destroyCarousel() {\n if (this.state.initialized) {\n this.unbindEvents();\n this.destroyAutoPlay();\n }\n }\n }, {\n key: \"setupAutoPlay\",\n value: function setupAutoPlay() {\n this.autoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.addEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.addEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: \"destroyAutoPlay\",\n value: function destroyAutoPlay() {\n this.clearAutoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.removeEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.removeEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n (0, _window.default)().addEventListener('resize', this.updateSizes); // issue #2 - image loading smaller\n\n (0, _window.default)().addEventListener('DOMContentLoaded', this.updateSizes);\n\n if (this.props.useKeyboardArrows) {\n (0, _document.default)().addEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n // removing listeners\n (0, _window.default)().removeEventListener('resize', this.updateSizes);\n (0, _window.default)().removeEventListener('DOMContentLoaded', this.updateSizes);\n var initialImage = this.getInitialImage();\n\n if (initialImage) {\n initialImage.removeEventListener('load', this.setMountState);\n }\n\n if (this.props.useKeyboardArrows) {\n (0, _document.default)().removeEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: \"forceFocus\",\n value: function forceFocus() {\n var _this$carouselWrapper;\n\n (_this$carouselWrapper = this.carouselWrapperRef) === null || _this$carouselWrapper === void 0 ? void 0 : _this$carouselWrapper.focus();\n }\n }, {\n key: \"renderItems\",\n value: function renderItems(isClone) {\n var _this3 = this;\n\n if (!this.props.children) {\n return [];\n }\n\n return _react.Children.map(this.props.children, function (item, index) {\n var isSelected = index === _this3.state.selectedItem;\n var isPrevious = index === _this3.state.previousItem;\n var style = isSelected && _this3.state.selectedStyle || isPrevious && _this3.state.prevStyle || _this3.state.slideStyle || {};\n\n if (_this3.props.centerMode && _this3.props.axis === 'horizontal') {\n style = _objectSpread(_objectSpread({}, style), {}, {\n minWidth: _this3.props.centerSlidePercentage + '%'\n });\n }\n\n if (_this3.state.swiping && _this3.state.swipeMovementStarted) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n pointerEvents: 'none'\n });\n }\n\n var slideProps = {\n ref: function ref(e) {\n return _this3.setItemsRef(e, index);\n },\n key: 'itemKey' + index + (isClone ? 'clone' : ''),\n className: _cssClasses.default.ITEM(true, index === _this3.state.selectedItem, index === _this3.state.previousItem),\n onClick: _this3.handleClickItem.bind(_this3, index, item),\n style: style\n };\n return /*#__PURE__*/_react.default.createElement(\"li\", slideProps, _this3.props.renderItem(item, {\n isSelected: index === _this3.state.selectedItem,\n isPrevious: index === _this3.state.previousItem\n }));\n });\n }\n }, {\n key: \"renderControls\",\n value: function renderControls() {\n var _this4 = this;\n\n var _this$props = this.props,\n showIndicators = _this$props.showIndicators,\n labels = _this$props.labels,\n renderIndicator = _this$props.renderIndicator,\n children = _this$props.children;\n\n if (!showIndicators) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: \"control-dots\"\n }, _react.Children.map(children, function (_, index) {\n return renderIndicator && renderIndicator(_this4.changeItem(index), index === _this4.state.selectedItem, index, labels.item);\n }));\n }\n }, {\n key: \"renderStatus\",\n value: function renderStatus() {\n if (!this.props.showStatus) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"p\", {\n className: \"carousel-status\"\n }, this.props.statusFormatter(this.state.selectedItem + 1, _react.Children.count(this.props.children)));\n }\n }, {\n key: \"renderThumbs\",\n value: function renderThumbs() {\n if (!this.props.showThumbs || !this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(_Thumbs.default, {\n ref: this.setThumbsRef,\n onSelectItem: this.handleClickThumb,\n selectedItem: this.state.selectedItem,\n transitionTime: this.props.transitionTime,\n thumbWidth: this.props.thumbWidth,\n labels: this.props.labels,\n emulateTouch: this.props.emulateTouch\n }, this.props.renderThumbs(this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n if (!this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n var isSwipeable = this.props.swipeable && _react.Children.count(this.props.children) > 1;\n var isHorizontal = this.props.axis === 'horizontal';\n var canShowArrows = this.props.showArrows && _react.Children.count(this.props.children) > 1; // show left arrow?\n\n var hasPrev = canShowArrows && (this.state.selectedItem > 0 || this.props.infiniteLoop) || false; // show right arrow\n\n var hasNext = canShowArrows && (this.state.selectedItem < _react.Children.count(this.props.children) - 1 || this.props.infiniteLoop) || false;\n var itemsClone = this.renderItems(true);\n var firstClone = itemsClone.shift();\n var lastClone = itemsClone.pop();\n var swiperProps = {\n className: _cssClasses.default.SLIDER(true, this.state.swiping),\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: this.state.itemListStyle,\n tolerance: this.props.swipeScrollTolerance\n };\n var containerStyles = {};\n\n if (isHorizontal) {\n swiperProps.onSwipeLeft = this.onSwipeForward;\n swiperProps.onSwipeRight = this.onSwipeBackwards;\n\n if (this.props.dynamicHeight) {\n var itemHeight = this.getVariableItemHeight(this.state.selectedItem); // swiperProps.style.height = itemHeight || 'auto';\n\n containerStyles.height = itemHeight || 'auto';\n }\n } else {\n swiperProps.onSwipeUp = this.props.verticalSwipe === 'natural' ? this.onSwipeBackwards : this.onSwipeForward;\n swiperProps.onSwipeDown = this.props.verticalSwipe === 'natural' ? this.onSwipeForward : this.onSwipeBackwards;\n swiperProps.style = _objectSpread(_objectSpread({}, swiperProps.style), {}, {\n height: this.state.itemSize\n });\n containerStyles.height = this.state.itemSize;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n \"aria-label\": this.props.ariaLabel,\n className: _cssClasses.default.ROOT(this.props.className),\n ref: this.setCarouselWrapperRef,\n tabIndex: this.props.useKeyboardArrows ? 0 : undefined\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.CAROUSEL(true),\n style: {\n width: this.props.width\n }\n }, this.renderControls(), this.props.renderArrowPrev(this.onClickPrev, hasPrev, this.props.labels.leftArrow), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.WRAPPER(true, this.props.axis),\n style: containerStyles\n }, isSwipeable ? /*#__PURE__*/_react.default.createElement(_reactEasySwipe.default, _extends({\n tagName: \"ul\",\n innerRef: this.setListRef\n }, swiperProps, {\n allowMouseEvents: this.props.emulateTouch\n }), this.props.infiniteLoop && lastClone, this.renderItems(), this.props.infiniteLoop && firstClone) : /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: _cssClasses.default.SLIDER(true, this.state.swiping),\n ref: function ref(node) {\n return _this5.setListRef(node);\n },\n style: this.state.itemListStyle || {}\n }, this.props.infiniteLoop && lastClone, this.renderItems(), this.props.infiniteLoop && firstClone)), this.props.renderArrowNext(this.onClickNext, hasNext, this.props.labels.rightArrow), this.renderStatus()), this.renderThumbs());\n }\n }]);\n\n return Carousel;\n}(_react.default.Component);\n\nexports.default = Carousel;\n\n_defineProperty(Carousel, \"displayName\", 'Carousel');\n\n_defineProperty(Carousel, \"defaultProps\", {\n ariaLabel: undefined,\n axis: 'horizontal',\n centerSlidePercentage: 80,\n interval: 3000,\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n onClickItem: _utils.noop,\n onClickThumb: _utils.noop,\n onChange: _utils.noop,\n onSwipeStart: function onSwipeStart() {},\n onSwipeEnd: function onSwipeEnd() {},\n onSwipeMove: function onSwipeMove() {\n return false;\n },\n preventMovementUntilSwipeScrollTolerance: false,\n renderArrowPrev: function renderArrowPrev(onClickHandler, hasPrev, label) {\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: _cssClasses.default.ARROW_PREV(!hasPrev),\n onClick: onClickHandler\n });\n },\n renderArrowNext: function renderArrowNext(onClickHandler, hasNext, label) {\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: _cssClasses.default.ARROW_NEXT(!hasNext),\n onClick: onClickHandler\n });\n },\n renderIndicator: function renderIndicator(onClickHandler, isSelected, index, label) {\n return /*#__PURE__*/_react.default.createElement(\"li\", {\n className: _cssClasses.default.DOT(isSelected),\n onClick: onClickHandler,\n onKeyDown: onClickHandler,\n value: index,\n key: index,\n role: \"button\",\n tabIndex: 0,\n \"aria-label\": \"\".concat(label, \" \").concat(index + 1)\n });\n },\n renderItem: function renderItem(item) {\n return item;\n },\n renderThumbs: function renderThumbs(children) {\n var images = _react.Children.map(children, function (item) {\n var img = item; // if the item is not an image, try to find the first image in the item's children.\n\n if (item.type !== 'img') {\n img = _react.Children.toArray(item.props.children).find(function (children) {\n return children.type === 'img';\n });\n }\n\n if (!img) {\n return undefined;\n }\n\n return img;\n });\n\n if (images.filter(function (image) {\n return image;\n }).length === 0) {\n console.warn(\"No images found! Can't build the thumb list without images. If you don't need thumbs, set showThumbs={false} in the Carousel. Note that it's not possible to get images rendered inside custom components. More info at https://github.com/leandrowd/react-responsive-carousel/blob/master/TROUBLESHOOTING.md\");\n return [];\n }\n\n return images;\n },\n statusFormatter: _utils.defaultStatusFormatter,\n selectedItem: 0,\n showArrows: true,\n showIndicators: true,\n showStatus: true,\n showThumbs: true,\n stopOnHover: true,\n swipeScrollTolerance: 5,\n swipeable: true,\n transitionTime: 350,\n verticalSwipe: 'standard',\n width: '100%',\n animationHandler: 'slide',\n swipeAnimationHandler: _animations.slideSwipeAnimationHandler,\n stopSwipingHandler: _animations.slideStopSwipingHandler\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setPosition = exports.getPosition = exports.isKeyboardEvent = exports.defaultStatusFormatter = exports.noop = void 0;\n\nvar _react = require(\"react\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../../CSSTranslate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar noop = function noop() {};\n\nexports.noop = noop;\n\nvar defaultStatusFormatter = function defaultStatusFormatter(current, total) {\n return \"\".concat(current, \" of \").concat(total);\n};\n\nexports.defaultStatusFormatter = defaultStatusFormatter;\n\nvar isKeyboardEvent = function isKeyboardEvent(e) {\n return e ? e.hasOwnProperty('key') : false;\n};\n/**\n * Gets the list 'position' relative to a current index\n * @param index\n */\n\n\nexports.isKeyboardEvent = isKeyboardEvent;\n\nvar getPosition = function getPosition(index, props) {\n if (props.infiniteLoop) {\n // index has to be added by 1 because of the first cloned slide\n ++index;\n }\n\n if (index === 0) {\n return 0;\n }\n\n var childrenLength = _react.Children.count(props.children);\n\n if (props.centerMode && props.axis === 'horizontal') {\n var currentPosition = -index * props.centerSlidePercentage;\n var lastPosition = childrenLength - 1;\n\n if (index && (index !== lastPosition || props.infiniteLoop)) {\n currentPosition += (100 - props.centerSlidePercentage) / 2;\n } else if (index === lastPosition) {\n currentPosition += 100 - props.centerSlidePercentage;\n }\n\n return currentPosition;\n }\n\n return -index * 100;\n};\n/**\n * Sets the 'position' transform for sliding animations\n * @param position\n * @param forceReflow\n */\n\n\nexports.getPosition = getPosition;\n\nvar setPosition = function setPosition(position, axis) {\n var style = {};\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n // @ts-ignore\n style[prop] = (0, _CSSTranslate.default)(position, '%', axis);\n });\n return style;\n};\n\nexports.setPosition = setPosition;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _cssClasses = _interopRequireDefault(require(\"../cssClasses\"));\n\nvar _dimensions = require(\"../dimensions\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../CSSTranslate\"));\n\nvar _reactEasySwipe = _interopRequireDefault(require(\"react-easy-swipe\"));\n\nvar _window = _interopRequireDefault(require(\"../shims/window\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar isKeyboardEvent = function isKeyboardEvent(e) {\n return e.hasOwnProperty('key');\n};\n\nvar Thumbs = /*#__PURE__*/function (_Component) {\n _inherits(Thumbs, _Component);\n\n var _super = _createSuper(Thumbs);\n\n function Thumbs(_props) {\n var _this;\n\n _classCallCheck(this, Thumbs);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsWrapperRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsListRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"thumbsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsWrapperRef\", function (node) {\n _this.itemsWrapperRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsListRef\", function (node) {\n _this.itemsListRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setThumbsRef\", function (node, index) {\n if (!_this.thumbsRef) {\n _this.thumbsRef = [];\n }\n\n _this.thumbsRef[index] = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSizes\", function () {\n if (!_this.props.children || !_this.itemsWrapperRef || !_this.thumbsRef) {\n return;\n }\n\n var total = _react.Children.count(_this.props.children);\n\n var wrapperSize = _this.itemsWrapperRef.clientWidth;\n var itemSize = _this.props.thumbWidth ? _this.props.thumbWidth : (0, _dimensions.outerWidth)(_this.thumbsRef[0]);\n var visibleItems = Math.floor(wrapperSize / itemSize);\n var showArrows = visibleItems < total;\n var lastPosition = showArrows ? total - visibleItems : 0;\n\n _this.setState(function (_state, props) {\n return {\n itemSize: itemSize,\n visibleItems: visibleItems,\n firstItem: showArrows ? _this.getFirstItem(props.selectedItem) : 0,\n lastPosition: lastPosition,\n showArrows: showArrows\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickItem\", function (index, item, e) {\n if (!isKeyboardEvent(e) || e.key === 'Enter') {\n var handler = _this.props.onSelectItem;\n\n if (typeof handler === 'function') {\n handler(index, item);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeStart\", function () {\n _this.setState({\n swiping: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeEnd\", function () {\n _this.setState({\n swiping: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeMove\", function (delta) {\n var deltaX = delta.x;\n\n if (!_this.state.itemSize || !_this.itemsWrapperRef || !_this.state.visibleItems) {\n return false;\n }\n\n var leftBoundary = 0;\n\n var childrenLength = _react.Children.count(_this.props.children);\n\n var currentPosition = -(_this.state.firstItem * 100) / _this.state.visibleItems;\n var lastLeftItem = Math.max(childrenLength - _this.state.visibleItems, 0);\n var lastLeftBoundary = -lastLeftItem * 100 / _this.state.visibleItems; // prevent user from swiping left out of boundaries\n\n if (currentPosition === leftBoundary && deltaX > 0) {\n deltaX = 0;\n } // prevent user from swiping right out of boundaries\n\n\n if (currentPosition === lastLeftBoundary && deltaX < 0) {\n deltaX = 0;\n }\n\n var wrapperSize = _this.itemsWrapperRef.clientWidth;\n var position = currentPosition + 100 / (wrapperSize / deltaX); // if 3d isn't available we will use left to move\n\n if (_this.itemsListRef) {\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n _this.itemsListRef.style[prop] = (0, _CSSTranslate.default)(position, '%', _this.props.axis);\n });\n }\n\n return true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideRight\", function (positions) {\n _this.moveTo(_this.state.firstItem - (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideLeft\", function (positions) {\n _this.moveTo(_this.state.firstItem + (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"moveTo\", function (position) {\n // position can't be lower than 0\n position = position < 0 ? 0 : position; // position can't be higher than last postion\n\n position = position >= _this.state.lastPosition ? _this.state.lastPosition : position;\n\n _this.setState({\n firstItem: position\n });\n });\n\n _this.state = {\n selectedItem: _props.selectedItem,\n swiping: false,\n showArrows: false,\n firstItem: 0,\n visibleItems: 0,\n lastPosition: 0\n };\n return _this;\n }\n\n _createClass(Thumbs, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setupThumbs();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.selectedItem !== this.state.selectedItem) {\n this.setState({\n selectedItem: this.props.selectedItem,\n firstItem: this.getFirstItem(this.props.selectedItem)\n });\n }\n\n if (this.props.children === prevProps.children) {\n return;\n } // This will capture any size changes for arrow adjustments etc.\n // usually in the same render cycle so we don't see any flickers\n\n\n this.updateSizes();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyThumbs();\n }\n }, {\n key: \"setupThumbs\",\n value: function setupThumbs() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n (0, _window.default)().addEventListener('resize', this.updateSizes); // issue #2 - image loading smaller\n\n (0, _window.default)().addEventListener('DOMContentLoaded', this.updateSizes); // when the component is rendered we need to calculate\n // the container size to adjust the responsive behaviour\n\n this.updateSizes();\n }\n }, {\n key: \"destroyThumbs\",\n value: function destroyThumbs() {\n // removing listeners\n (0, _window.default)().removeEventListener('resize', this.updateSizes);\n (0, _window.default)().removeEventListener('DOMContentLoaded', this.updateSizes);\n }\n }, {\n key: \"getFirstItem\",\n value: function getFirstItem(selectedItem) {\n var firstItem = selectedItem;\n\n if (selectedItem >= this.state.lastPosition) {\n firstItem = this.state.lastPosition;\n }\n\n if (selectedItem < this.state.firstItem + this.state.visibleItems) {\n firstItem = this.state.firstItem;\n }\n\n if (selectedItem < this.state.firstItem) {\n firstItem = selectedItem;\n }\n\n return firstItem;\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this2 = this;\n\n return this.props.children.map(function (img, index) {\n var itemClass = _cssClasses.default.ITEM(false, index === _this2.state.selectedItem);\n\n var thumbProps = {\n key: index,\n ref: function ref(e) {\n return _this2.setThumbsRef(e, index);\n },\n className: itemClass,\n onClick: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n onKeyDown: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n 'aria-label': \"\".concat(_this2.props.labels.item, \" \").concat(index + 1),\n style: {\n width: _this2.props.thumbWidth\n }\n };\n return /*#__PURE__*/_react.default.createElement(\"li\", _extends({}, thumbProps, {\n role: \"button\",\n tabIndex: 0\n }), img);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n if (!this.props.children) {\n return null;\n }\n\n var isSwipeable = _react.Children.count(this.props.children) > 1; // show left arrow?\n\n var hasPrev = this.state.showArrows && this.state.firstItem > 0; // show right arrow\n\n var hasNext = this.state.showArrows && this.state.firstItem < this.state.lastPosition; // obj to hold the transformations and styles\n\n var itemListStyles = {};\n var currentPosition = -this.state.firstItem * (this.state.itemSize || 0);\n var transformProp = (0, _CSSTranslate.default)(currentPosition, 'px', this.props.axis);\n var transitionTime = this.props.transitionTime + 'ms';\n itemListStyles = {\n WebkitTransform: transformProp,\n MozTransform: transformProp,\n MsTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp,\n msTransform: transformProp,\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n MsTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n };\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.CAROUSEL(false)\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.WRAPPER(false),\n ref: this.setItemsWrapperRef\n }, /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: _cssClasses.default.ARROW_PREV(!hasPrev),\n onClick: function onClick() {\n return _this3.slideRight();\n },\n \"aria-label\": this.props.labels.leftArrow\n }), isSwipeable ? /*#__PURE__*/_react.default.createElement(_reactEasySwipe.default, {\n tagName: \"ul\",\n className: _cssClasses.default.SLIDER(false, this.state.swiping),\n onSwipeLeft: this.slideLeft,\n onSwipeRight: this.slideRight,\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: itemListStyles,\n innerRef: this.setItemsListRef,\n allowMouseEvents: this.props.emulateTouch\n }, this.renderItems()) : /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: _cssClasses.default.SLIDER(false, this.state.swiping),\n ref: function ref(node) {\n return _this3.setItemsListRef(node);\n },\n style: itemListStyles\n }, this.renderItems()), /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: _cssClasses.default.ARROW_NEXT(!hasNext),\n onClick: function onClick() {\n return _this3.slideLeft();\n },\n \"aria-label\": this.props.labels.rightArrow\n })));\n }\n }]);\n\n return Thumbs;\n}(_react.Component);\n\nexports.default = Thumbs;\n\n_defineProperty(Thumbs, \"displayName\", 'Thumbs');\n\n_defineProperty(Thumbs, \"defaultProps\", {\n axis: 'horizontal',\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n selectedItem: 0,\n thumbWidth: 80,\n transitionTime: 350\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n ROOT: function ROOT(customClassName) {\n return (0, _classnames.default)(_defineProperty({\n 'carousel-root': true\n }, customClassName || '', !!customClassName));\n },\n CAROUSEL: function CAROUSEL(isSlider) {\n return (0, _classnames.default)({\n carousel: true,\n 'carousel-slider': isSlider\n });\n },\n WRAPPER: function WRAPPER(isSlider, axis) {\n return (0, _classnames.default)({\n 'thumbs-wrapper': !isSlider,\n 'slider-wrapper': isSlider,\n 'axis-horizontal': axis === 'horizontal',\n 'axis-vertical': axis !== 'horizontal'\n });\n },\n SLIDER: function SLIDER(isSlider, isSwiping) {\n return (0, _classnames.default)({\n thumbs: !isSlider,\n slider: isSlider,\n animated: !isSwiping\n });\n },\n ITEM: function ITEM(isSlider, selected, previous) {\n return (0, _classnames.default)({\n thumb: !isSlider,\n slide: isSlider,\n selected: selected,\n previous: previous\n });\n },\n ARROW_PREV: function ARROW_PREV(disabled) {\n return (0, _classnames.default)({\n 'control-arrow control-prev': true,\n 'control-disabled': disabled\n });\n },\n ARROW_NEXT: function ARROW_NEXT(disabled) {\n return (0, _classnames.default)({\n 'control-arrow control-next': true,\n 'control-disabled': disabled\n });\n },\n DOT: function DOT(selected) {\n return (0, _classnames.default)({\n dot: true,\n selected: selected\n });\n }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.outerWidth = void 0;\n\nvar outerWidth = function outerWidth(el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseInt(style.marginLeft) + parseInt(style.marginRight);\n return width;\n};\n\nexports.outerWidth = outerWidth;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Carousel\", {\n enumerable: true,\n get: function get() {\n return _Carousel.default;\n }\n});\nObject.defineProperty(exports, \"CarouselProps\", {\n enumerable: true,\n get: function get() {\n return _types.CarouselProps;\n }\n});\nObject.defineProperty(exports, \"Thumbs\", {\n enumerable: true,\n get: function get() {\n return _Thumbs.default;\n }\n});\n\nvar _Carousel = _interopRequireDefault(require(\"./components/Carousel\"));\n\nvar _types = require(\"./components/Carousel/types\");\n\nvar _Thumbs = _interopRequireDefault(require(\"./components/Thumbs\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default() {\n return document;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default() {\n return window;\n};\n\nexports.default = _default;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","export type LinariaClassName = string & { __linariaClassName: true };\n\nexport type ClassName = T | false | void | null | 0 | '';\n\ninterface ICX {\n (...classNames: ClassName[]): LinariaClassName;\n (...classNames: ClassName[]): string;\n}\n/**\n * Takes a list of class names and filters for truthy ones, joining them into a single class name for convenience.\n * eg.\n * ```js\n * cx('red', isBig && 'big') // returns 'red big' if `isBig` is true, otherwise returns 'red'\n * ```\n * If space separated atomic styles are provided, they are deduplicated according to the first hashed valued:\n *\n * ```js\n * cx('atm_a_class1 atm_b_class2', 'atm_a_class3') // returns `atm_a_class3 atm_b_class2`\n * ```\n *\n * @returns the combined, space separated class names that can be applied directly to the class attribute\n */\nconst cx: ICX = function cx() {\n const presentClassNames: (ClassName | ClassName)[] =\n Array.prototype.slice\n // eslint-disable-next-line prefer-rest-params\n .call(arguments)\n .filter(Boolean);\n\n const atomicClasses: { [k: string]: string } = {};\n const nonAtomicClasses: string[] = [];\n presentClassNames.forEach((arg) => {\n // className could be the output of a previous cx call, so split by ' ' first\n const individualClassNames = arg ? arg.split(' ') : [];\n\n individualClassNames.forEach((className) => {\n if (className.startsWith('atm_')) {\n const [, keyHash] = className.split('_');\n atomicClasses[keyHash] = className;\n } else {\n nonAtomicClasses.push(className);\n }\n });\n });\n\n const result: string[] = [];\n\n // eslint-disable-next-line no-restricted-syntax\n for (const keyHash in atomicClasses) {\n if (Object.prototype.hasOwnProperty.call(atomicClasses, keyHash)) {\n result.push(atomicClasses[keyHash]);\n }\n }\n\n result.push(...nonAtomicClasses);\n\n return result.join(' ') as LinariaClassName;\n};\n\nexport default cx;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * This file contains an runtime version of `styled` component. Responsibilities of the component are:\n * - returns ReactElement based on HTML tag used with `styled` or custom React Component\n * - injects classNames for the returned component\n * - injects CSS variables used to define dynamic styles based on props\n */\nimport validAttr from '@emotion/is-prop-valid';\nimport React from 'react';\n\nimport { cx } from '@linaria/core';\nimport type { CSSProperties } from '@linaria/core';\nimport type { StyledMeta } from '@linaria/tags';\n\nexport type NoInfer
    = [A][A extends any ? 0 : never];\n\ntype Component =\n | ((props: TProps) => unknown)\n | { new (props: TProps): unknown };\n\ntype Has = [T] extends [TObj] ? T : T & TObj;\n\ntype Options = {\n name: string;\n class: string;\n atomic?: boolean;\n vars?: {\n [key: string]: [\n string | number | ((props: unknown) => string | number),\n string | void\n ];\n };\n};\n\nconst isCapital = (ch: string): boolean => ch.toUpperCase() === ch;\nconst filterKey =\n (keys: TExclude[]) =>\n (key: TAll): key is Exclude =>\n keys.indexOf(key as any) === -1;\n\nexport const omit = , TKeys extends keyof T>(\n obj: T,\n keys: TKeys[]\n): Omit => {\n const res = {} as Omit;\n Object.keys(obj)\n .filter(filterKey(keys))\n .forEach((key) => {\n res[key] = obj[key];\n });\n\n return res;\n};\n\nfunction filterProps, TKeys extends keyof T>(\n component: string | unknown,\n props: T,\n omitKeys: TKeys[]\n): Partial> {\n const filteredProps = omit(props, omitKeys) as Partial;\n\n // Check if it's an HTML tag and not a custom element\n if (\n typeof component === 'string' &&\n component.indexOf('-') === -1 &&\n !isCapital(component[0])\n ) {\n Object.keys(filteredProps).forEach((key) => {\n if (!validAttr(key)) {\n // Don't pass through invalid attributes to HTML elements\n delete filteredProps[key];\n }\n });\n }\n\n return filteredProps;\n}\n\nconst warnIfInvalid = (value: unknown, componentName: string) => {\n if (process.env.NODE_ENV !== 'production') {\n if (\n typeof value === 'string' ||\n // eslint-disable-next-line no-self-compare,no-restricted-globals\n (typeof value === 'number' && isFinite(value))\n ) {\n return;\n }\n\n const stringified =\n typeof value === 'object' ? JSON.stringify(value) : String(value);\n\n // eslint-disable-next-line no-console\n console.warn(\n `An interpolation evaluated to '${stringified}' in the component '${componentName}', which is probably a mistake. You should explicitly cast or transform the value to a string.`\n );\n }\n};\n\ninterface IProps {\n className?: string;\n style?: Record;\n [props: string]: unknown;\n}\n\n// Property-based interpolation is allowed only if `style` property exists\nfunction styled<\n TProps extends Has,\n TMustHave extends { style?: React.CSSProperties },\n TConstructor extends Component\n>(\n componentWithStyle: TConstructor & Component\n): ComponentStyledTagWithInterpolation;\n// If styled wraps custom component, that component should have className property\nfunction styled<\n TProps extends Has,\n TMustHave extends { className?: string },\n TConstructor extends Component\n>(\n componentWithoutStyle: TConstructor & Component\n): ComponentStyledTagWithoutInterpolation;\nfunction styled(\n tag: TName\n): HtmlStyledTag;\nfunction styled(\n component: 'The target component should have a className prop'\n): never;\nfunction styled(tag: any): any {\n return (options: Options) => {\n if (process.env.NODE_ENV !== 'production') {\n if (Array.isArray(options)) {\n // We received a strings array since it's used as a tag\n throw new Error(\n 'Using the \"styled\" tag in runtime is not supported. Make sure you have set up the Babel plugin correctly. See https://github.com/callstack/linaria#setup'\n );\n }\n }\n\n const render = (props: any, ref: any) => {\n const { as: component = tag, class: className } = props;\n const filteredProps: IProps = filterProps(component, props, [\n 'as',\n 'class',\n ]);\n\n filteredProps.ref = ref;\n filteredProps.className = options.atomic\n ? cx(options.class, filteredProps.className || className)\n : cx(filteredProps.className || className, options.class);\n\n const { vars } = options;\n\n if (vars) {\n const style: { [key: string]: string } = {};\n\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const name in vars) {\n const variable = vars[name];\n const result = variable[0];\n const unit = variable[1] || '';\n const value = typeof result === 'function' ? result(props) : result;\n\n warnIfInvalid(value, options.name);\n\n style[`--${name}`] = `${value}${unit}`;\n }\n\n const ownStyle = filteredProps.style || {};\n const keys = Object.keys(ownStyle);\n if (keys.length > 0) {\n keys.forEach((key) => {\n style[key] = ownStyle[key];\n });\n }\n\n filteredProps.style = style;\n }\n\n if ((tag as any).__linaria && tag !== component) {\n // If the underlying tag is a styled component, forward the `as` prop\n // Otherwise the styles from the underlying component will be ignored\n filteredProps.as = component;\n\n return React.createElement(tag, filteredProps);\n }\n return React.createElement(component, filteredProps);\n };\n\n const Result = React.forwardRef\n ? React.forwardRef(render)\n : // React.forwardRef won't available on older React versions and in Preact\n // Fallback to a innerRef prop in that case\n (props: any) => {\n const rest = omit(props, ['innerRef']);\n return render(rest, props.innerRef);\n };\n\n (Result as any).displayName = options.name;\n\n // These properties will be read by the babel plugin for interpolation\n (Result as any).__linaria = {\n className: options.class,\n extends: tag,\n };\n\n return Result;\n };\n}\n\ntype StyledComponent = StyledMeta &\n ([T] extends [React.FunctionComponent]\n ? T\n : React.FunctionComponent);\n\ntype StaticPlaceholder = string | number | CSSProperties | StyledMeta;\n\ntype HtmlStyledTag = <\n TAdditionalProps = Record\n>(\n strings: TemplateStringsArray,\n ...exprs: Array<\n | StaticPlaceholder\n | ((\n // Without Omit here TS tries to infer TAdditionalProps\n // from a component passed for interpolation\n props: JSX.IntrinsicElements[TName] & Omit\n ) => string | number)\n >\n) => StyledComponent;\n\ntype ComponentStyledTagWithoutInterpolation = (\n strings: TemplateStringsArray,\n ...exprs: Array<\n | StaticPlaceholder\n | ((props: 'The target component should have a style prop') => never)\n >\n) => StyledMeta & TOrigCmp;\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype ComponentStyledTagWithInterpolation = (\n strings: TemplateStringsArray,\n ...exprs: Array<\n | StaticPlaceholder\n | ((props: NoInfer) => string | number)\n >\n) => keyof OwnProps extends never\n ? StyledMeta & TOrigCmp\n : StyledComponent;\n\nexport type StyledJSXIntrinsics = {\n readonly [P in keyof JSX.IntrinsicElements]: HtmlStyledTag

    ;\n};\n\nexport type Styled = typeof styled & StyledJSXIntrinsics;\n\nexport default (process.env.NODE_ENV !== 'production'\n ? new Proxy(styled, {\n get(o, prop: keyof JSX.IntrinsicElements) {\n return o(prop);\n },\n })\n : styled) as Styled;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"297\":\"7470cad2\",\"787\":\"86e4971e\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"tom_777:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/tom_777/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktom_777\"] = self[\"webpackChunktom_777\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 841.9 595.3\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#61DAFB\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 420.9,\n cy: 296.5,\n r: 45.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M520.5 78.1z\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.6ce24c58023cc2f8fd88fe9d219db6c6.svg\";\nexport { ForwardRef as ReactComponent };","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","const resultCache: Map = new Map();\n\n// font -> avg pixels per char\nconst metrics: Map = new Map();\n\nconst hyperMaps: Map> = new Map();\n\ntype BreakCallback = (str: string) => readonly number[];\n\nexport function clearMultilineCache() {\n resultCache.clear();\n hyperMaps.clear();\n metrics.clear();\n}\n\nexport function backProp(\n text: string,\n realWidth: number,\n keyMap: Map,\n temperature: number,\n avgSize: number\n) {\n let guessWidth = 0;\n const contribMap: Record = {};\n for (const char of text) {\n const v = keyMap.get(char) ?? avgSize;\n guessWidth += v;\n contribMap[char] = (contribMap[char] ?? 0) + 1;\n ``;\n }\n\n const diff = realWidth - guessWidth;\n\n for (const key of Object.keys(contribMap)) {\n const numContribution = contribMap[key];\n const contribWidth = keyMap.get(key) ?? avgSize;\n const contribAmount = (contribWidth * numContribution) / guessWidth;\n const adjustment = (diff * contribAmount * temperature) / numContribution;\n const newVal = contribWidth + adjustment;\n keyMap.set(key, newVal);\n }\n}\n\nfunction makeHyperMap(ctx: CanvasRenderingContext2D, avgSize: number): Map {\n const result: Map = new Map();\n let total = 0;\n for (const char of \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,.-+=?\") {\n const w = ctx.measureText(char).width;\n result.set(char, w);\n total += w;\n }\n\n const avg = total / result.size;\n\n // Artisnal hand-tuned constants that have no real meaning other than they make it work better for most fonts\n // These don't really need to be accurate, we are going to be adjusting the weights. It just converges faster\n // if they start somewhere close.\n const damper = 3;\n const scaler = (avgSize / avg + damper) / (damper + 1);\n const keys = result.keys();\n for (const key of keys) {\n result.set(key, (result.get(key) ?? avg) * scaler);\n }\n return result;\n}\n\nfunction measureText(ctx: CanvasRenderingContext2D, text: string, fontStyle: string, hyperMode: boolean): number {\n const current = metrics.get(fontStyle);\n\n if (hyperMode && current !== undefined && current.count > 20_000) {\n let hyperMap = hyperMaps.get(fontStyle);\n if (hyperMap === undefined) {\n hyperMap = makeHyperMap(ctx, current.size);\n hyperMaps.set(fontStyle, hyperMap);\n }\n\n if (current.count > 500_000) {\n let final = 0;\n for (const char of text) {\n final += hyperMap.get(char) ?? current.size;\n }\n return final * 1.01; //safety margin\n }\n\n const result = ctx.measureText(text);\n backProp(text, result.width, hyperMap, Math.max(0.05, 1 - current.count / 200_000), current.size);\n metrics.set(fontStyle, {\n count: current.count + text.length,\n size: current.size,\n });\n return result.width;\n }\n\n const result = ctx.measureText(text);\n\n const avg = result.width / text.length;\n\n // we've collected enough data\n if ((current?.count ?? 0) > 20_000) {\n return result.width;\n }\n\n if (current === undefined) {\n metrics.set(fontStyle, {\n count: text.length,\n size: avg,\n });\n } else {\n const diff = avg - current.size;\n const contribution = text.length / (current.count + text.length);\n const newVal = current.size + diff * contribution;\n metrics.set(fontStyle, {\n count: current.count + text.length,\n size: newVal,\n });\n }\n\n return result.width;\n}\n\nfunction getSplitPoint(\n ctx: CanvasRenderingContext2D,\n text: string,\n width: number,\n fontStyle: string,\n totalWidth: number,\n measuredChars: number,\n hyperMode: boolean,\n getBreakOpportunities?: BreakCallback\n): number {\n if (text.length <= 1) return text.length;\n\n // this should never happen, but we are protecting anyway\n if (totalWidth < width) return -1;\n\n let guess = Math.floor((width / totalWidth) * measuredChars);\n let guessWidth = measureText(ctx, text.slice(0, Math.max(0, guess)), fontStyle, hyperMode);\n\n const oppos = getBreakOpportunities?.(text);\n\n if (guessWidth === width) {\n // NAILED IT\n } else if (guessWidth < width) {\n while (guessWidth < width) {\n guess++;\n guessWidth = measureText(ctx, text.slice(0, Math.max(0, guess)), fontStyle, hyperMode);\n }\n guess--;\n } else {\n // we only need to check for spaces as we go back\n while (guessWidth > width) {\n const lastSpace = oppos !== undefined ? 0 : text.lastIndexOf(\" \", guess - 1);\n if (lastSpace > 0) {\n guess = lastSpace;\n } else {\n guess--;\n }\n guessWidth = measureText(ctx, text.slice(0, Math.max(0, guess)), fontStyle, hyperMode);\n }\n }\n\n if (text[guess] !== \" \") {\n let greedyBreak = 0;\n if (oppos === undefined) {\n greedyBreak = text.lastIndexOf(\" \", guess);\n } else {\n for (const o of oppos) {\n if (o > guess) break;\n greedyBreak = o;\n }\n }\n if (greedyBreak > 0) {\n guess = greedyBreak;\n }\n }\n\n return guess;\n}\n\n// Algorithm improved from https://github.com/geongeorge/Canvas-Txt/blob/master/src/index.js\nexport function splitMultilineText(\n ctx: CanvasRenderingContext2D,\n value: string,\n fontStyle: string,\n width: number,\n hyperWrappingAllowed: boolean,\n getBreakOpportunities?: BreakCallback\n): readonly string[] {\n const key = `${value}_${fontStyle}_${width}px`;\n const cacheResult = resultCache.get(key);\n if (cacheResult !== undefined) return cacheResult;\n\n if (width <= 0) {\n // dont render 0 width stuff\n return [];\n }\n\n let result: string[] = [];\n const encodedLines: string[] = value.split(\"\\n\");\n\n const fontMetrics = metrics.get(fontStyle);\n const safeLineGuess = fontMetrics === undefined ? value.length : (width / fontMetrics.size) * 1.5;\n const hyperMode = hyperWrappingAllowed && fontMetrics !== undefined && fontMetrics.count > 20_000;\n\n for (let line of encodedLines) {\n let textWidth = measureText(ctx, line.slice(0, Math.max(0, safeLineGuess)), fontStyle, hyperMode);\n let measuredChars = Math.min(line.length, safeLineGuess);\n if (textWidth <= width) {\n // line fits, just push it\n result.push(line);\n } else {\n while (textWidth > width) {\n const splitPoint = getSplitPoint(\n ctx,\n line,\n width,\n fontStyle,\n textWidth,\n measuredChars,\n hyperMode,\n getBreakOpportunities\n );\n const subLine = line.slice(0, Math.max(0, splitPoint));\n\n line = line.slice(subLine.length);\n result.push(subLine);\n textWidth = measureText(ctx, line.slice(0, Math.max(0, safeLineGuess)), fontStyle, hyperMode);\n measuredChars = Math.min(line.length, safeLineGuess);\n }\n if (textWidth > 0) {\n result.push(line);\n }\n }\n }\n\n result = result.map((l, i) => (i === 0 ? l.trimEnd() : l.trim()));\n resultCache.set(key, result);\n if (resultCache.size > 500) {\n // this is not technically LRU behavior but it works \"close enough\" and is much cheaper\n resultCache.delete(resultCache.keys().next().value);\n }\n return result;\n}\n","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","export default function _classPrivateMethodGet(receiver, privateSet, fn) {\n if (!privateSet.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return fn;\n}","/**\n * marked v5.1.1 - a markdown parser\n * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n async: false,\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n hooks: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\n/**\n * @param {string} html\n */\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\n\n/**\n * @param {string | RegExp} regex\n * @param {string} opt\n */\nfunction edit(regex, opt) {\n regex = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\n/**\n * @param {boolean} sanitize\n * @param {string} base\n * @param {string} href\n */\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\n/**\n * @param {string} base\n * @param {string} href\n */\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param {string} str\n * @param {string} c\n * @param {boolean} invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.slice(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkDeprecations(opt, callback) {\n if (!opt || opt.silent) {\n return;\n }\n\n if (callback) {\n console.warn('marked(): callback is deprecated since version 5.0.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/using_pro#async');\n }\n\n if (opt.sanitize || opt.sanitizer) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n\n if (opt.highlight || opt.langPrefix !== 'language-') {\n console.warn('marked(): highlight and langPrefix parameters are deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-highlight.');\n }\n\n if (opt.mangle) {\n console.warn('marked(): mangle parameter is enabled by default, but is deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-mangle, or disable by setting `{mangle: false}`.');\n }\n\n if (opt.baseUrl) {\n console.warn('marked(): baseUrl parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-base-url.');\n }\n\n if (opt.smartypants) {\n console.warn('marked(): smartypants parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-smartypants.');\n }\n\n if (opt.xhtml) {\n console.warn('marked(): xhtml parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-xhtml.');\n }\n\n if (opt.headerIds || opt.headerPrefix) {\n console.warn('marked(): headerIds and headerPrefix parameters enabled by default, but are deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-gfm-heading-id, or disable by setting `{headerIds: false}`.');\n }\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline._escapes, '$1') : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *>[ \\t]?/gm, '');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, nextLine, rawLine, itemContents, endEarly;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n\n // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n } else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n\n itemContents += '\\n' + nextLine;\n }\n\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n\n list.loose = hasMultipleLineBreaks;\n }\n }\n\n // Set all items to loose if list is loose\n if (list.loose) {\n for (i = 0; i < l; i++) {\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n const text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.type = 'paragraph';\n token.text = text;\n token.tokens = this.lexer.inline(text);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline._escapes, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline._escapes, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = this.lexer.inline(item.header[j].text);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = this.lexer.inline(row[k].text);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n const raw = src.slice(0, lLength + match.index + rLength + 1);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^((?:(?!^bull ).|\\n(?!\\n|bull ))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.lheading = edit(block.lheading)\n .replace(/bull/g, block.bullet) // lists can interrupt\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = { ...block };\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = {\n ...block.normal,\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n};\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = {\n ...block.normal,\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n};\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // | Skip orphan inside strong | Consume to delim | (1) #*** | (2) a***#, a*** | (3) #***a, ***a | (4) ***# | (5) #***# | (6) a***a\n rDelimAst: /^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\`^|~';\ninline.punctuation = edit(inline.punctuation, 'u').replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\ninline.anyPunctuation = /\\\\[punct]/g;\ninline._escapes = /\\\\([punct])/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim, 'u')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.anyPunctuation = edit(inline.anyPunctuation, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = edit(inline._escapes, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = { ...inline };\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = {\n ...inline.normal,\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n};\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = {\n ...inline.normal,\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n } else {\n src = src.replace(/^( *)(\\t+)/gm, (_, leading, tabs) => {\n return leading + ' '.repeat(tabs.length);\n });\n }\n\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '

    '\n        + (escaped ? code : escape(code, true))\n        + '
    \\n';\n }\n\n return '
    '\n      + (escaped ? code : escape(code, true))\n      + '
    \\n';\n }\n\n /**\n * @param {string} quote\n */\n blockquote(quote) {\n return `
    \\n${quote}
    \\n`;\n }\n\n html(html, block) {\n return html;\n }\n\n /**\n * @param {string} text\n * @param {string} level\n * @param {string} raw\n * @param {any} slugger\n */\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n const id = this.options.headerPrefix + slugger.slug(raw);\n return `${text}\\n`;\n }\n\n // ignore IDs\n return `${text}\\n`;\n }\n\n hr() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n /**\n * @param {string} text\n */\n listitem(text) {\n return `
  • ${text}
  • \\n`;\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n /**\n * @param {string} text\n */\n paragraph(text) {\n return `

    ${text}

    \\n`;\n }\n\n /**\n * @param {string} header\n * @param {string} body\n */\n table(header, body) {\n if (body) body = `${body}`;\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n /**\n * @param {string} content\n */\n tablerow(content) {\n return `\\n${content}\\n`;\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? `<${type} align=\"${flags.align}\">`\n : `<${type}>`;\n return tag + content + `\\n`;\n }\n\n /**\n * span level renderer\n * @param {string} text\n */\n strong(text) {\n return `${text}`;\n }\n\n /**\n * @param {string} text\n */\n em(text) {\n return `${text}`;\n }\n\n /**\n * @param {string} text\n */\n codespan(text) {\n return `${text}`;\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n /**\n * @param {string} text\n */\n del(text) {\n return `${text}`;\n }\n\n /**\n * @param {string} href\n * @param {string} title\n * @param {string} text\n */\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '
    ';\n return out;\n }\n\n /**\n * @param {string} href\n * @param {string} title\n * @param {string} text\n */\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = `\"${text}\"`;\n' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n /**\n * @param {string} value\n */\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n * @param {string} originalSlug\n * @param {boolean} isDryRun\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} [options]\n * @param {boolean} [options.dryrun] Generates the next unique slug without\n * updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n out += this.renderer.html(token.text, token.block);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass Hooks {\n constructor(options) {\n this.options = options || defaults;\n }\n\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess'\n ]);\n\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n}\n\nclass Marked {\n defaults = getDefaults();\n options = this.setOptions;\n\n parse = this.#parseMarkdown(Lexer.lex, Parser.parse);\n parseInline = this.#parseMarkdown(Lexer.lexInline, Parser.parseInline);\n\n Parser = Parser;\n parser = Parser.parse;\n Renderer = Renderer;\n TextRenderer = TextRenderer;\n Lexer = Lexer;\n lexer = Lexer.lex;\n Tokenizer = Tokenizer;\n Slugger = Slugger;\n Hooks = Hooks;\n\n constructor(...args) {\n this.use(...args);\n }\n\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of token.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n values = values.concat(this.walkTokens(token.items, callback));\n break;\n }\n default: {\n if (this.defaults.extensions && this.defaults.extensions.childTokens && this.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n this.defaults.extensions.childTokens[token.type].forEach((childTokens) => {\n values = values.concat(this.walkTokens(token[childTokens], callback));\n });\n } else if (token.tokens) {\n values = values.concat(this.walkTokens(token.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new Renderer(this.defaults);\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new Hooks();\n for (const prop in pack.hooks) {\n const prevHook = hooks[prop];\n if (Hooks.passThroughHooks.has(prop)) {\n hooks[prop] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(pack.hooks[prop].call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n\n const ret = pack.hooks[prop].call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n hooks[prop] = (...args) => {\n let ret = pack.hooks[prop].apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n opts.walkTokens = function(token) {\n let values = [];\n values.push(pack.walkTokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n\n this.defaults = { ...this.defaults, ...opts };\n });\n\n return this;\n }\n\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n\n #parseMarkdown(lexer, parser) {\n return (src, opt, callback) => {\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n const origOpt = { ...opt };\n opt = { ...this.defaults, ...origOpt };\n const throwError = this.#onError(opt.silent, opt.async, callback);\n\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n\n checkDeprecations(opt, callback);\n\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n tokens = lexer(src, opt);\n } catch (e) {\n return throwError(e);\n }\n\n const done = (err) => {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n out = parser(tokens, opt);\n if (opt.hooks) {\n out = opt.hooks.postprocess(out);\n }\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? throwError(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n this.walkTokens(tokens, (token) => {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, (err, code) => {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n const tokens = lexer(src, opt);\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n } catch (e) {\n return throwError(e);\n }\n };\n }\n\n #onError(silent, async, callback) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (silent) {\n const msg = '

    An error occurred:

    '\n          + escape(e.message + '', true)\n          + '
    ';\n if (async) {\n return Promise.resolve(msg);\n }\n if (callback) {\n callback(null, msg);\n return;\n }\n return msg;\n }\n\n if (async) {\n return Promise.reject(e);\n }\n if (callback) {\n callback(e);\n return;\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked(defaults);\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n return markedInstance.parse(src, opt, callback);\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n markedInstance.setOptions(opt);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n\n/**\n * Parse Inline\n * @param {string} src\n */\nmarked.parseInline = markedInstance.parseInline;\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.Hooks = Hooks;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Hooks, Lexer, Marked, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","export function proveType(_val: T) {\n // do nothing, just prove the compiler thinks the types match\n}\n\nfunction panic(message: string = \"This should not happen\"): never {\n throw new Error(message);\n}\n\nexport function assert(fact: boolean, message: string = \"Assertion failed\"): asserts fact {\n if (fact) return;\n return panic(message);\n}\n\nexport function assertNever(_never: never): never {\n return panic(\"Hell froze over\");\n}\nexport function maybe(fn: () => T, defaultValue: T) {\n try {\n return fn();\n } catch {\n return defaultValue;\n }\n}\n\n// The following code is licensed under the MIT license to Luke Edwards\n// Original license and code can be found here: https://github.com/lukeed/dequal/blob/master/license\n// I have merely \"ported\" it to be TS (any any any) and directly included it for convenience.\nconst has = Object.prototype.hasOwnProperty;\n// eslint-disable-next-line sonarjs/cognitive-complexity\nexport function deepEqual(foo: any, bar: any): boolean {\n let ctor: any, len: number;\n if (foo === bar) return true;\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while (len-- && deepEqual(foo[len], bar[len]));\n }\n return len === -1;\n }\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (!ctor || typeof foo === \"object\") {\n len = 0;\n // eslint-disable-next-line guard-for-in\n for (ctor in foo) {\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;\n }\n return Object.keys(bar).length === len;\n }\n }\n\n return foo !== foo && bar !== bar;\n}\n","import * as React from \"react\";\ninterface Props extends React.HTMLAttributes {\n onClickOutside: () => void;\n}\n\nexport default class ClickOutsideContainer extends React.PureComponent {\n private wrapperRef = React.createRef();\n\n public componentDidMount() {\n document.addEventListener(\"mousedown\", this.clickOutside, true);\n document.addEventListener(\"contextmenu\", this.clickOutside, true);\n }\n\n public componentWillUnmount() {\n document.removeEventListener(\"mousedown\", this.clickOutside);\n document.removeEventListener(\"contextmenu\", this.clickOutside);\n }\n\n private clickOutside = (event: MouseEvent) => {\n if (this.wrapperRef.current !== null && !this.wrapperRef.current.contains(event.target as Node | null)) {\n let node = event.target as Element | null;\n while (node !== null) {\n if (node.classList.contains(\"click-outside-ignore\")) {\n return;\n }\n\n node = node.parentElement;\n }\n this.props.onClickOutside();\n }\n };\n\n public render(): React.ReactNode {\n const { onClickOutside, ...rest } = this.props;\n return (\n
    \n {this.props.children}\n
    \n );\n }\n}\n","import React from \"react\";\n\n// theme variable precidence\n\n/** @category Theme */\nexport function makeCSSStyle(theme: Theme): Record {\n return {\n \"--gdg-accent-color\": theme.accentColor,\n \"--gdg-accent-fg\": theme.accentFg,\n \"--gdg-accent-light\": theme.accentLight,\n \"--gdg-text-dark\": theme.textDark,\n \"--gdg-text-medium\": theme.textMedium,\n \"--gdg-text-light\": theme.textLight,\n \"--gdg-text-bubble\": theme.textBubble,\n \"--gdg-bg-icon-header\": theme.bgIconHeader,\n \"--gdg-fg-icon-header\": theme.fgIconHeader,\n \"--gdg-text-header\": theme.textHeader,\n \"--gdg-text-group-header\": theme.textGroupHeader ?? theme.textHeader,\n \"--gdg-text-header-selected\": theme.textHeaderSelected,\n \"--gdg-bg-cell\": theme.bgCell,\n \"--gdg-bg-cell-medium\": theme.bgCellMedium,\n \"--gdg-bg-header\": theme.bgHeader,\n \"--gdg-bg-header-has-focus\": theme.bgHeaderHasFocus,\n \"--gdg-bg-header-hovered\": theme.bgHeaderHovered,\n \"--gdg-bg-bubble\": theme.bgBubble,\n \"--gdg-bg-bubble-selected\": theme.bgBubbleSelected,\n \"--gdg-bg-search-result\": theme.bgSearchResult,\n \"--gdg-border-color\": theme.borderColor,\n \"--gdg-horizontal-border-color\": theme.horizontalBorderColor ?? theme.borderColor,\n \"--gdg-drilldown-border\": theme.drilldownBorder,\n \"--gdg-link-color\": theme.linkColor,\n \"--gdg-cell-horizontal-padding\": `${theme.cellHorizontalPadding}px`,\n \"--gdg-cell-vertical-padding\": `${theme.cellVerticalPadding}px`,\n \"--gdg-header-font-style\": theme.headerFontStyle,\n \"--gdg-base-font-style\": theme.baseFontStyle,\n \"--gdg-font-family\": theme.fontFamily,\n \"--gdg-editor-font-size\": theme.editorFontSize,\n };\n}\n\n/** @category Theme */\nexport interface Theme {\n accentColor: string;\n accentFg: string;\n accentLight: string;\n textDark: string;\n textMedium: string;\n textLight: string;\n textBubble: string;\n bgIconHeader: string;\n fgIconHeader: string;\n textHeader: string;\n textGroupHeader?: string;\n textHeaderSelected: string;\n bgCell: string;\n bgCellMedium: string;\n bgHeader: string;\n bgHeaderHasFocus: string;\n bgHeaderHovered: string;\n bgBubble: string;\n bgBubbleSelected: string;\n bgSearchResult: string;\n borderColor: string;\n horizontalBorderColor?: string;\n headerBottomBorderColor?: string;\n drilldownBorder: string;\n linkColor: string;\n cellHorizontalPadding: number;\n cellVerticalPadding: number;\n headerFontStyle: string;\n headerIconSize: number;\n baseFontStyle: string;\n fontFamily: string;\n editorFontSize: string;\n lineHeight: number;\n}\n\nconst dataEditorBaseTheme: Theme = {\n accentColor: \"#4F5DFF\",\n accentFg: \"#FFFFFF\",\n accentLight: \"rgba(62, 116, 253, 0.1)\",\n\n textDark: \"#313139\",\n textMedium: \"#737383\",\n textLight: \"#B2B2C0\",\n textBubble: \"#313139\",\n\n bgIconHeader: \"#737383\",\n fgIconHeader: \"#FFFFFF\",\n textHeader: \"#313139\",\n textGroupHeader: \"#313139BB\",\n textHeaderSelected: \"#FFFFFF\",\n\n bgCell: \"#FFFFFF\",\n bgCellMedium: \"#FAFAFB\",\n bgHeader: \"#F7F7F8\",\n bgHeaderHasFocus: \"#E9E9EB\",\n bgHeaderHovered: \"#EFEFF1\",\n\n bgBubble: \"#EDEDF3\",\n bgBubbleSelected: \"#FFFFFF\",\n\n bgSearchResult: \"#fff9e3\",\n\n borderColor: \"rgba(115, 116, 131, 0.16)\",\n drilldownBorder: \"rgba(0, 0, 0, 0)\",\n\n linkColor: \"#4F5DFF\",\n\n cellHorizontalPadding: 8,\n cellVerticalPadding: 3,\n\n headerIconSize: 18,\n\n headerFontStyle: \"600 13px\",\n baseFontStyle: \"13px\",\n fontFamily:\n \"Inter, Roboto, -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Ubuntu, noto, arial, sans-serif\",\n editorFontSize: \"13px\",\n lineHeight: 1.4, //unitless scaler depends on your font\n};\n\n/** @category Theme */\nexport function getDataEditorTheme(): Theme {\n return dataEditorBaseTheme;\n}\n\n/** @category Theme */\nexport const ThemeContext = React.createContext(dataEditorBaseTheme);\n/** @category Hooks */\nexport function useTheme(): Theme {\n return React.useContext(ThemeContext);\n}\n","import type { Theme } from \"../common/styles\";\nimport { assertNever, proveType } from \"../common/support\";\nimport has from \"lodash/has.js\";\nimport type React from \"react\";\nimport type { CSSProperties } from \"react\";\nimport type { SpriteManager } from \"./data-grid-sprites\";\nimport type { OverlayImageEditorProps } from \"../data-grid-overlay-editor/private/image-overlay-editor\";\n\n// Thoughts:\n// rows/columns are called out as selected, but when selected they must also be added\n// to the range. Handling delete events may have different desired outcomes depending on\n// how the range came to be selected. The rows/columns properties retain this essential\n// information.\n/** @category Selection */\nexport interface GridSelection {\n readonly current?: {\n readonly cell: Item;\n readonly range: Readonly;\n readonly rangeStack: readonly Readonly[]; // lowest to highest, does not include range\n };\n readonly columns: CompactSelection;\n readonly rows: CompactSelection;\n}\n\nexport function gridSelectionHasItem(sel: GridSelection, item: Item): boolean {\n const [col, row] = item;\n if (sel.columns.hasIndex(col) || sel.rows.hasIndex(row)) return true;\n if (sel.current !== undefined) {\n if (sel.current.cell[0] === col && sel.current.cell[1] === row) return true;\n const toCheck = [sel.current.range, ...sel.current.rangeStack];\n for (const r of toCheck) {\n if (col >= r.x && col < r.x + r.width && row >= r.y && row < r.y + r.height) return true;\n }\n }\n return false;\n}\n\n/** @category Types */\nexport type ImageEditorType = React.ComponentType;\n\n/** @category Types */\nexport type GridMouseEventArgs =\n | GridMouseCellEventArgs\n | GridMouseHeaderEventArgs\n | GridMouseOutOfBoundsEventArgs\n | GridMouseGroupHeaderEventArgs;\n\ninterface PreventableEvent {\n preventDefault: () => void;\n}\n/** @category Types */\nexport interface CellClickedEventArgs extends GridMouseCellEventArgs, PreventableEvent {}\n\n/** @category Types */\nexport interface HeaderClickedEventArgs extends GridMouseHeaderEventArgs, PreventableEvent {}\n\n/** @category Types */\nexport interface GroupHeaderClickedEventArgs extends GridMouseGroupHeaderEventArgs, PreventableEvent {}\n\n/** @category Types */\nexport interface ImageWindowLoader {\n setWindow(newWindow: Rectangle, freezeCols: number): void;\n loadOrGetImage(url: string, col: number, row: number): HTMLImageElement | ImageBitmap | undefined;\n setCallback(imageLoaded: (locations: readonly Item[]) => void): void;\n}\n\n/** @category Types */\nexport const BooleanEmpty = null;\n/** @category Types */\nexport const BooleanIndeterminate = undefined;\n\n/** @category Types */\nexport type BooleanEmpty = null;\n/** @category Types */\nexport type BooleanIndeterminate = undefined;\n\ninterface PositionableMouseEventArgs {\n readonly localEventX: number;\n readonly localEventY: number;\n}\n\n/** @category Types */\nexport interface BaseGridMouseEventArgs {\n readonly shiftKey: boolean;\n readonly ctrlKey: boolean;\n readonly metaKey: boolean;\n readonly isTouch: boolean;\n readonly isLongTouch?: boolean;\n readonly isEdge: boolean;\n readonly button: number;\n readonly scrollEdge: readonly [xDir: -1 | 0 | 1, yDir: -1 | 0 | 1];\n}\n\n/** @category Types */\nexport interface GridMouseCellEventArgs extends BaseGridMouseEventArgs, PositionableMouseEventArgs {\n readonly kind: \"cell\";\n readonly location: Item;\n readonly bounds: Rectangle;\n readonly isFillHandle: boolean;\n}\n\n/** @category Types */\nexport const headerKind = \"header\" as const;\n/** @category Types */\nexport interface GridMouseHeaderEventArgs extends BaseGridMouseEventArgs, PositionableMouseEventArgs {\n readonly kind: typeof headerKind;\n readonly location: readonly [number, -1];\n readonly bounds: Rectangle;\n readonly group: string;\n}\n\n/** @category Types */\nexport const groupHeaderKind = \"group-header\" as const;\n/** @category Types */\nexport interface GridMouseGroupHeaderEventArgs extends BaseGridMouseEventArgs, PositionableMouseEventArgs {\n readonly kind: typeof groupHeaderKind;\n readonly location: readonly [number, -2];\n readonly bounds: Rectangle;\n readonly group: string;\n}\n\n/** @category Types */\nexport const outOfBoundsKind = \"out-of-bounds\" as const;\n/** @category Types */\nexport interface GridMouseOutOfBoundsEventArgs extends BaseGridMouseEventArgs {\n readonly kind: typeof outOfBoundsKind;\n readonly location: Item;\n readonly direction: readonly [-1 | 0 | 1, -1 | 0 | 1];\n}\n\n/** @category Types */\nexport interface GridKeyEventArgs {\n readonly bounds: Rectangle | undefined;\n readonly key: string;\n readonly keyCode: number;\n readonly altKey: boolean;\n readonly shiftKey: boolean;\n readonly ctrlKey: boolean;\n readonly metaKey: boolean;\n readonly cancel: () => void;\n readonly stopPropagation: () => void;\n readonly preventDefault: () => void;\n readonly rawEvent: React.KeyboardEvent | undefined;\n}\n\ninterface DragHandler {\n readonly setData: (mime: string, payload: string) => void;\n readonly setDragImage: (image: Element, x: number, y: number) => void;\n readonly preventDefault: () => void;\n readonly defaultPrevented: () => boolean;\n}\n\n/** @category Types */\nexport type GridDragEventArgs = GridMouseEventArgs & DragHandler;\n\n/** @category Types */\nexport type TrailingRowType = \"sticky\" | \"appended\" | \"none\";\n\n/** @category Types */\nexport type DrawCustomCellCallback = (args: {\n ctx: CanvasRenderingContext2D;\n cell: GridCell;\n theme: Theme;\n rect: Rectangle;\n col: number;\n row: number;\n hoverAmount: number;\n hoverX: number | undefined;\n hoverY: number | undefined;\n highlighted: boolean;\n imageLoader: ImageWindowLoader;\n requestAnimationFrame: () => void;\n}) => boolean;\n\n/** @category Types */\nexport type DrawHeaderCallback = (args: {\n ctx: CanvasRenderingContext2D;\n column: GridColumn;\n columnIndex: number;\n theme: Theme;\n rect: Rectangle;\n hoverAmount: number;\n isSelected: boolean;\n isHovered: boolean;\n hasSelectedCell: boolean;\n spriteManager: SpriteManager;\n menuBounds: Rectangle;\n}) => boolean;\n\n/** @category Cells */\nexport enum GridCellKind {\n Uri = \"uri\",\n Text = \"text\",\n Image = \"image\",\n RowID = \"row-id\",\n Number = \"number\",\n Bubble = \"bubble\",\n Boolean = \"boolean\",\n Loading = \"loading\",\n Markdown = \"markdown\",\n Drilldown = \"drilldown\",\n Protected = \"protected\",\n Custom = \"custom\",\n}\n\n/** @category Columns */\nexport enum GridColumnIcon {\n HeaderRowID = \"headerRowID\",\n HeaderCode = \"headerCode\",\n HeaderNumber = \"headerNumber\",\n HeaderString = \"headerString\",\n HeaderBoolean = \"headerBoolean\",\n HeaderAudioUri = \"headerAudioUri\",\n HeaderVideoUri = \"headerVideoUri\",\n HeaderEmoji = \"headerEmoji\",\n HeaderImage = \"headerImage\",\n HeaderUri = \"headerUri\",\n HeaderPhone = \"headerPhone\",\n HeaderMarkdown = \"headerMarkdown\",\n HeaderDate = \"headerDate\",\n HeaderTime = \"headerTime\",\n HeaderEmail = \"headerEmail\",\n HeaderReference = \"headerReference\",\n HeaderIfThenElse = \"headerIfThenElse\",\n HeaderSingleValue = \"headerSingleValue\",\n HeaderLookup = \"headerLookup\",\n HeaderTextTemplate = \"headerTextTemplate\",\n HeaderMath = \"headerMath\",\n HeaderRollup = \"headerRollup\",\n HeaderJoinStrings = \"headerJoinStrings\",\n HeaderSplitString = \"headerSplitString\",\n HeaderGeoDistance = \"headerGeoDistance\",\n HeaderArray = \"headerArray\",\n RowOwnerOverlay = \"rowOwnerOverlay\",\n ProtectedColumnOverlay = \"protectedColumnOverlay\",\n}\n\n/** @category Types */\nexport type CellArray = readonly (readonly GridCell[])[];\n\n/** @category Types */\nexport type Item = readonly [col: number, row: number];\n\n/** @category Types */\nexport const headerCellCheckboxPrefix = \"___gdg_header_cell_\";\n/** @category Types */\nexport const headerCellCheckedMarker = headerCellCheckboxPrefix + \"checked\";\n/** @category Types */\nexport const headerCellUnheckedMarker = headerCellCheckboxPrefix + \"unchecked\";\n/** @category Types */\nexport const headerCellIndeterminateMarker = headerCellCheckboxPrefix + \"indeterminate\";\n\ninterface BaseGridColumn {\n readonly title: string;\n readonly group?: string;\n readonly icon?: GridColumnIcon | string;\n readonly overlayIcon?: GridColumnIcon | string;\n readonly hasMenu?: boolean;\n readonly grow?: number;\n readonly style?: \"normal\" | \"highlight\";\n readonly themeOverride?: Partial;\n readonly trailingRowOptions?: {\n readonly hint?: string;\n readonly addIcon?: string;\n readonly targetColumn?: number | GridColumn;\n readonly themeOverride?: Partial;\n readonly disabled?: boolean;\n };\n}\n\n/** @category Columns */\nexport function isSizedGridColumn(c: GridColumn): c is SizedGridColumn {\n return \"width\" in c && typeof c.width === \"number\";\n}\n\n/** @category Columns */\nexport interface SizedGridColumn extends BaseGridColumn {\n readonly width: number;\n readonly id?: string;\n}\n\n/** @category Columns */\nexport interface AutoGridColumn extends BaseGridColumn {\n readonly id: string;\n}\n\n/** @category Types */\nexport async function resolveCellsThunk(thunk: GetCellsThunk | CellArray): Promise {\n if (typeof thunk === \"object\") return thunk;\n return await thunk();\n}\n\n/** @category Types */\nexport type GetCellsThunk = () => Promise;\n\n/** @category Columns */\nexport type GridColumn = SizedGridColumn | AutoGridColumn;\n\n/** @category Columns */\nexport type InnerGridColumn = SizedGridColumn & { growOffset?: number };\n\n// export type SizedGridColumn = Omit & { readonly width: number };\n\n/** @category Cells */\nexport type ReadWriteGridCell = TextCell | NumberCell | MarkdownCell | UriCell | CustomCell | BooleanCell;\n\n/** @category Cells */\nexport type EditableGridCell = TextCell | ImageCell | BooleanCell | MarkdownCell | UriCell | NumberCell | CustomCell;\n\n/** @category Cells */\nexport type EditableGridCellKind = EditableGridCell[\"kind\"];\n\n// All EditableGridCells are inherently ValidatedGridCells, and this is more specific and thus more useful.\n/** @category Cells */\nexport function isEditableGridCell(cell: GridCell): cell is ValidatedGridCell {\n if (\n cell.kind === GridCellKind.Loading ||\n cell.kind === GridCellKind.Bubble ||\n cell.kind === GridCellKind.RowID ||\n cell.kind === GridCellKind.Protected ||\n cell.kind === GridCellKind.Drilldown\n ) {\n return false;\n }\n\n proveType(cell);\n return true;\n}\n\n/** @category Cells */\nexport function isTextEditableGridCell(cell: GridCell): cell is ReadWriteGridCell {\n if (\n cell.kind === GridCellKind.Loading ||\n cell.kind === GridCellKind.Bubble ||\n cell.kind === GridCellKind.RowID ||\n cell.kind === GridCellKind.Protected ||\n cell.kind === GridCellKind.Drilldown ||\n cell.kind === GridCellKind.Boolean ||\n cell.kind === GridCellKind.Image ||\n cell.kind === GridCellKind.Custom\n ) {\n return false;\n }\n\n proveType(cell);\n return true;\n}\n\n/** @category Cells */\nexport function isInnerOnlyCell(cell: InnerGridCell): cell is InnerOnlyGridCell {\n return cell.kind === InnerGridCellKind.Marker || cell.kind === InnerGridCellKind.NewRow;\n}\n\n/** @category Cells */\nexport function isReadWriteCell(cell: GridCell): cell is ReadWriteGridCell {\n if (!isEditableGridCell(cell) || cell.kind === GridCellKind.Image) return false;\n\n if (\n cell.kind === GridCellKind.Text ||\n cell.kind === GridCellKind.Number ||\n cell.kind === GridCellKind.Markdown ||\n cell.kind === GridCellKind.Uri ||\n cell.kind === GridCellKind.Custom ||\n cell.kind === GridCellKind.Boolean\n ) {\n return cell.readonly !== true;\n }\n assertNever(cell);\n}\n\n/** @category Cells */\nexport type GridCell =\n | EditableGridCell\n | BubbleCell\n | RowIDCell\n | LoadingCell\n | ProtectedCell\n | DrilldownCell\n | CustomCell;\n\ntype InnerOnlyGridCell = NewRowCell | MarkerCell;\n/** @category Cells */\nexport type InnerGridCell = GridCell | InnerOnlyGridCell;\n\n/** @category Cells */\nexport type CellList = readonly Item[];\n\n/** @category Types */\nexport interface Rectangle {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\n/** @category Cells */\nexport interface BaseGridCell {\n readonly allowOverlay: boolean;\n readonly lastUpdated?: number;\n readonly style?: \"normal\" | \"faded\";\n readonly themeOverride?: Partial;\n readonly span?: readonly [start: number, end: number];\n readonly contentAlign?: \"left\" | \"right\" | \"center\";\n readonly cursor?: CSSProperties[\"cursor\"];\n}\n\n/** @category Cells */\nexport interface LoadingCell extends BaseGridCell {\n readonly kind: GridCellKind.Loading;\n}\n\n/** @category Cells */\nexport interface ProtectedCell extends BaseGridCell {\n readonly kind: GridCellKind.Protected;\n}\n\n/** @category Cells */\nexport interface TextCell extends BaseGridCell {\n readonly kind: GridCellKind.Text;\n readonly displayData: string;\n readonly data: string;\n readonly readonly?: boolean;\n readonly allowWrapping?: boolean;\n}\n\n/** @category Cells */\nexport interface NumberCell extends BaseGridCell {\n readonly kind: GridCellKind.Number;\n readonly displayData: string;\n readonly data: number | undefined;\n readonly readonly?: boolean;\n}\n\n/** @category Cells */\nexport interface ImageCell extends BaseGridCell {\n readonly kind: GridCellKind.Image;\n readonly data: string[];\n readonly rounding?: number;\n readonly displayData?: string[]; // used for small images for faster scrolling\n readonly allowAdd: boolean;\n}\n\n/** @category Cells */\nexport interface BubbleCell extends BaseGridCell {\n readonly kind: GridCellKind.Bubble;\n readonly data: string[];\n}\n\n/** @category Renderers */\nexport type SelectionRange = number | readonly [number, number];\n\n/** @category Renderers */\nexport type ProvideEditorComponent = React.FunctionComponent<{\n readonly onChange: (newValue: T) => void;\n readonly onFinishedEditing: (newValue?: T) => void;\n readonly isHighlighted: boolean;\n readonly value: T;\n readonly initialValue?: string;\n readonly validatedSelection?: SelectionRange;\n readonly imageEditorOverride?: ImageEditorType;\n readonly markdownDivCreateNode?: (content: string) => DocumentFragment;\n readonly target: Rectangle;\n readonly forceEditMode: boolean;\n readonly isValid?: boolean;\n}>;\n\ntype ObjectEditorCallbackResult = {\n editor: ProvideEditorComponent;\n deletedValue?: (toDelete: T) => T;\n styleOverride?: CSSProperties;\n disablePadding?: boolean;\n disableStyling?: boolean;\n};\n\n/** @category Renderers */\nexport type ProvideEditorCallbackResult =\n | (ProvideEditorComponent & {\n disablePadding?: boolean;\n disableStyling?: boolean;\n })\n | ObjectEditorCallbackResult\n | undefined;\n\n/** @category Renderers */\nexport function isObjectEditorCallbackResult(\n obj: ProvideEditorCallbackResult\n): obj is ObjectEditorCallbackResult {\n return has(obj, \"editor\");\n}\n\n/** @category Renderers */\nexport type ProvideEditorCallback = (cell: T) => ProvideEditorCallbackResult;\n\n/** @category Cells */\nexport type ValidatedGridCell = EditableGridCell & {\n selectionRange?: SelectionRange;\n};\n\n/** @category Cells */\nexport interface CustomCell extends BaseGridCell {\n readonly kind: GridCellKind.Custom;\n readonly data: T;\n readonly copyData: string;\n readonly readonly?: boolean;\n}\n\n/** @category Cells */\nexport interface DrilldownCellData {\n readonly text: string;\n readonly img?: string;\n}\n\n/** @category Cells */\nexport interface DrilldownCell extends BaseGridCell {\n readonly kind: GridCellKind.Drilldown;\n readonly data: readonly DrilldownCellData[];\n}\n\n/** @category Cells */\nexport interface BooleanCell extends BaseGridCell {\n readonly kind: GridCellKind.Boolean;\n readonly data: boolean | BooleanEmpty | BooleanIndeterminate;\n readonly readonly?: boolean;\n readonly allowOverlay: false;\n}\n\n// Can be written more concisely, not easier to read if more concise.\n/** @category Cells */\nexport function booleanCellIsEditable(cell: BooleanCell): boolean {\n return !(cell.readonly ?? false);\n}\n\n/** @category Cells */\nexport interface RowIDCell extends BaseGridCell {\n readonly kind: GridCellKind.RowID;\n readonly data: string;\n readonly readonly?: boolean;\n}\n\n/** @category Cells */\nexport interface MarkdownCell extends BaseGridCell {\n readonly kind: GridCellKind.Markdown;\n readonly data: string;\n readonly readonly?: boolean;\n}\n\n/** @category Cells */\nexport interface UriCell extends BaseGridCell {\n readonly kind: GridCellKind.Uri;\n readonly data: string;\n readonly readonly?: boolean;\n}\n\n/** @category Cells */\nexport enum InnerGridCellKind {\n NewRow = \"new-row\",\n Marker = \"marker\",\n}\n\n/** @category Cells */\nexport interface NewRowCell extends BaseGridCell {\n readonly kind: InnerGridCellKind.NewRow;\n readonly hint: string;\n readonly allowOverlay: false;\n readonly icon?: string;\n}\n\n/** @category Cells */\nexport interface MarkerCell extends BaseGridCell {\n readonly kind: InnerGridCellKind.Marker;\n readonly allowOverlay: false;\n readonly row: number;\n readonly drawHandle: boolean;\n readonly checked: boolean;\n readonly markerKind: \"checkbox\" | \"number\" | \"both\";\n}\n\n/** @category Selection */\nexport type Slice = [start: number, end: number];\n/** @category Selection */\nexport type CompactSelectionRanges = readonly Slice[];\n\nfunction mergeRanges(input: CompactSelectionRanges) {\n if (input.length === 0) {\n return [];\n }\n const ranges = [...input];\n\n const stack: [number, number][] = [];\n\n ranges.sort(function (a, b) {\n return a[0] - b[0];\n });\n\n stack.push([...ranges[0]]);\n\n for (const range of ranges.slice(1)) {\n const top = stack[stack.length - 1];\n\n if (top[1] < range[0]) {\n stack.push([...range]);\n } else if (top[1] < range[1]) {\n top[1] = range[1];\n }\n }\n\n return stack;\n}\n\nlet emptyCompactSelection: CompactSelection | undefined;\n\n/** @category Selection */\nexport class CompactSelection {\n private constructor(private readonly items: CompactSelectionRanges) {}\n\n static empty = (): CompactSelection => {\n return emptyCompactSelection ?? (emptyCompactSelection = new CompactSelection([]));\n };\n\n static fromSingleSelection = (selection: number | Slice) => {\n return CompactSelection.empty().add(selection);\n };\n\n offset = (amount: number): CompactSelection => {\n if (amount === 0) return this;\n const newItems = this.items.map(x => [x[0] + amount, x[1] + amount] as Slice);\n return new CompactSelection(newItems);\n };\n\n add = (selection: number | Slice): CompactSelection => {\n const slice: Slice = typeof selection === \"number\" ? [selection, selection + 1] : selection;\n\n const newItems = mergeRanges([...this.items, slice]);\n\n return new CompactSelection(newItems);\n };\n\n remove = (selection: number | Slice): CompactSelection => {\n const items = [...this.items];\n\n const selMin = typeof selection === \"number\" ? selection : selection[0];\n const selMax = typeof selection === \"number\" ? selection + 1 : selection[1];\n\n for (const [i, slice] of items.entries()) {\n const [start, end] = slice;\n // Remove part of slice that intersects removed selection.\n if (start <= selMax && selMin <= end) {\n const toAdd: Slice[] = [];\n if (start < selMin) {\n toAdd.push([start, selMin]);\n }\n if (selMax < end) {\n toAdd.push([selMax, end]);\n }\n items.splice(i, 1, ...toAdd);\n }\n }\n return new CompactSelection(items);\n };\n\n first = (): number | undefined => {\n if (this.items.length === 0) return undefined;\n return this.items[0][0];\n };\n\n last = (): number | undefined => {\n if (this.items.length === 0) return undefined;\n return this.items.slice(-1)[0][1] - 1;\n };\n\n hasIndex = (index: number): boolean => {\n for (let i = 0; i < this.items.length; i++) {\n const [start, end] = this.items[i];\n if (index >= start && index < end) return true;\n }\n return false;\n };\n\n hasAll = (index: Slice): boolean => {\n for (let x = index[0]; x < index[1]; x++) {\n if (!this.hasIndex(x)) return false;\n }\n return true;\n };\n\n some = (predicate: (index: number) => boolean): boolean => {\n for (const i of this) {\n if (predicate(i)) return true;\n }\n return false;\n };\n\n equals = (other: CompactSelection): boolean => {\n if (other === this) return true;\n\n if (other.items.length !== this.items.length) return false;\n\n for (let i = 0; i < this.items.length; i++) {\n const left = other.items[i];\n const right = this.items[i];\n\n if (left[0] !== right[0] || left[1] !== right[1]) return false;\n }\n\n return true;\n };\n\n // Really old JS wont have access to the iterator and babel will stop people using it\n // when trying to support browsers so old we don't support them anyway. What goes on\n // between an engineer and their bundler in the privacy of their CI server is none of\n // my business anyway.\n toArray = (): number[] => {\n const result: number[] = [];\n for (const [start, end] of this.items) {\n for (let x = start; x < end; x++) {\n result.push(x);\n }\n }\n return result;\n };\n\n get length(): number {\n let len = 0;\n for (const [start, end] of this.items) {\n len += end - start;\n }\n\n return len;\n }\n\n *[Symbol.iterator]() {\n for (const [start, end] of this.items) {\n for (let x = start; x < end; x++) {\n yield x;\n }\n }\n }\n}\n","import { styled } from \"@linaria/react\";\n\ninterface Props {\n targetX: number;\n targetY: number;\n targetWidth: number;\n targetHeight: number;\n}\nexport const DataGridOverlayEditorStyle = styled.div`\n position: absolute;\n\n display: flex;\n flex-direction: column;\n overflow: hidden;\n box-sizing: border-box;\n\n --overlay-top: ${p => p.targetY}px;\n\n left: ${p => p.targetX - 1}px;\n top: ${p => p.targetY - 1}px;\n min-width: ${p => p.targetWidth + 2}px;\n min-height: ${p => p.targetHeight + 2}px;\n width: max-content;\n max-width: 400px;\n max-height: calc(100vh - ${p => p.targetY + 10}px);\n\n font-family: var(--gdg-font-family);\n font-size: var(--gdg-editor-font-size);\n\n @keyframes glide_fade_in {\n from {\n opacity: 0%;\n }\n\n to {\n opacity: 100%;\n }\n }\n\n &.gdg-style {\n border-radius: 2px;\n background-color: var(--gdg-bg-cell);\n\n box-shadow: 0 0 0 1px var(--gdg-accent-color), 0px 0px 1px rgba(62, 65, 86, 0.4),\n 0px 6px 12px rgba(62, 65, 86, 0.15);\n\n animation: glide_fade_in 60ms 1;\n }\n\n &.pad {\n padding: ${p => Math.max(0, (p.targetHeight - 28) / 2)}px 8.5px 3px;\n }\n\n .clip-region {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n border-radius: 2px;\n flex-grow: 1;\n\n .gdg-growing-entry {\n height: 100%;\n }\n\n & input.gdg-input {\n width: 100%;\n border: none;\n border-width: 0;\n outline: none;\n }\n\n & textarea.gdg-input {\n border: none;\n border-width: 0;\n outline: none;\n }\n }\n\n text-align: start;\n`;\n","import * as React from \"react\";\n\nfunction useRefState(): [HTMLElement | undefined, React.RefCallback] {\n const [refState, setRefState] = React.useState();\n return [refState ?? undefined, setRefState];\n}\n\ninterface StayOnScreen {\n ref: React.RefCallback;\n style: React.CSSProperties;\n}\n\nexport function useStayOnScreen(): StayOnScreen {\n const [ref, setRef] = useRefState();\n const [xOffset, setXOffset] = React.useState(0);\n const [isIntersecting, setIsIntersecting] = React.useState(true);\n\n React.useLayoutEffect(() => {\n if (ref === undefined) return;\n if (!(\"IntersectionObserver\" in window)) return;\n\n const observer = new IntersectionObserver(\n ents => {\n if (ents.length === 0) return;\n setIsIntersecting(ents[0].isIntersecting);\n },\n { threshold: 1 }\n );\n observer.observe(ref);\n\n return () => observer.disconnect();\n }, [ref]);\n\n React.useEffect(() => {\n if (isIntersecting || ref === undefined) return;\n\n let rafHandle: number | undefined;\n const fn = () => {\n const { right: refRight } = ref.getBoundingClientRect();\n\n setXOffset(cv => Math.min(cv + window.innerWidth - refRight - 10, 0));\n rafHandle = requestAnimationFrame(fn);\n };\n\n rafHandle = requestAnimationFrame(fn);\n return () => {\n if (rafHandle !== undefined) {\n cancelAnimationFrame(rafHandle);\n }\n };\n }, [ref, isIntersecting]);\n\n const style = React.useMemo(() => {\n return { transform: `translateX(${xOffset}px)` };\n }, [xOffset]);\n\n return {\n ref: setRef,\n style,\n };\n}\n","import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport ClickOutsideContainer from \"../click-outside-container/click-outside-container\";\nimport { makeCSSStyle, Theme, ThemeContext } from \"../common/styles\";\nimport type { GetCellRendererCallback } from \"../data-grid/cells/cell-types\";\nimport {\n EditableGridCell,\n GridCell,\n isEditableGridCell,\n isInnerOnlyCell,\n isObjectEditorCallbackResult,\n Item,\n ProvideEditorCallback,\n ProvideEditorCallbackResult,\n Rectangle,\n ValidatedGridCell,\n} from \"../data-grid/data-grid-types\";\nimport { DataGridOverlayEditorStyle } from \"./data-grid-overlay-editor-style\";\nimport type { OverlayImageEditorProps } from \"./private/image-overlay-editor\";\nimport { useStayOnScreen } from \"./use-stay-on-screen\";\n\ntype ImageEditorType = React.ComponentType;\n\ninterface DataGridOverlayEditorProps {\n readonly target: Rectangle;\n readonly cell: Item;\n readonly content: GridCell;\n readonly className?: string;\n readonly id: string;\n readonly initialValue?: string;\n readonly theme: Theme;\n readonly onFinishEditing: (newCell: GridCell | undefined, movement: readonly [-1 | 0 | 1, -1 | 0 | 1]) => void;\n readonly forceEditMode: boolean;\n readonly highlight: boolean;\n readonly imageEditorOverride?: ImageEditorType;\n readonly getCellRenderer: GetCellRendererCallback;\n readonly markdownDivCreateNode?: (content: string) => DocumentFragment;\n readonly provideEditor?: ProvideEditorCallback;\n readonly validateCell?: (\n cell: Item,\n newValue: EditableGridCell,\n prevValue: GridCell\n ) => boolean | ValidatedGridCell;\n}\n\nconst DataGridOverlayEditor: React.FunctionComponent = p => {\n const {\n target,\n content,\n onFinishEditing: onFinishEditingIn,\n forceEditMode,\n initialValue,\n imageEditorOverride,\n markdownDivCreateNode,\n highlight,\n className,\n theme,\n id,\n cell,\n validateCell,\n getCellRenderer,\n provideEditor,\n } = p;\n\n const [tempValue, setTempValueRaw] = React.useState(forceEditMode ? content : undefined);\n const lastValueRef = React.useRef(tempValue ?? content);\n lastValueRef.current = tempValue ?? content;\n\n const [isValid, setIsValid] = React.useState(() => {\n if (validateCell === undefined) return true;\n return !(isEditableGridCell(content) && validateCell?.(cell, content, lastValueRef.current) === false);\n });\n\n const onFinishEditing = React.useCallback(\n (newCell, movement) => {\n onFinishEditingIn(isValid ? newCell : undefined, movement);\n },\n [isValid, onFinishEditingIn]\n );\n\n const setTempValue = React.useCallback(\n (newVal: GridCell | undefined) => {\n if (validateCell !== undefined && newVal !== undefined && isEditableGridCell(newVal)) {\n const validResult = validateCell(cell, newVal, lastValueRef.current);\n if (validResult === false) {\n setIsValid(false);\n } else if (typeof validResult === \"object\") {\n newVal = validResult;\n setIsValid(true);\n } else {\n setIsValid(true);\n }\n }\n setTempValueRaw(newVal);\n },\n [cell, validateCell]\n );\n\n const finished = React.useRef(false);\n const customMotion = React.useRef<[-1 | 0 | 1, -1 | 0 | 1] | undefined>(undefined);\n\n const onClickOutside = React.useCallback(() => {\n onFinishEditing(tempValue, [0, 0]);\n finished.current = true;\n }, [tempValue, onFinishEditing]);\n\n const onEditorFinished = React.useCallback(\n (newValue: GridCell | undefined) => {\n onFinishEditing(newValue, customMotion.current ?? [0, 0]);\n finished.current = true;\n },\n [onFinishEditing]\n );\n\n const onKeyDown = React.useCallback(\n async (event: React.KeyboardEvent) => {\n let save = false;\n if (event.key === \"Escape\") {\n event.stopPropagation();\n event.preventDefault();\n customMotion.current = [0, 0];\n } else if (event.key === \"Enter\" && !event.shiftKey) {\n event.stopPropagation();\n event.preventDefault();\n customMotion.current = [0, 1];\n save = true;\n } else if (event.key === \"Tab\") {\n event.stopPropagation();\n event.preventDefault();\n customMotion.current = [event.shiftKey ? -1 : 1, 0];\n save = true;\n }\n\n window.setTimeout(() => {\n if (!finished.current && customMotion.current !== undefined) {\n onFinishEditing(save ? tempValue : undefined, customMotion.current);\n finished.current = true;\n }\n }, 0);\n },\n [onFinishEditing, tempValue]\n );\n\n const targetValue = tempValue ?? content;\n\n const [editorProvider, useLabel] = React.useMemo((): [ProvideEditorCallbackResult, boolean] | [] => {\n if (isInnerOnlyCell(content)) return [];\n const external = provideEditor?.(content);\n if (external !== undefined) return [external, false];\n return [getCellRenderer(content)?.provideEditor?.(content), false];\n }, [content, getCellRenderer, provideEditor]);\n\n const { ref, style: stayOnScreenStyle } = useStayOnScreen();\n\n let pad = true;\n let editor: React.ReactNode;\n let style = true;\n let styleOverride: React.CSSProperties | undefined;\n\n if (editorProvider !== undefined) {\n pad = editorProvider.disablePadding !== true;\n style = editorProvider.disableStyling !== true;\n const isObjectEditor = isObjectEditorCallbackResult(editorProvider);\n if (isObjectEditor) {\n styleOverride = editorProvider.styleOverride;\n }\n const CustomEditor = isObjectEditor ? editorProvider.editor : editorProvider;\n editor = (\n \n );\n }\n\n styleOverride = { ...styleOverride, ...stayOnScreenStyle };\n\n // Consider imperatively creating and adding the element to the dom?\n const portalElement = document.getElementById(\"portal\");\n if (portalElement === null) {\n // eslint-disable-next-line no-console\n console.error(\n 'Cannot open Data Grid overlay editor, because portal not found. Please add `
    ` as the last child of your ``.'\n );\n return null;\n }\n\n let classWrap = style ? \"gdg-style\" : \"gdg-unstyle\";\n if (!isValid) {\n classWrap += \" invalid\";\n }\n\n if (pad) {\n classWrap += \" pad\";\n }\n\n return createPortal(\n \n \n \n
    \n {editor}\n
    \n \n
    \n
    ,\n portalElement\n );\n};\n\nexport default DataGridOverlayEditor;\n","import type { ImageWindowLoader, Item, Rectangle } from \"../data-grid/data-grid-types\";\nimport throttle from \"lodash/throttle.js\";\n\ninterface LoadResult {\n img: HTMLImageElement | undefined;\n cancel: () => void;\n url: string;\n cells: number[];\n}\n\nconst rowShift = 1 << 16;\n\nconst imgPool: HTMLImageElement[] = [];\n\nfunction packColRowToNumber(col: number, row: number) {\n return row * rowShift + col;\n}\n\nfunction unpackCol(packed: number): number {\n return packed % rowShift;\n}\n\nfunction unpackRow(packed: number, col: number): number {\n return (packed - col) / rowShift;\n}\n\nfunction unpackNumberToColRow(packed: number): [number, number] {\n const col = unpackCol(packed);\n const row = unpackRow(packed, col);\n return [col, row];\n}\n\nclass ImageWindowLoaderImpl implements ImageWindowLoader {\n private imageLoaded: (locations: readonly Item[]) => void = () => undefined;\n private loadedLocations: [number, number][] = [];\n\n private visibleWindow: Rectangle = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n\n private freezeCols: number = 0;\n\n private isInWindow = (packed: number) => {\n const col = unpackCol(packed);\n const row = unpackRow(packed, col);\n const w = this.visibleWindow;\n if (col < this.freezeCols && row >= w.y && row <= w.y + w.height) return true;\n return col >= w.x && col <= w.x + w.width && row >= w.y && row <= w.y + w.height;\n };\n\n private cache: Record = {};\n\n public setCallback(imageLoaded: (locations: readonly Item[]) => void) {\n this.imageLoaded = imageLoaded;\n }\n\n // eslint-disable-next-line unicorn/consistent-function-scoping\n private sendLoaded = throttle(() => {\n this.imageLoaded(this.loadedLocations);\n this.loadedLocations = [];\n }, 20);\n\n private clearOutOfWindow = () => {\n const keys = Object.keys(this.cache);\n for (const key of keys) {\n const obj = this.cache[key];\n\n let keep = false;\n for (let j = 0; j < obj.cells.length; j++) {\n const packed = obj.cells[j];\n if (this.isInWindow(packed)) {\n keep = true;\n break;\n }\n }\n\n if (keep) {\n obj.cells = obj.cells.filter(this.isInWindow);\n } else {\n obj.cancel();\n delete this.cache[key];\n }\n }\n };\n\n public setWindow(newWindow: Rectangle, freezeCols: number): void {\n if (\n this.visibleWindow.x === newWindow.x &&\n this.visibleWindow.y === newWindow.y &&\n this.visibleWindow.width === newWindow.width &&\n this.visibleWindow.height === newWindow.height &&\n this.freezeCols === freezeCols\n )\n return;\n this.visibleWindow = newWindow;\n this.freezeCols = freezeCols;\n this.clearOutOfWindow();\n }\n\n private loadImage(url: string, col: number, row: number, key: string) {\n let loaded = false;\n const img = imgPool.pop() ?? new Image();\n\n let canceled = false;\n const result: LoadResult = {\n img: undefined,\n cells: [packColRowToNumber(col, row)],\n url,\n cancel: () => {\n if (canceled) return;\n canceled = true;\n if (imgPool.length < 12) {\n imgPool.unshift(img); // never retain more than 12\n } else if (!loaded) {\n img.src = \"\";\n }\n },\n };\n\n const loadPromise = new Promise(r => img.addEventListener(\"load\", () => r(null)));\n // use request animation time to avoid paying src set costs during draw calls\n requestAnimationFrame(async () => {\n try {\n img.src = url;\n await loadPromise;\n await img.decode();\n const toWrite = this.cache[key];\n if (toWrite !== undefined && !canceled) {\n toWrite.img = img;\n for (const packed of toWrite.cells) {\n this.loadedLocations.push(unpackNumberToColRow(packed));\n }\n loaded = true;\n this.sendLoaded();\n }\n } catch {\n result.cancel();\n }\n });\n this.cache[key] = result;\n }\n\n public loadOrGetImage(url: string, col: number, row: number): HTMLImageElement | ImageBitmap | undefined {\n const key = url;\n\n const current = this.cache[key];\n if (current !== undefined) {\n const packed = packColRowToNumber(col, row);\n if (!current.cells.includes(packed)) {\n current.cells.push(packed);\n }\n return current.img;\n } else {\n this.loadImage(url, col, row, key);\n }\n return undefined;\n }\n}\n\nexport default ImageWindowLoaderImpl;\n","import * as React from \"react\";\nimport debounce from \"lodash/debounce.js\";\n\nexport function useEventListener(\n eventName: K,\n handler: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any,\n element: HTMLElement | Window | null,\n passive: boolean,\n capture = false\n) {\n // Create a ref that stores handler\n const savedHandler = React.useRef<(this: HTMLElement, ev: HTMLElementEventMap[K]) => any>();\n\n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n // ... without us needing to pass it in effect deps array ...\n // ... and potentially cause effect to re-run every render.\n savedHandler.current = handler;\n React.useEffect(\n () => {\n // Make sure element supports addEventListener\n if (element === null || element.addEventListener === undefined) return;\n const el = element as HTMLElement;\n\n // Create event listener that calls handler function stored in ref\n const eventListener = (event: HTMLElementEventMap[K]) => {\n savedHandler.current?.call(el, event);\n };\n\n el.addEventListener(eventName, eventListener, { passive, capture });\n\n // Remove event listener on cleanup\n return () => {\n el.removeEventListener(eventName, eventListener, { capture });\n };\n },\n [eventName, element, passive, capture] // Re-run if eventName or element changes\n );\n}\n\nexport function whenDefined(obj: any, result: T) {\n return obj === undefined ? undefined : result;\n}\n\nconst PI = Math.PI;\nexport function degreesToRadians(degrees: number) {\n return (degrees * PI) / 180;\n}\n\nexport interface SpriteProps {\n fgColor: string;\n bgColor: string;\n}\n\nexport const EditPencil: React.FunctionComponent> = (props: Partial) => {\n const fg = props.fgColor ?? \"currentColor\";\n return (\n \n \n \n \n );\n};\n\nexport const Checkmark: React.FunctionComponent> = (props: Partial) => {\n const fg = props.fgColor ?? \"currentColor\";\n\n return (\n \n \n \n );\n};\n\nexport function useDebouncedMemo(factory: () => T, deps: React.DependencyList | undefined, time: number): T {\n const [state, setState] = React.useState(factory);\n\n const mountedRef = React.useRef(true);\n React.useEffect(\n () => () => {\n mountedRef.current = false;\n },\n []\n );\n\n const debouncedSetState = React.useRef(\n debounce(x => {\n if (mountedRef.current) {\n setState(x);\n }\n }, time)\n );\n\n React.useLayoutEffect(() => {\n if (mountedRef.current) {\n debouncedSetState.current(() => factory());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n return state;\n}\n\n// Shamelessly inline direction to avoid conflicts with 1.0 and 2.0.\nconst rtlRange = \"\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC\";\nconst ltrRange =\n \"A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\" +\n \"\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C\" +\n \"\\uFE00-\\uFE6F\\uFEFD-\\uFFFF\";\n\n/* eslint-disable no-misleading-character-class */\nconst rtl = new RegExp(\"^[^\" + ltrRange + \"]*[\" + rtlRange + \"]\");\nconst ltr = new RegExp(\"^[^\" + rtlRange + \"]*[\" + ltrRange + \"]\");\n/* eslint-enable no-misleading-character-class */\n\nexport function direction(value: string): \"rtl\" | \"ltr\" | \"neutral\" {\n return rtl.test(value) ? \"rtl\" : ltr.test(value) ? \"ltr\" : \"neutral\";\n}\n\nlet scrollbarWidthCache: number | undefined = undefined;\nexport function getScrollBarWidth(): number {\n if (scrollbarWidthCache !== undefined) return scrollbarWidthCache;\n const inner = document.createElement(\"p\");\n inner.style.width = \"100%\";\n inner.style.height = \"200px\";\n\n const outer = document.createElement(\"div\");\n outer.id = \"testScrollbar\";\n\n outer.style.position = \"absolute\";\n outer.style.top = \"0px\";\n outer.style.left = \"0px\";\n outer.style.visibility = \"hidden\";\n outer.style.width = \"200px\";\n outer.style.height = \"150px\";\n outer.style.overflow = \"hidden\";\n outer.append(inner);\n\n document.body.append(outer);\n const w1 = inner.offsetWidth;\n outer.style.overflow = \"scroll\";\n let w2 = inner.offsetWidth;\n if (w1 === w2) {\n w2 = outer.clientWidth;\n }\n\n outer.remove();\n\n scrollbarWidthCache = w1 - w2;\n return scrollbarWidthCache;\n}\n\n// Dear future reader,\n// This dumb hook is to make sure if the inputState changes, that effectively behaves like an instant \"setState\" call.\n// This is useful in a wide variety of situations. I'm too dumb to know if this is a good idea or a really dumb one.\n// I can't tell. It's like poes law but for code.\n//\n// I'm sorry.\nconst empty = Symbol();\nexport function useStateWithReactiveInput(inputState: T): [T, React.Dispatch>, () => void] {\n // When [0] is not empty we will return it, [1] is always the last value we saw\n const inputStateRef = React.useRef<[T | typeof empty, T]>([empty, inputState]);\n if (inputStateRef.current[1] !== inputState) {\n // it changed, we must use thee!\n inputStateRef.current[0] = inputState;\n }\n inputStateRef.current[1] = inputState;\n\n const [state, setState] = React.useState(inputState);\n // crimes against humanity here\n const [, forceRender] = React.useState<{} | undefined>();\n const setStateOuter = React.useCallback(nv => {\n // this takes care of the case where the inputState was set, then setState gets called again but back to what\n // the state was before the inputState changed. Since the useState effect wont trigger a render in this case\n // we need to be very naughty and force it to see the change. Technically this may not be needed some chunk of\n // the time (in fact most of it) but checking for it is likely to be more expensive than just over-doing it\n const s = inputStateRef.current[0];\n if (s !== empty) {\n nv = typeof nv === \"function\" ? (nv as (pv: T) => T)(s) : nv;\n if (nv === s) return; // they are setting it to what the inputState is anyway so we can just do nothing\n }\n if (s !== empty) forceRender({});\n setState(pv => {\n if (typeof nv === \"function\") {\n return (nv as (pv: T) => T)(s === empty ? pv : s);\n }\n return nv;\n });\n inputStateRef.current[0] = empty;\n }, []);\n\n const onEmpty = React.useCallback(() => {\n inputStateRef.current[0] = empty;\n forceRender({});\n }, []);\n\n return [inputStateRef.current[0] === empty ? state : inputStateRef.current[0], setStateOuter, onEmpty];\n}\n","/* eslint-disable unicorn/no-for-loop */\nimport type { Theme } from \"../common/styles\";\nimport {\n DrilldownCellData,\n Item,\n GridSelection,\n InnerGridCell,\n SizedGridColumn,\n Rectangle,\n BaseGridCell,\n BooleanEmpty,\n BooleanIndeterminate,\n} from \"./data-grid-types\";\nimport { degreesToRadians, direction } from \"../common/utils\";\nimport React from \"react\";\nimport type { BaseDrawArgs, PrepResult } from \"./cells/cell-types\";\nimport { assertNever } from \"../common/support\";\nimport { split as splitText, clearCache } from \"canvas-hypertxt\";\n\nexport interface MappedGridColumn extends SizedGridColumn {\n sourceIndex: number;\n sticky: boolean;\n}\n\nexport function useMappedColumns(\n columns: readonly SizedGridColumn[],\n freezeColumns: number\n): readonly MappedGridColumn[] {\n return React.useMemo(\n () =>\n columns.map((c, i) => ({\n ...c,\n sourceIndex: i,\n sticky: i < freezeColumns,\n })),\n [columns, freezeColumns]\n );\n}\n\nexport function isGroupEqual(left: string | undefined, right: string | undefined): boolean {\n return (left ?? \"\") === (right ?? \"\");\n}\n\nexport function cellIsSelected(location: Item, cell: InnerGridCell, selection: GridSelection): boolean {\n if (selection?.current === undefined) return false;\n\n const [col, row] = selection.current.cell;\n const [cellCol, cellRow] = location;\n if (cellRow !== row) return false;\n\n if (cell.span === undefined) {\n return col === cellCol;\n }\n\n return col >= cell.span[0] && col <= cell.span[1];\n}\n\nfunction cellIsInRect(location: Item, cell: InnerGridCell, rect: Rectangle): boolean {\n const startX = rect.x;\n const endX = rect.x + rect.width - 1;\n const startY = rect.y;\n const endY = rect.y + rect.height - 1;\n\n const [cellCol, cellRow] = location;\n if (cellRow < startY || cellRow > endY) return false;\n\n if (cell.span === undefined) {\n return cellCol >= startX && cellCol <= endX;\n }\n\n const [spanStart, spanEnd] = cell.span;\n return (\n (spanStart >= startX && spanStart <= endX) ||\n (spanEnd >= startX && spanStart <= endX) ||\n (spanStart < startX && spanEnd > endX)\n );\n}\n\nexport function cellIsInRange(location: Item, cell: InnerGridCell, selection: GridSelection): number {\n let result = 0;\n if (selection.current === undefined) return result;\n\n if (cellIsInRect(location, cell, selection.current.range)) result++;\n for (const r of selection.current.rangeStack) {\n if (cellIsInRect(location, cell, r)) {\n result++;\n }\n }\n return result;\n}\n\nfunction remapForDnDState(\n columns: readonly MappedGridColumn[],\n dndState?: {\n src: number;\n dest: number;\n }\n) {\n let mappedCols = columns;\n if (dndState !== undefined) {\n let writable = [...columns];\n const temp = mappedCols[dndState.src];\n if (dndState.src > dndState.dest) {\n writable.splice(dndState.src, 1);\n writable.splice(dndState.dest, 0, temp);\n } else {\n writable.splice(dndState.dest + 1, 0, temp);\n writable.splice(dndState.src, 1);\n }\n writable = writable.map((c, i) => ({\n ...c,\n sticky: columns[i].sticky,\n }));\n mappedCols = writable;\n }\n return mappedCols;\n}\n\nexport function getStickyWidth(\n columns: readonly MappedGridColumn[],\n dndState?: {\n src: number;\n dest: number;\n }\n): number {\n let result = 0;\n const remapped = remapForDnDState(columns, dndState);\n for (let i = 0; i < remapped.length; i++) {\n const c = remapped[i];\n if (c.sticky) result += c.width;\n else break;\n }\n\n return result;\n}\n\nexport function getEffectiveColumns(\n columns: readonly MappedGridColumn[],\n cellXOffset: number,\n width: number,\n dndState?: {\n src: number;\n dest: number;\n },\n tx?: number\n): readonly MappedGridColumn[] {\n const mappedCols = remapForDnDState(columns, dndState);\n\n const sticky: MappedGridColumn[] = [];\n for (const c of mappedCols) {\n if (c.sticky) {\n sticky.push(c);\n } else {\n break;\n }\n }\n if (sticky.length > 0) {\n for (const c of sticky) {\n width -= c.width;\n }\n }\n let endIndex = cellXOffset;\n let curX = tx ?? 0;\n\n while (curX <= width && endIndex < mappedCols.length) {\n curX += mappedCols[endIndex].width;\n endIndex++;\n }\n\n for (let i = cellXOffset; i < endIndex; i++) {\n const c = mappedCols[i];\n if (!c.sticky) {\n sticky.push(c);\n }\n }\n\n return sticky;\n}\n\nexport function getColumnIndexForX(\n targetX: number,\n effectiveColumns: readonly MappedGridColumn[],\n translateX?: number\n): number {\n let x = 0;\n for (const c of effectiveColumns) {\n const cx = c.sticky ? x : x + (translateX ?? 0);\n if (targetX <= cx + c.width) {\n return c.sourceIndex;\n }\n x += c.width;\n }\n return -1;\n}\n\nexport function getRowIndexForY(\n targetY: number,\n height: number,\n hasGroups: boolean,\n headerHeight: number,\n groupHeaderHeight: number,\n rows: number,\n rowHeight: number | ((index: number) => number),\n cellYOffset: number,\n translateY: number,\n lastRowSticky: boolean\n): number | undefined {\n const totalHeaderHeight = headerHeight + groupHeaderHeight;\n if (hasGroups && targetY <= groupHeaderHeight) return -2;\n if (targetY <= totalHeaderHeight) return -1;\n\n const lastRowHeight = typeof rowHeight === \"number\" ? rowHeight : rowHeight(rows - 1);\n if (lastRowSticky && targetY > height - lastRowHeight) {\n return rows - 1;\n }\n\n const effectiveRows = rows - (lastRowSticky ? 1 : 0);\n\n const ty = targetY - (translateY ?? 0);\n if (typeof rowHeight === \"number\") {\n const target = Math.floor((ty - totalHeaderHeight) / rowHeight) + cellYOffset;\n if (target >= effectiveRows) return undefined;\n return target;\n } else {\n let curY = totalHeaderHeight;\n for (let i = cellYOffset; i < effectiveRows; i++) {\n const rh = rowHeight(i);\n if (ty <= curY + rh) return i;\n curY += rh;\n }\n return undefined;\n }\n}\n\nlet metricsSize = 0;\nlet metricsCache: Record = {};\nconst isSSR = typeof window === \"undefined\";\n\nasync function clearCacheOnLoad() {\n if (isSSR || document?.fonts?.ready === undefined) return;\n await document.fonts.ready;\n metricsSize = 0;\n metricsCache = {};\n clearCache();\n}\n\nvoid clearCacheOnLoad();\n\nfunction makeCacheKey(s: string, ctx: CanvasRenderingContext2D, baseline: \"alphabetic\" | \"middle\", font?: string) {\n return `${s}_${font ?? ctx.font}_${baseline}`;\n}\n\n/** @category Drawing */\nexport function measureTextCached(s: string, ctx: CanvasRenderingContext2D, font?: string): TextMetrics {\n const key = makeCacheKey(s, ctx, \"middle\", font);\n let metrics = metricsCache[key];\n if (metrics === undefined) {\n metrics = ctx.measureText(s);\n metricsCache[key] = metrics;\n metricsSize++;\n }\n\n if (metricsSize > 10_000) {\n metricsCache = {};\n metricsSize = 0;\n }\n\n return metrics;\n}\n\n/** @category Drawing */\nexport function getMiddleCenterBias(ctx: CanvasRenderingContext2D, font: string | Theme): number {\n if (typeof font !== \"string\") {\n font = `${font.baseFontStyle} ${font.fontFamily}`;\n }\n return getMiddleCenterBiasInner(ctx, font);\n}\n\nfunction loadMetric(ctx: CanvasRenderingContext2D, baseline: \"alphabetic\" | \"middle\") {\n const sample = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n ctx.save();\n ctx.textBaseline = baseline;\n const result = ctx.measureText(sample);\n\n ctx.restore();\n\n return result;\n}\n\nconst biasCache: { key: string; val: number }[] = [];\n\nfunction getMiddleCenterBiasInner(ctx: CanvasRenderingContext2D, font: string): number {\n for (const x of biasCache) {\n if (x.key === font) return x.val;\n }\n\n const alphabeticMetrics = loadMetric(ctx, \"alphabetic\");\n const middleMetrics = loadMetric(ctx, \"middle\");\n\n const bias =\n -(middleMetrics.actualBoundingBoxDescent - alphabeticMetrics.actualBoundingBoxDescent) +\n alphabeticMetrics.actualBoundingBoxAscent / 2;\n\n biasCache.push({\n key: font,\n val: bias,\n });\n\n return bias;\n}\n\n/** @category Drawing */\nexport function drawWithLastUpdate(\n args: BaseDrawArgs,\n lastUpdate: number | undefined,\n frameTime: number,\n lastPrep: PrepResult | undefined,\n draw: () => void\n) {\n const { ctx, rect, theme } = args;\n let progress = Number.MAX_SAFE_INTEGER;\n const animTime = 500;\n if (lastUpdate !== undefined) {\n progress = frameTime - lastUpdate;\n\n if (progress < animTime) {\n const fade = 1 - progress / animTime;\n ctx.globalAlpha = fade;\n ctx.fillStyle = theme.bgSearchResult;\n ctx.fillRect(rect.x, rect.y, rect.width, rect.height);\n ctx.globalAlpha = 1;\n if (lastPrep !== undefined) {\n lastPrep.fillStyle = theme.bgSearchResult;\n }\n }\n }\n\n draw();\n\n return progress < animTime;\n}\n\nexport function prepTextCell(\n args: BaseDrawArgs,\n lastPrep: PrepResult | undefined,\n overrideColor?: string\n): Partial {\n const { ctx, theme } = args;\n const result: Partial = lastPrep ?? {};\n\n const newFill = overrideColor ?? theme.textDark;\n if (newFill !== result.fillStyle) {\n ctx.fillStyle = newFill;\n result.fillStyle = newFill;\n }\n return result;\n}\n\n/** @category Drawing */\nexport function drawTextCellExternal(args: BaseDrawArgs, data: string, contentAlign?: BaseGridCell[\"contentAlign\"]) {\n const { rect, ctx, theme } = args;\n\n ctx.fillStyle = theme.textDark;\n drawTextCell(\n {\n ctx: ctx,\n rect,\n theme: theme,\n },\n data,\n contentAlign\n );\n}\n\nfunction drawSingleTextLine(\n ctx: CanvasRenderingContext2D,\n data: string,\n x: number,\n y: number,\n w: number,\n h: number,\n bias: number,\n theme: Theme,\n contentAlign?: BaseGridCell[\"contentAlign\"]\n) {\n if (contentAlign === \"right\") {\n ctx.fillText(data, x + w - (theme.cellHorizontalPadding + 0.5), y + h / 2 + bias);\n } else if (contentAlign === \"center\") {\n ctx.fillText(data, x + w / 2, y + h / 2 + bias);\n } else {\n ctx.fillText(data, x + theme.cellHorizontalPadding + 0.5, y + h / 2 + bias);\n }\n}\n\nfunction getEmHeight(ctx: CanvasRenderingContext2D, fontStyle: string): number {\n const textMetrics = measureTextCached(\"ABCi09jgqpy\", ctx, fontStyle); // do not question the magic string\n return textMetrics.actualBoundingBoxAscent + textMetrics.actualBoundingBoxDescent;\n}\n\n/** @category Drawing */\nexport function drawTextCell(\n args: Pick,\n data: string,\n contentAlign?: BaseGridCell[\"contentAlign\"],\n allowWrapping?: boolean,\n hyperWrapping?: boolean\n) {\n const { ctx, rect, theme } = args;\n\n const { x, y, width: w, height: h } = rect;\n\n allowWrapping = allowWrapping ?? false;\n\n if (!allowWrapping) {\n if (data.includes(\"\\n\")) {\n // new lines are rare and split is relatively expensive compared to the search\n // it pays off to not do the split contantly.\n data = data.split(/\\r?\\n/)[0];\n }\n const max = w / 4; // no need to round, slice will just truncate this\n if (data.length > max) {\n data = data.slice(0, max);\n }\n }\n\n const bias = getMiddleCenterBias(ctx, theme);\n\n const isRtl = direction(data) === \"rtl\";\n\n if (contentAlign === undefined && isRtl) {\n contentAlign = \"right\";\n }\n\n if (isRtl) {\n ctx.direction = \"rtl\";\n }\n\n if (data.length > 0) {\n let changed = false;\n if (contentAlign === \"right\") {\n // Use right alignment as default for RTL text\n ctx.textAlign = \"right\";\n changed = true;\n } else if (contentAlign !== undefined && contentAlign !== \"left\") {\n // Since default is start (=left), only apply if alignment is center or right\n ctx.textAlign = contentAlign;\n changed = true;\n }\n\n if (!allowWrapping) {\n drawSingleTextLine(ctx, data, x, y, w, h, bias, theme, contentAlign);\n } else {\n const fontStyle = `${theme.fontFamily} ${theme.baseFontStyle}`;\n const split = splitText(ctx, data, fontStyle, w - theme.cellHorizontalPadding * 2, hyperWrapping ?? false);\n\n const emHeight = getEmHeight(ctx, fontStyle);\n const lineHeight = theme.lineHeight * emHeight;\n\n const actualHeight = emHeight + lineHeight * (split.length - 1);\n const mustClip = actualHeight + theme.cellVerticalPadding > h;\n\n if (mustClip) {\n // well now we have to clip because we might render outside the cell vertically\n ctx.save();\n ctx.rect(x, y, w, h);\n ctx.clip();\n }\n\n const optimalY = y + h / 2 - actualHeight / 2;\n let drawY = Math.max(y + theme.cellVerticalPadding, optimalY);\n for (const line of split) {\n drawSingleTextLine(ctx, line, x, drawY, w, emHeight, bias, theme, contentAlign);\n drawY += lineHeight;\n if (drawY > y + h) break;\n }\n if (mustClip) {\n ctx.restore();\n }\n }\n\n if (changed) {\n // Reset alignment to default\n ctx.textAlign = \"start\";\n }\n\n if (isRtl) {\n ctx.direction = \"inherit\";\n }\n }\n}\n\nexport function drawNewRowCell(args: BaseDrawArgs, data: string, icon?: string) {\n const { ctx, rect, hoverAmount, theme, spriteManager } = args;\n const { x, y, width: w, height: h } = rect;\n ctx.beginPath();\n ctx.globalAlpha = hoverAmount;\n ctx.rect(x, y, w, h);\n ctx.fillStyle = theme.bgHeaderHovered;\n ctx.fill();\n ctx.globalAlpha = 1;\n ctx.beginPath();\n\n const alwaysShowIcon = data !== \"\";\n\n let textX = 0;\n\n if (icon !== undefined) {\n const padding = 8;\n const size = h - padding;\n const px = x + padding / 2;\n const py = y + padding / 2;\n\n spriteManager.drawSprite(icon, \"normal\", ctx, px, py, size, theme, alwaysShowIcon ? 1 : hoverAmount);\n textX = size;\n } else {\n textX = 24;\n const finalLineSize = 12;\n const lineSize = alwaysShowIcon ? finalLineSize : hoverAmount * finalLineSize;\n const xTranslate = alwaysShowIcon ? 0 : (1 - hoverAmount) * finalLineSize * 0.5;\n\n const padPlus = theme.cellHorizontalPadding + 4;\n if (lineSize > 0) {\n ctx.moveTo(x + padPlus + xTranslate, y + h / 2);\n ctx.lineTo(x + padPlus + xTranslate + lineSize, y + h / 2);\n ctx.moveTo(x + padPlus + xTranslate + lineSize * 0.5, y + h / 2 - lineSize * 0.5);\n ctx.lineTo(x + padPlus + xTranslate + lineSize * 0.5, y + h / 2 + lineSize * 0.5);\n ctx.lineWidth = 2;\n ctx.strokeStyle = theme.bgIconHeader;\n ctx.lineCap = \"round\";\n ctx.stroke();\n }\n }\n\n ctx.fillStyle = theme.textMedium;\n ctx.fillText(data, textX + x + theme.cellHorizontalPadding + 0.5, y + h / 2 + getMiddleCenterBias(ctx, theme));\n ctx.beginPath();\n}\n\nexport function drawCheckbox(\n ctx: CanvasRenderingContext2D,\n theme: Theme,\n checked: boolean | BooleanEmpty | BooleanIndeterminate,\n x: number,\n y: number,\n width: number,\n height: number,\n highlighted: boolean,\n hoverX: number = -20,\n hoverY: number = -20\n) {\n const centerX = x + width / 2;\n const centerY = y + height / 2;\n\n const checkBoxWidth = height / 1.89; // checkbox width proportional to cell height\n const emptyCheckBoxWidth = height / 2;\n\n const hoverHelper = height / 3.4;\n const hovered = Math.abs(hoverX - width / 2) < hoverHelper && Math.abs(hoverY - height / 2) < hoverHelper;\n\n const rectBordRadius = 4;\n const posHelperChecked = height / 4.25; //for default cell height (34px) this equals to 8px\n const posHelperEmpty = height / 4; // 8.5px\n const posHelperInter = height / 8.5; // 4px\n\n switch (checked) {\n case true: {\n ctx.beginPath();\n roundedRect(\n ctx,\n centerX - checkBoxWidth / 2,\n centerY - checkBoxWidth / 2,\n checkBoxWidth,\n checkBoxWidth,\n rectBordRadius\n );\n\n ctx.fillStyle = highlighted ? theme.accentColor : theme.textMedium;\n ctx.fill();\n\n ctx.beginPath();\n ctx.moveTo(centerX - posHelperChecked + height / 9.31, centerY - posHelperChecked + height / 4.33);\n ctx.lineTo(centerX - posHelperChecked + height / 5.33, centerY - posHelperChecked + height / 3.17);\n ctx.lineTo(centerX - posHelperChecked + height / 2.83, centerY - posHelperChecked + height / 7.16);\n\n ctx.strokeStyle = theme.bgCell;\n ctx.lineJoin = \"round\";\n ctx.lineCap = \"round\";\n ctx.lineWidth = 1.9;\n ctx.stroke();\n break;\n }\n\n case BooleanEmpty:\n case false: {\n ctx.beginPath();\n roundedRect(\n ctx,\n centerX - posHelperEmpty,\n centerY - posHelperEmpty,\n emptyCheckBoxWidth,\n emptyCheckBoxWidth,\n rectBordRadius\n );\n\n ctx.lineWidth = 1;\n ctx.strokeStyle = hovered ? theme.textDark : theme.textMedium;\n ctx.stroke();\n break;\n }\n\n case BooleanIndeterminate: {\n ctx.beginPath();\n roundedRect(\n ctx,\n centerX - posHelperEmpty,\n centerY - posHelperEmpty,\n emptyCheckBoxWidth,\n emptyCheckBoxWidth,\n rectBordRadius\n );\n\n ctx.fillStyle = hovered ? theme.textMedium : theme.textLight;\n ctx.fill();\n\n ctx.beginPath();\n ctx.moveTo(centerX - posHelperInter, centerY);\n ctx.lineTo(centerX + posHelperInter, centerY);\n ctx.strokeStyle = theme.bgCell;\n ctx.lineCap = \"round\";\n ctx.lineWidth = 1.9;\n ctx.stroke();\n break;\n }\n\n default:\n assertNever(checked);\n }\n}\n\nexport function prepMarkerRowCell(args: BaseDrawArgs, lastPrep: PrepResult | undefined): Partial {\n const { ctx, theme } = args;\n const newFont = `9px ${theme.fontFamily}`;\n const result: Partial = lastPrep ?? {};\n if (result?.font !== newFont) {\n ctx.font = newFont;\n result.font = newFont;\n }\n result.deprep = deprepMarkerRowCell;\n ctx.textAlign = \"center\";\n return result;\n}\n\nexport function deprepMarkerRowCell(args: Pick) {\n const { ctx } = args;\n ctx.textAlign = \"start\";\n}\n\nexport function drawMarkerRowCell(\n args: BaseDrawArgs,\n index: number,\n checked: boolean,\n markerKind: \"checkbox\" | \"both\" | \"number\",\n drawHandle: boolean\n) {\n const { ctx, rect, hoverAmount, theme } = args;\n const { x, y, width, height } = rect;\n const checkedboxAlpha = checked ? 1 : hoverAmount;\n if (markerKind !== \"number\" && checkedboxAlpha > 0) {\n ctx.globalAlpha = checkedboxAlpha;\n const offsetAmount = 7 * (checked ? hoverAmount : 1);\n drawCheckbox(\n ctx,\n theme,\n checked,\n drawHandle ? x + offsetAmount : x,\n y,\n drawHandle ? width - offsetAmount : width,\n height,\n true\n );\n if (drawHandle) {\n ctx.globalAlpha = hoverAmount;\n ctx.beginPath();\n for (const xOffset of [3, 6]) {\n for (const yOffset of [-5, -1, 3]) {\n ctx.rect(x + xOffset, y + height / 2 + yOffset, 2, 2);\n }\n }\n\n ctx.fillStyle = theme.textLight;\n ctx.fill();\n ctx.beginPath();\n }\n ctx.globalAlpha = 1;\n }\n if (markerKind === \"number\" || (markerKind === \"both\" && !checked)) {\n const text = index.toString();\n\n const start = x + width / 2;\n if (markerKind === \"both\" && hoverAmount !== 0) {\n ctx.globalAlpha = 1 - hoverAmount;\n }\n ctx.fillStyle = theme.textLight;\n ctx.fillText(text, start, y + height / 2 + getMiddleCenterBias(ctx, `9px ${theme.fontFamily}`));\n if (hoverAmount !== 0) {\n ctx.globalAlpha = 1;\n }\n }\n}\n\nexport function drawProtectedCell(args: BaseDrawArgs) {\n const { ctx, theme, rect } = args;\n const { x, y, height: h } = rect;\n\n ctx.beginPath();\n\n const radius = 2.5;\n let xStart = x + theme.cellHorizontalPadding + radius;\n const center = y + h / 2;\n const p = Math.cos(degreesToRadians(30)) * radius;\n const q = Math.sin(degreesToRadians(30)) * radius;\n\n for (let i = 0; i < 12; i++) {\n ctx.moveTo(xStart, center - radius);\n ctx.lineTo(xStart, center + radius);\n\n ctx.moveTo(xStart + p, center - q);\n ctx.lineTo(xStart - p, center + q);\n\n ctx.moveTo(xStart - p, center - q);\n ctx.lineTo(xStart + p, center + q);\n xStart += 8;\n }\n ctx.lineWidth = 1.1;\n ctx.lineCap = \"square\";\n ctx.strokeStyle = theme.textLight;\n ctx.stroke();\n}\n\ninterface CornerRadius {\n tl: number;\n tr: number;\n bl: number;\n br: number;\n}\n\nfunction roundedRect(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n width: number,\n height: number,\n radius: number | CornerRadius\n) {\n if (typeof radius === \"number\") {\n radius = { tl: radius, tr: radius, br: radius, bl: radius };\n }\n\n // restrict radius to a reasonable max\n radius = {\n tl: Math.min(radius.tl, height / 2, width / 2),\n tr: Math.min(radius.tr, height / 2, width / 2),\n bl: Math.min(radius.bl, height / 2, width / 2),\n br: Math.min(radius.br, height / 2, width / 2),\n };\n\n ctx.moveTo(x + radius.tl, y);\n ctx.arcTo(x + width, y, x + width, y + radius.tr, radius.tr);\n ctx.arcTo(x + width, y + height, x + width - radius.br, y + height, radius.br);\n ctx.arcTo(x, y + height, x, y + height - radius.bl, radius.bl);\n ctx.arcTo(x, y, x + radius.tl, y, radius.tl);\n}\n\nexport function drawBoolean(args: BaseDrawArgs, data: boolean | BooleanEmpty | BooleanIndeterminate, canEdit: boolean) {\n if (!canEdit && data === BooleanEmpty) {\n return;\n }\n\n const { ctx, hoverAmount, theme, rect, highlighted, hoverX, hoverY } = args;\n const { x, y, width: w, height: h } = rect;\n\n const hoverEffect = 0.35;\n\n let alpha = canEdit ? 1 - hoverEffect + hoverEffect * hoverAmount : 0.4;\n if (data === BooleanEmpty) {\n alpha *= hoverAmount;\n }\n if (alpha === 0) {\n return;\n }\n ctx.globalAlpha = alpha;\n\n drawCheckbox(ctx, theme, data, x, y, w, h, highlighted, hoverX, hoverY);\n\n ctx.globalAlpha = 1;\n}\n\nconst itemMargin = 4;\n\nexport function drawBubbles(args: BaseDrawArgs, data: readonly string[]) {\n const { rect, theme, ctx, highlighted } = args;\n const { x, y, width: w, height: h } = rect;\n const bubbleHeight = 20;\n const bubblePad = 8;\n const bubbleMargin = itemMargin;\n let renderX = x + theme.cellHorizontalPadding;\n\n const renderBoxes: { x: number; width: number }[] = [];\n for (const s of data) {\n if (renderX > x + w) break;\n const textWidth = measureTextCached(s, ctx, `${theme.baseFontStyle} ${theme.fontFamily}`).width;\n renderBoxes.push({\n x: renderX,\n width: textWidth,\n });\n\n renderX += textWidth + bubblePad * 2 + bubbleMargin;\n }\n\n ctx.beginPath();\n for (const rectInfo of renderBoxes) {\n roundedRect(\n ctx,\n rectInfo.x,\n y + (h - bubbleHeight) / 2,\n rectInfo.width + bubblePad * 2,\n bubbleHeight,\n bubbleHeight / 2\n );\n }\n ctx.fillStyle = highlighted ? theme.bgBubbleSelected : theme.bgBubble;\n ctx.fill();\n\n for (const [i, rectInfo] of renderBoxes.entries()) {\n ctx.beginPath();\n ctx.fillStyle = theme.textBubble;\n ctx.fillText(data[i], rectInfo.x + bubblePad, y + h / 2 + getMiddleCenterBias(ctx, theme));\n }\n}\n\nconst drilldownCache: {\n [key: string]: HTMLCanvasElement;\n} = {};\n\nfunction getAndCacheDrilldownBorder(\n bgCell: string,\n border: string,\n height: number\n): {\n el: HTMLCanvasElement;\n height: number;\n width: number;\n middleWidth: number;\n sideWidth: number;\n dpr: number;\n padding: number;\n} | null {\n const dpr = Math.ceil(window.devicePixelRatio);\n const shadowBlur = 5;\n const targetHeight = height - shadowBlur * 2;\n const middleWidth = 4;\n const rounding = 6;\n\n const innerHeight = height * dpr;\n const sideWidth = rounding + shadowBlur;\n const targetWidth = rounding * 3;\n const innerWidth = (targetWidth + shadowBlur * 2) * dpr;\n\n const key = `${bgCell},${border},${dpr},${height}`;\n if (drilldownCache[key] !== undefined) {\n return {\n el: drilldownCache[key],\n height: innerHeight,\n width: innerWidth,\n middleWidth: middleWidth * dpr,\n sideWidth: sideWidth * dpr,\n padding: shadowBlur * dpr,\n dpr,\n };\n }\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\"); // alpha needed\n\n if (ctx === null) return null;\n\n canvas.width = innerWidth;\n canvas.height = innerHeight;\n\n ctx.scale(dpr, dpr);\n\n drilldownCache[key] = canvas;\n\n const trueRounding = Math.min(rounding, targetWidth / 2, targetHeight / 2);\n ctx.beginPath();\n roundedRect(ctx, shadowBlur, shadowBlur, targetWidth, targetHeight, trueRounding);\n\n ctx.shadowColor = \"rgba(24, 25, 34, 0.4)\";\n ctx.shadowBlur = 1;\n ctx.fillStyle = bgCell;\n ctx.fill();\n\n ctx.shadowColor = \"rgba(24, 25, 34, 0.3)\";\n ctx.shadowOffsetY = 1;\n ctx.shadowBlur = 5;\n ctx.fillStyle = bgCell;\n ctx.fill();\n\n ctx.shadowOffsetY = 0;\n ctx.shadowBlur = 0;\n ctx.shadowBlur = 0;\n\n ctx.beginPath();\n roundedRect(ctx, shadowBlur + 0.5, shadowBlur + 0.5, targetWidth, targetHeight, trueRounding);\n\n ctx.strokeStyle = border;\n ctx.lineWidth = 1;\n ctx.stroke();\n\n return {\n el: canvas,\n height: innerHeight,\n width: innerWidth,\n sideWidth: sideWidth * dpr,\n middleWidth: rounding * dpr,\n padding: shadowBlur * dpr,\n dpr,\n };\n}\n\nexport function drawDrilldownCell(args: BaseDrawArgs, data: readonly DrilldownCellData[]) {\n const { rect, theme, ctx, imageLoader, col, row } = args;\n const { x, width: w } = rect;\n\n const font = `${theme.baseFontStyle} ${theme.fontFamily}`;\n const emHeight = getEmHeight(ctx, font);\n const h = Math.min(rect.height, Math.max(16, Math.ceil(emHeight * theme.lineHeight) * 2));\n const y = Math.floor(rect.y + (rect.height - h) / 2);\n\n const bubbleHeight = h - 10;\n const bubblePad = 8;\n const bubbleMargin = itemMargin;\n let renderX = x + theme.cellHorizontalPadding;\n\n const tileMap = getAndCacheDrilldownBorder(theme.bgCell, theme.drilldownBorder, h);\n\n const renderBoxes: { x: number; width: number }[] = [];\n for (const el of data) {\n if (renderX > x + w) break;\n const textMetrics = measureTextCached(el.text, ctx, font);\n const textWidth = textMetrics.width;\n let imgWidth = 0;\n if (el.img !== undefined) {\n const img = imageLoader.loadOrGetImage(el.img, col, row);\n if (img !== undefined) {\n imgWidth = bubbleHeight - 8 + 4;\n }\n }\n const renderWidth = textWidth + imgWidth + bubblePad * 2;\n renderBoxes.push({\n x: renderX,\n width: renderWidth,\n });\n\n renderX += renderWidth + bubbleMargin;\n }\n\n if (tileMap !== null) {\n const { el, height, middleWidth, sideWidth, width, dpr, padding } = tileMap;\n const outerSideWidth = sideWidth / dpr;\n const outerPadding = padding / dpr;\n for (const rectInfo of renderBoxes) {\n const rx = Math.floor(rectInfo.x);\n const rw = Math.floor(rectInfo.width);\n ctx.imageSmoothingEnabled = false;\n\n ctx.drawImage(el, 0, 0, sideWidth, height, rx - outerPadding, y, outerSideWidth, h);\n if (rectInfo.width > sideWidth * 2)\n ctx.drawImage(\n el,\n sideWidth,\n 0,\n middleWidth,\n height,\n rx + (outerSideWidth - outerPadding),\n y,\n rw - (outerSideWidth - outerPadding) * 2,\n h\n );\n ctx.drawImage(\n el,\n width - sideWidth,\n 0,\n sideWidth,\n height,\n rx + rw - (outerSideWidth - outerPadding),\n y,\n outerSideWidth,\n h\n );\n ctx.imageSmoothingEnabled = true;\n }\n }\n\n ctx.beginPath();\n\n for (const [i, rectInfo] of renderBoxes.entries()) {\n const d = data[i];\n let drawX = rectInfo.x + bubblePad;\n\n if (d.img !== undefined) {\n const img = imageLoader.loadOrGetImage(d.img, col, row);\n if (img !== undefined) {\n const imgSize = bubbleHeight - 8;\n let srcX = 0;\n let srcY = 0;\n let srcWidth = img.width;\n let srcHeight = img.height;\n\n if (srcWidth > srcHeight) {\n // landscape\n srcX += (srcWidth - srcHeight) / 2;\n srcWidth = srcHeight;\n } else if (srcHeight > srcWidth) {\n //portrait\n srcY += (srcHeight - srcWidth) / 2;\n srcHeight = srcWidth;\n }\n ctx.beginPath();\n roundedRect(ctx, drawX, y + h / 2 - imgSize / 2, imgSize, imgSize, 3);\n ctx.save();\n ctx.clip();\n ctx.drawImage(img, srcX, srcY, srcWidth, srcHeight, drawX, y + h / 2 - imgSize / 2, imgSize, imgSize);\n ctx.restore();\n\n drawX += imgSize + 4;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = theme.textBubble;\n ctx.fillText(d.text, drawX, y + h / 2 + getMiddleCenterBias(ctx, theme));\n }\n}\n\nexport function drawImage(args: BaseDrawArgs, data: readonly string[], rounding: number = 4) {\n const { rect, col, row, theme, ctx, imageLoader } = args;\n const { x, y, height: h } = rect;\n let drawX = x + theme.cellHorizontalPadding;\n for (const i of data) {\n if (i.length === 0) continue;\n const img = imageLoader.loadOrGetImage(i, col, row);\n\n if (img !== undefined) {\n const imgHeight = h - theme.cellVerticalPadding * 2;\n const imgWidth = img.width * (imgHeight / img.height);\n if (rounding > 0) {\n roundedRect(ctx, drawX, y + theme.cellVerticalPadding, imgWidth, imgHeight, rounding);\n ctx.save();\n ctx.clip();\n }\n ctx.drawImage(img, drawX, y + theme.cellVerticalPadding, imgWidth, imgHeight);\n if (rounding > 0) {\n ctx.restore();\n }\n\n drawX += imgWidth + itemMargin;\n }\n }\n}\n\ninterface Point {\n x: number;\n y: number;\n radius?: number;\n}\n\ninterface Vector {\n nx: number;\n ny: number;\n len: number;\n x: number;\n y: number;\n ang: number;\n}\n\nexport function roundedPoly(ctx: CanvasRenderingContext2D, points: Point[], radiusAll: number) {\n // convert 2 points into vector form, polar form, and normalised\n const asVec = function (p: Point, pp: Point): Vector {\n const vx = pp.x - p.x;\n const vy = pp.y - p.y;\n const vlen = Math.sqrt(vx * vx + vy * vy);\n const vnx = vx / vlen;\n const vny = vy / vlen;\n return {\n x: vx,\n y: pp.y - p.y,\n len: vlen,\n nx: vnx,\n ny: vny,\n ang: Math.atan2(vny, vnx),\n };\n };\n let radius: number;\n // const v1: Vector = {} as any;\n // const v2: Vector = {} as any;\n const len = points.length;\n let p1 = points[len - 1];\n // for each point\n for (let i = 0; i < len; i++) {\n let p2 = points[i % len];\n const p3 = points[(i + 1) % len];\n //-----------------------------------------\n // Part 1\n const v1 = asVec(p2, p1);\n const v2 = asVec(p2, p3);\n const sinA = v1.nx * v2.ny - v1.ny * v2.nx;\n const sinA90 = v1.nx * v2.nx - v1.ny * -v2.ny;\n let angle = Math.asin(sinA < -1 ? -1 : sinA > 1 ? 1 : sinA);\n //-----------------------------------------\n let radDirection = 1;\n let drawDirection = false;\n if (sinA90 < 0) {\n if (angle < 0) {\n angle = Math.PI + angle;\n } else {\n angle = Math.PI - angle;\n radDirection = -1;\n drawDirection = true;\n }\n } else {\n if (angle > 0) {\n radDirection = -1;\n drawDirection = true;\n }\n }\n radius = p2.radius !== undefined ? p2.radius : radiusAll;\n //-----------------------------------------\n // Part 2\n const halfAngle = angle / 2;\n //-----------------------------------------\n\n //-----------------------------------------\n // Part 3\n let lenOut = Math.abs((Math.cos(halfAngle) * radius) / Math.sin(halfAngle));\n //-----------------------------------------\n\n //-----------------------------------------\n // Special part A\n let cRadius: number;\n if (lenOut > Math.min(v1.len / 2, v2.len / 2)) {\n lenOut = Math.min(v1.len / 2, v2.len / 2);\n cRadius = Math.abs((lenOut * Math.sin(halfAngle)) / Math.cos(halfAngle));\n } else {\n cRadius = radius;\n }\n //-----------------------------------------\n // Part 4\n let x = p2.x + v2.nx * lenOut;\n let y = p2.y + v2.ny * lenOut;\n //-----------------------------------------\n // Part 5\n x += -v2.ny * cRadius * radDirection;\n y += v2.nx * cRadius * radDirection;\n //-----------------------------------------\n // Part 6\n ctx.arc(\n x,\n y,\n cRadius,\n v1.ang + (Math.PI / 2) * radDirection,\n v2.ang - (Math.PI / 2) * radDirection,\n drawDirection\n );\n //-----------------------------------------\n p1 = p2;\n p2 = p3;\n }\n ctx.closePath();\n}\n\nexport function computeBounds(\n col: number,\n row: number,\n width: number,\n height: number,\n groupHeaderHeight: number,\n totalHeaderHeight: number,\n cellXOffset: number,\n cellYOffset: number,\n translateX: number,\n translateY: number,\n rows: number,\n freezeColumns: number,\n lastRowSticky: boolean,\n mappedColumns: readonly MappedGridColumn[],\n rowHeight: number | ((index: number) => number)\n): Rectangle {\n const result: Rectangle = {\n x: 0,\n y: totalHeaderHeight + translateY,\n width: 0,\n height: 0,\n };\n\n const headerHeight = totalHeaderHeight - groupHeaderHeight;\n\n if (col >= freezeColumns) {\n const dir = cellXOffset > col ? -1 : 1;\n const freezeWidth = getStickyWidth(mappedColumns);\n result.x += freezeWidth + translateX;\n for (let i = cellXOffset; i !== col; i += dir) {\n result.x += mappedColumns[dir === 1 ? i : i - 1].width * dir;\n }\n } else {\n for (let i = 0; i < col; i++) {\n result.x += mappedColumns[i].width;\n }\n }\n result.width = mappedColumns[col].width + 1;\n\n if (row === -1) {\n result.y = groupHeaderHeight;\n result.height = headerHeight;\n } else if (row === -2) {\n result.y = 0;\n result.height = groupHeaderHeight;\n\n let start = col;\n const group = mappedColumns[col].group;\n const sticky = mappedColumns[col].sticky;\n while (\n start > 0 &&\n isGroupEqual(mappedColumns[start - 1].group, group) &&\n mappedColumns[start - 1].sticky === sticky\n ) {\n const c = mappedColumns[start - 1];\n result.x -= c.width;\n result.width += c.width;\n start--;\n }\n\n let end = col;\n while (\n end + 1 < mappedColumns.length &&\n isGroupEqual(mappedColumns[end + 1].group, group) &&\n mappedColumns[end + 1].sticky === sticky\n ) {\n const c = mappedColumns[end + 1];\n result.width += c.width;\n end++;\n }\n if (!sticky) {\n const freezeWidth = getStickyWidth(mappedColumns);\n const clip = result.x - freezeWidth;\n if (clip < 0) {\n result.x -= clip;\n result.width += clip;\n }\n\n if (result.x + result.width > width) {\n result.width = width - result.x;\n }\n }\n } else if (lastRowSticky && row === rows - 1) {\n const stickyHeight = typeof rowHeight === \"number\" ? rowHeight : rowHeight(row);\n result.y = height - stickyHeight;\n result.height = stickyHeight;\n } else {\n const dir = cellYOffset > row ? -1 : 1;\n if (typeof rowHeight === \"number\") {\n const delta = row - cellYOffset;\n result.y += delta * rowHeight;\n } else {\n for (let r = cellYOffset; r !== row; r += dir) {\n result.y += rowHeight(r) * dir;\n }\n }\n result.height = (typeof rowHeight === \"number\" ? rowHeight : rowHeight(row)) + 1;\n }\n\n return result;\n}\n","import type { SpriteProps } from \"../common/utils\";\n\nconst iconHead = ``;\nconst headerRowID = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n\n return `\n ${iconHead}`;\n};\n\nconst headerCode = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}`;\n};\n\nconst headerNumber = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n `;\n};\n\nconst headerString = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n`;\n};\n\nconst headerBoolean = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n`;\n};\n\nconst headerUri = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n\n\n\n\n `;\n};\n\nconst renameIcon = (props: SpriteProps) => {\n const bg = props.bgColor;\n return `${iconHead}\n \n \n \n \n`;\n};\n\nconst headerAudioUri = headerUri;\n\nconst headerVideoUri = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n`;\n};\n\nconst headerEmoji = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n \n \n \n \n \n `;\n};\n\nconst headerImage = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n \n`;\n};\n\nconst headerPhone = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n `;\n};\n\nconst headerMarkdown = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n `;\n};\n\nconst headerDate = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n`;\n};\n\nconst headerTime = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n \n `;\n};\n\nconst headerEmail = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n \n`;\n};\n\nconst headerReference = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n \n `;\n};\n\nconst headerIfThenElse = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n`;\n};\n\nconst headerSingleValue = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n `;\n};\n\nconst headerLookup = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n `;\n};\n\nconst headerTextTemplate = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n`;\n};\n\nconst headerMath = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n \n \n \n`;\n};\n\nconst headerRollup = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n `;\n};\n\nconst headerJoinStrings = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n`;\n};\n\nconst headerSplitString = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n ${iconHead}\n \n \n `;\n};\n\nconst headerGeoDistance = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n \n`;\n};\n\nconst headerArray = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `${iconHead}\n \n \n`;\n};\n\nconst rowOwnerOverlay = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n \n \n `;\n};\n\nconst protectedColumnOverlay = (props: SpriteProps) => {\n const fg = props.fgColor;\n const bg = props.bgColor;\n return `\n \n \n \n`;\n};\n\nexport const sprites = {\n headerRowID,\n headerNumber,\n headerCode,\n headerString,\n headerBoolean,\n headerAudioUri,\n headerVideoUri,\n headerEmoji,\n headerImage,\n headerUri,\n headerPhone,\n headerMarkdown,\n headerDate,\n headerTime,\n headerEmail,\n headerReference,\n headerIfThenElse,\n headerSingleValue,\n headerLookup,\n headerTextTemplate,\n headerMath,\n headerRollup,\n headerJoinStrings,\n headerSplitString,\n headerGeoDistance,\n headerArray,\n rowOwnerOverlay,\n protectedColumnOverlay,\n renameIcon,\n};\n\nexport type HeaderIconMap = Readonly;\n","import type { Theme } from \"../common/styles\";\nimport { HeaderIconMap, sprites } from \"./sprites\";\n\ntype HeaderIcon = keyof HeaderIconMap;\ntype Sprite = HeaderIconMap[\"headerArray\"];\n\n/** @category Columns */\nexport type SpriteMap = Record;\n\n/** @category Columns */\nexport type SpriteVariant = \"normal\" | \"selected\" | \"special\";\n\nfunction getColors(variant: SpriteVariant, theme: Theme): readonly [string, string] {\n if (variant === \"normal\") {\n return [theme.bgIconHeader, theme.fgIconHeader];\n } else if (variant === \"selected\") {\n return [\"white\", theme.accentColor];\n } else {\n return [theme.accentColor, theme.bgHeader];\n }\n}\n\n/** @category Columns */\nexport class SpriteManager {\n private spriteMap: Map = new Map();\n private headerIcons: SpriteMap;\n private inFlight = 0;\n\n constructor(headerIcons: SpriteMap | undefined, private onSettled: () => void) {\n this.headerIcons = {\n ...sprites,\n ...headerIcons,\n };\n }\n\n public drawSprite(\n sprite: HeaderIcon | string,\n variant: SpriteVariant,\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n size: number,\n theme: Theme,\n alpha: number = 1\n ) {\n const [bgColor, fgColor] = getColors(variant, theme);\n const rSize = size * Math.ceil(window.devicePixelRatio);\n const key = `${bgColor}_${fgColor}_${rSize}_${sprite}`;\n\n let spriteCanvas = this.spriteMap.get(key);\n if (spriteCanvas === undefined) {\n const spriteCb = this.headerIcons[sprite];\n\n if (spriteCb === undefined) return;\n\n spriteCanvas = document.createElement(\"canvas\");\n const spriteCtx = spriteCanvas.getContext(\"2d\");\n\n if (spriteCtx === null) return;\n\n const imgSource = new Image();\n imgSource.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(spriteCb({ fgColor, bgColor }))}`;\n this.spriteMap.set(key, spriteCanvas);\n const promise: Promise | undefined = imgSource.decode();\n\n if (promise === undefined) return;\n\n this.inFlight++;\n promise\n .then(() => {\n spriteCtx.drawImage(imgSource, 0, 0, rSize, rSize);\n })\n .finally(() => {\n this.inFlight--;\n if (this.inFlight === 0) {\n this.onSettled();\n }\n });\n } else {\n if (alpha < 1) {\n ctx.globalAlpha = alpha;\n }\n ctx.drawImage(spriteCanvas, 0, 0, rSize, rSize, x, y, size, size);\n if (alpha < 1) {\n ctx.globalAlpha = 1;\n }\n }\n }\n}\n","// Shamelessly stolen from https://github.com/ricokahler/color2k\n// We don't need all the color functions but we deeply appreciate their work.\n\nconst cache: {\n [color: string]: [number, number, number, number];\n} = {};\n\nlet div: HTMLDivElement | null = null;\n\nfunction createDiv() {\n const d = document.createElement(\"div\");\n d.style.opacity = \"0\";\n d.style.pointerEvents = \"none\";\n d.style.position = \"fixed\";\n // div must be mounted for `getComputedStyle` to work\n document.body.append(d);\n return d;\n}\n\n/** @category Drawing */\nexport function parseToRgba(color: string): readonly [number, number, number, number] {\n // normalize the color\n const normalizedColor = color.toLowerCase().trim();\n\n if (cache[normalizedColor] !== undefined) return cache[normalizedColor];\n\n div = div || createDiv();\n\n div.style.color = \"#000\";\n div.style.color = normalizedColor;\n const control = getComputedStyle(div).color;\n\n div.style.color = \"#fff\";\n div.style.color = normalizedColor;\n const computedColor = getComputedStyle(div).color;\n\n if (computedColor !== control) throw new Error(\"Could not parse color\");\n\n const result = computedColor\n // eslint-disable-next-line unicorn/better-regex\n .replace(/[^\\d.,]/g, \"\")\n .split(\",\")\n .map(Number.parseFloat) as [number, number, number, number];\n\n if (result.length < 4) {\n result.push(1);\n }\n\n cache[normalizedColor] = result;\n return result;\n}\n\n/** @category Drawing */\nexport function withAlpha(color: string, alpha: number): string {\n const [r, g, b] = parseToRgba(color);\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n\n/** @category Drawing */\nexport function blend(color: string, background: string | undefined): string {\n if (background === undefined) return color;\n const [r, g, b, a] = parseToRgba(color);\n if (a === 1) return color;\n const [br, bg, bb, ba] = parseToRgba(background);\n const ao = a + ba * (1 - a);\n // (xaA + xaB·(1−aA))/aR\n const ro = (a * r + ba * br * (1 - a)) / ao;\n const go = (a * g + ba * bg * (1 - a)) / ao;\n const bo = (a * b + ba * bb * (1 - a)) / ao;\n return `rgba(${ro}, ${go}, ${bo}, ${ao})`;\n}\n\n/** @category Drawing */\nexport function interpolateColors(leftColor: string, rightColor: string, val: number): string {\n // toot toot im a GPU\n if (val <= 0) return leftColor;\n if (val >= 1) return rightColor;\n\n // Parse to rgba returns straight alpha colors, for interpolation we want pre-multiplied alpha\n const left = [...parseToRgba(leftColor)];\n left[0] = left[0] * left[3];\n left[1] = left[1] * left[3];\n left[2] = left[2] * left[3];\n const right = [...parseToRgba(rightColor)];\n right[0] = right[0] * right[3];\n right[1] = right[1] * right[3];\n right[2] = right[2] * right[3];\n\n const hScaler = val;\n const nScaler = 1 - val;\n\n const a = left[3] * nScaler + right[3] * hScaler;\n // now we need to divide the alpha back out to get linear alpha back for the final result\n const r = Math.floor((left[0] * nScaler + right[0] * hScaler) / a);\n const g = Math.floor((left[1] * nScaler + right[1] * hScaler) / a);\n const b = Math.floor((left[2] * nScaler + right[2] * hScaler) / a);\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n","/* eslint-disable unicorn/no-for-loop */\nimport {\n GridSelection,\n DrawHeaderCallback,\n InnerGridCell,\n Rectangle,\n CompactSelection,\n DrawCustomCellCallback,\n GridColumnIcon,\n Item,\n CellList,\n GridMouseGroupHeaderEventArgs,\n headerCellCheckboxPrefix,\n GridCellKind,\n isInnerOnlyCell,\n BooleanIndeterminate,\n headerCellCheckedMarker,\n headerCellUnheckedMarker,\n TrailingRowType,\n ImageWindowLoader,\n GridCell,\n} from \"./data-grid-types\";\nimport groupBy from \"lodash/groupBy.js\";\nimport type { HoverValues } from \"./animation-manager\";\nimport {\n getEffectiveColumns,\n getStickyWidth,\n MappedGridColumn,\n roundedPoly,\n drawWithLastUpdate,\n isGroupEqual,\n cellIsSelected,\n cellIsInRange,\n computeBounds,\n getMiddleCenterBias,\n drawCheckbox,\n} from \"./data-grid-lib\";\nimport type { SpriteManager, SpriteVariant } from \"./data-grid-sprites\";\nimport type { Theme } from \"../common/styles\";\nimport { blend, withAlpha } from \"./color-parser\";\nimport type { DrawArgs, GetCellRendererCallback, PrepResult } from \"./cells/cell-types\";\nimport { assert, deepEqual } from \"../common/support\";\n\n// Future optimization opportunities\n// - Create a cache of a buffer used to render the full view of a partially displayed column so that when\n// scrolling horizontally you can simply blit the pre-drawn column instead of continually paying the draw\n// cost as it slides into view.\n// - Blit headers on horizontal scroll\n// - Use webworker to load images, helpful with lots of large images\n// - Sprite map currently wastes a lot of canvas texture space\n// - Retain mode for drawing cells. Instead of drawing cells as we come across them, first build a data\n// structure which contains all operations to perform, then sort them all by \"prep\" requirement, then do\n// all like operations at once.\n\ntype HoverInfo = readonly [Item, Item];\n\nexport interface Highlight {\n readonly color: string;\n readonly range: Rectangle;\n readonly style?: \"dashed\" | \"solid\" | \"no-outline\";\n}\n\ninterface GroupDetails {\n readonly name: string;\n readonly icon?: string;\n readonly overrideTheme?: Partial;\n readonly actions?: readonly {\n readonly title: string;\n readonly onClick: (e: GridMouseGroupHeaderEventArgs) => void;\n readonly icon: GridColumnIcon | string;\n }[];\n}\n\nexport type GroupDetailsCallback = (groupName: string) => GroupDetails;\nexport type GetRowThemeCallback = (row: number) => Partial | undefined;\n\nconst loadingCell: InnerGridCell = {\n kind: GridCellKind.Loading,\n allowOverlay: false,\n};\n\nexport interface BlitData {\n readonly cellXOffset: number;\n readonly cellYOffset: number;\n readonly translateX: number;\n readonly translateY: number;\n readonly mustDrawFocusOnHeader: boolean;\n readonly lastBuffer: \"a\" | \"b\" | undefined;\n}\n\ninterface DragAndDropState {\n src: number;\n dest: number;\n}\n\nexport function drawCell(\n ctx: CanvasRenderingContext2D,\n row: number,\n cell: InnerGridCell,\n col: number,\n x: number,\n y: number,\n w: number,\n h: number,\n highlighted: boolean,\n theme: Theme,\n drawCustomCell: DrawCustomCellCallback | undefined,\n imageLoader: ImageWindowLoader,\n spriteManager: SpriteManager,\n hoverAmount: number,\n hoverInfo: HoverInfo | undefined,\n hyperWrapping: boolean,\n frameTime: number,\n lastPrep: PrepResult | undefined,\n enqueue: ((item: Item) => void) | undefined,\n getCellRenderer: GetCellRendererCallback\n): PrepResult | undefined {\n let hoverX: number | undefined;\n let hoverY: number | undefined;\n if (hoverInfo !== undefined && hoverInfo[0][0] === col && hoverInfo[0][1] === row) {\n hoverX = hoverInfo[1][0];\n hoverY = hoverInfo[1][1];\n }\n let result: PrepResult | undefined = undefined;\n const args: DrawArgs = {\n ctx,\n theme,\n col,\n row,\n cell,\n rect: { x, y, width: w, height: h },\n highlighted,\n hoverAmount,\n hoverX,\n hoverY,\n imageLoader,\n spriteManager,\n hyperWrapping,\n requestAnimationFrame: () => {\n forceAnim = true;\n },\n };\n let forceAnim = false;\n const needsAnim = drawWithLastUpdate(args, cell.lastUpdated, frameTime, lastPrep, () => {\n const drawn = isInnerOnlyCell(cell) ? false : drawCustomCell?.(args as DrawArgs) === true;\n if (!drawn) {\n const r = getCellRenderer(cell);\n if (r !== undefined) {\n if (lastPrep?.renderer !== r) {\n lastPrep?.deprep?.(args);\n lastPrep = undefined;\n }\n const partialPrepResult = r.drawPrep?.(args, lastPrep);\n r.draw(args, cell);\n result = {\n deprep: partialPrepResult?.deprep,\n fillStyle: partialPrepResult?.fillStyle,\n font: partialPrepResult?.font,\n renderer: r,\n };\n }\n }\n });\n if (needsAnim || forceAnim) enqueue?.([col, row]);\n return result;\n}\n\nfunction blitLastFrame(\n ctx: CanvasRenderingContext2D,\n canvas: HTMLCanvasElement,\n last: BlitData,\n cellXOffset: number,\n cellYOffset: number,\n translateX: number,\n translateY: number,\n lastRowSticky: boolean,\n width: number,\n height: number,\n rows: number,\n totalHeaderHeight: number,\n dpr: number,\n mappedColumns: readonly MappedGridColumn[],\n effectiveCols: readonly MappedGridColumn[],\n getRowHeight: number | ((r: number) => number),\n doubleBuffer: boolean\n) {\n const drawRegions: Rectangle[] = [];\n let blittedYOnly = false;\n\n ctx.imageSmoothingEnabled = false;\n const minY = Math.min(last.cellYOffset, cellYOffset);\n const maxY = Math.max(last.cellYOffset, cellYOffset);\n let deltaY = 0;\n if (typeof getRowHeight === \"number\") {\n deltaY += (maxY - minY) * getRowHeight;\n } else {\n for (let i = minY; i < maxY; i++) {\n deltaY += getRowHeight(i);\n }\n }\n if (cellYOffset > last.cellYOffset) {\n deltaY = -deltaY;\n }\n deltaY += translateY - last.translateY;\n\n const minX = Math.min(last.cellXOffset, cellXOffset);\n const maxX = Math.max(last.cellXOffset, cellXOffset);\n let deltaX = 0;\n for (let i = minX; i < maxX; i++) {\n deltaX += mappedColumns[i].width;\n }\n if (cellXOffset > last.cellXOffset) {\n deltaX = -deltaX;\n }\n deltaX += translateX - last.translateX;\n\n let stickyWidth = getStickyWidth(effectiveCols);\n if (stickyWidth > 0) stickyWidth++;\n\n if (deltaX !== 0 && deltaY !== 0) {\n return {\n regions: [],\n yOnly: false,\n };\n }\n\n const stickyRowHeight = lastRowSticky\n ? typeof getRowHeight === \"number\"\n ? getRowHeight\n : getRowHeight(rows - 1)\n : 0;\n\n const blitWidth = width - stickyWidth - Math.abs(deltaX);\n const blitHeight = height - totalHeaderHeight - stickyRowHeight - Math.abs(deltaY) - 1;\n\n if (blitWidth > 150 && blitHeight > 150) {\n blittedYOnly = deltaX === 0;\n\n const args = {\n sx: 0,\n sy: 0,\n sw: width * dpr,\n sh: height * dpr,\n dx: 0,\n dy: 0,\n dw: width * dpr,\n dh: height * dpr,\n };\n\n // blit Y\n if (deltaY > 0) {\n // scrolling up\n args.sy = (totalHeaderHeight + 1) * dpr;\n args.sh = blitHeight * dpr;\n args.dy = (deltaY + totalHeaderHeight + 1) * dpr;\n args.dh = blitHeight * dpr;\n\n drawRegions.push({\n x: 0,\n y: totalHeaderHeight,\n width: width,\n height: deltaY + 1,\n });\n } else if (deltaY < 0) {\n // scrolling down\n args.sy = (-deltaY + totalHeaderHeight + 1) * dpr;\n args.sh = blitHeight * dpr;\n args.dy = (totalHeaderHeight + 1) * dpr;\n args.dh = blitHeight * dpr;\n\n drawRegions.push({\n x: 0,\n y: height + deltaY - stickyRowHeight,\n width: width,\n height: -deltaY + stickyRowHeight,\n });\n }\n\n // blit X\n if (deltaX > 0) {\n // pixels moving right\n args.sx = stickyWidth * dpr;\n args.sw = blitWidth * dpr;\n args.dx = (deltaX + stickyWidth) * dpr;\n args.dw = blitWidth * dpr;\n\n drawRegions.push({\n x: stickyWidth - 1,\n y: 0,\n width: deltaX + 2, // extra width to account for first col not drawing a left side border\n height: height,\n });\n } else if (deltaX < 0) {\n // pixels moving left\n args.sx = (stickyWidth - deltaX) * dpr;\n args.sw = blitWidth * dpr;\n args.dx = stickyWidth * dpr;\n args.dw = blitWidth * dpr;\n\n drawRegions.push({\n x: width + deltaX,\n y: 0,\n width: -deltaX,\n height: height,\n });\n }\n\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n if (stickyWidth > 0 && deltaX !== 0 && deltaY === 0 && doubleBuffer) {\n // When double buffering the freeze columns can be offset by a couple pixels vertically between the two\n // buffers. We don't want to redraw them so we need to make sure to copy them.\n ctx.drawImage(canvas, 0, 0, stickyWidth * dpr, height * dpr, 0, 0, stickyWidth * dpr, height * dpr);\n }\n ctx.drawImage(canvas, args.sx, args.sy, args.sw, args.sh, args.dx, args.dy, args.dw, args.dh);\n ctx.scale(dpr, dpr);\n }\n ctx.imageSmoothingEnabled = true;\n\n return {\n regions: drawRegions,\n yOnly: blittedYOnly,\n };\n}\n\nfunction blitResizedCol(\n // ctx: CanvasRenderingContext2D,\n // canvas: HTMLCanvasElement,\n last: BlitData,\n cellXOffset: number,\n cellYOffset: number,\n translateX: number,\n translateY: number,\n width: number,\n height: number,\n totalHeaderHeight: number,\n // dpr: number,\n effectiveCols: readonly MappedGridColumn[],\n resizedIndex: number\n) {\n const drawRegions: Rectangle[] = [];\n\n // ctx.imageSmoothingEnabled = false;\n\n if (\n cellXOffset !== last.cellXOffset ||\n cellYOffset !== last.cellYOffset ||\n translateX !== last.translateX ||\n translateY !== last.translateY\n ) {\n return drawRegions;\n }\n\n walkColumns(effectiveCols, cellYOffset, translateX, translateY, totalHeaderHeight, (c, drawX, _drawY, clipX) => {\n if (c.sourceIndex === resizedIndex) {\n const x = Math.max(drawX, clipX) + 1;\n drawRegions.push({\n x,\n y: 0,\n width: width - x,\n height,\n });\n return true;\n }\n });\n return drawRegions;\n}\n\n// lines are effectively drawn on the top left edge of a cell.\nfunction drawGridLines(\n ctx: CanvasRenderingContext2D,\n effectiveCols: readonly MappedGridColumn[],\n cellYOffset: number,\n translateX: number,\n translateY: number,\n width: number,\n height: number,\n drawRegions: Rectangle[] | undefined,\n spans: Rectangle[] | undefined,\n groupHeaderHeight: number,\n totalHeaderHeight: number,\n getRowHeight: (row: number) => number,\n getRowThemeOverride: GetRowThemeCallback | undefined,\n verticalBorder: (col: number) => boolean,\n trailingRowType: TrailingRowType,\n rows: number,\n theme: Theme,\n verticalOnly: boolean = false\n) {\n if (spans !== undefined) {\n ctx.beginPath();\n ctx.save();\n ctx.rect(0, 0, width, height);\n for (const span of spans) {\n ctx.rect(span.x + 1, span.y + 1, span.width - 1, span.height - 1);\n }\n ctx.clip(\"evenodd\");\n }\n const hColor = theme.horizontalBorderColor ?? theme.borderColor;\n const vColor = theme.borderColor;\n\n let minX = 0;\n let maxX = width;\n let minY = 0;\n let maxY = height;\n\n if (drawRegions !== undefined && drawRegions.length > 0) {\n minX = Number.MAX_SAFE_INTEGER;\n minY = Number.MAX_SAFE_INTEGER;\n maxX = Number.MIN_SAFE_INTEGER;\n maxY = Number.MIN_SAFE_INTEGER;\n for (const r of drawRegions) {\n minX = Math.min(minX, r.x - 1);\n maxX = Math.max(maxX, r.x + r.width + 1);\n minY = Math.min(minY, r.y - 1);\n maxY = Math.max(maxY, r.y + r.height + 1);\n }\n }\n\n const toDraw: { x1: number; y1: number; x2: number; y2: number; color: string }[] = [];\n\n ctx.beginPath();\n\n // vertical lines\n let x = 0.5;\n for (let index = 0; index < effectiveCols.length; index++) {\n const c = effectiveCols[index];\n if (c.width === 0) continue;\n x += c.width;\n const tx = c.sticky ? x : x + translateX;\n if (tx >= minX && tx <= maxX && verticalBorder(index + 1)) {\n toDraw.push({\n x1: tx,\n y1: Math.max(groupHeaderHeight, minY),\n x2: tx,\n y2: Math.min(height, maxY),\n color: vColor,\n });\n }\n }\n\n const stickyHeight = getRowHeight(rows - 1);\n const stickyRowY = height - stickyHeight + 0.5;\n const lastRowSticky = trailingRowType === \"sticky\";\n if (lastRowSticky) {\n toDraw.push({ x1: minX, y1: stickyRowY, x2: maxX, y2: stickyRowY, color: hColor });\n }\n\n if (verticalOnly !== true) {\n // horizontal lines\n let y = totalHeaderHeight + 0.5;\n let row = cellYOffset;\n const target = lastRowSticky ? height - stickyHeight : height;\n while (y + translateY <= target) {\n const ty = y + translateY;\n // This shouldn't be needed it seems like... yet it is. We're not sure why.\n if (ty >= minY && ty <= maxY - 1 && (!lastRowSticky || row !== rows - 1 || Math.abs(ty - stickyRowY) > 1)) {\n const rowTheme = getRowThemeOverride?.(row);\n toDraw.push({\n x1: minX,\n y1: ty,\n x2: maxX,\n y2: ty,\n color: rowTheme?.horizontalBorderColor ?? rowTheme?.borderColor ?? hColor,\n });\n }\n\n y += getRowHeight(row);\n row++;\n }\n }\n\n const groups = groupBy(toDraw, line => line.color);\n for (const g of Object.keys(groups)) {\n ctx.strokeStyle = g;\n for (const line of groups[g]) {\n ctx.moveTo(line.x1, line.y1);\n ctx.lineTo(line.x2, line.y2);\n }\n ctx.stroke();\n ctx.beginPath();\n }\n\n if (spans !== undefined) {\n ctx.restore();\n }\n}\n\nexport function getActionBoundsForGroup(\n box: Rectangle,\n actions: NonNullable\n): readonly Rectangle[] {\n const result: Rectangle[] = [];\n let x = box.x + box.width - 26 * actions.length;\n const y = box.y + box.height / 2 - 13;\n const height = 26;\n const width = 26;\n for (let i = 0; i < actions.length; i++) {\n result.push({\n x,\n y,\n width,\n height,\n });\n x += 26;\n }\n return result;\n}\n\nexport function pointInRect(rect: Rectangle, x: number, y: number): boolean {\n return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height;\n}\n\nfunction drawGroups(\n ctx: CanvasRenderingContext2D,\n effectiveCols: readonly MappedGridColumn[],\n width: number,\n translateX: number,\n groupHeaderHeight: number,\n hovered: HoverInfo | undefined,\n theme: Theme,\n spriteManager: SpriteManager,\n _hoverValues: HoverValues,\n verticalBorder: (col: number) => boolean,\n getGroupDetails: GroupDetailsCallback,\n damage: CellList | undefined\n) {\n const xPad = 8;\n const [hCol, hRow] = hovered?.[0] ?? [];\n\n let finalX = 0;\n walkGroups(effectiveCols, width, translateX, groupHeaderHeight, (span, groupName, x, y, w, h) => {\n if (damage !== undefined && !damage.some(d => d[1] === -2 && d[0] >= span[0] && d[0] <= span[1])) return;\n ctx.save();\n ctx.beginPath();\n ctx.rect(x, y, w, h);\n ctx.clip();\n\n const group = getGroupDetails(groupName);\n const groupTheme = group?.overrideTheme === undefined ? theme : { ...theme, ...group.overrideTheme };\n const isHovered = hRow === -2 && hCol !== undefined && hCol >= span[0] && hCol <= span[1];\n\n const fillColor = isHovered ? groupTheme.bgHeaderHovered : groupTheme.bgHeader;\n if (fillColor !== theme.bgHeader) {\n ctx.fillStyle = fillColor;\n ctx.fill();\n }\n\n ctx.fillStyle = groupTheme.textGroupHeader ?? groupTheme.textHeader;\n if (group !== undefined) {\n let drawX = x;\n if (group.icon !== undefined) {\n spriteManager.drawSprite(\n group.icon,\n \"normal\",\n ctx,\n drawX + xPad,\n (groupHeaderHeight - 20) / 2,\n 20,\n groupTheme\n );\n drawX += 26;\n }\n ctx.fillText(\n group.name,\n drawX + xPad,\n groupHeaderHeight / 2 + getMiddleCenterBias(ctx, `${theme.headerFontStyle} ${theme.fontFamily}`)\n );\n\n if (group.actions !== undefined && isHovered) {\n const actionBoxes = getActionBoundsForGroup({ x, y, width: w, height: h }, group.actions);\n\n ctx.beginPath();\n const fadeStartX = actionBoxes[0].x - 10;\n const fadeWidth = x + w - fadeStartX;\n ctx.rect(fadeStartX, 0, fadeWidth, groupHeaderHeight);\n const grad = ctx.createLinearGradient(fadeStartX, 0, fadeStartX + fadeWidth, 0);\n const trans = withAlpha(fillColor, 0);\n grad.addColorStop(0, trans);\n grad.addColorStop(10 / fadeWidth, fillColor);\n grad.addColorStop(1, fillColor);\n ctx.fillStyle = grad;\n\n ctx.fill();\n\n ctx.globalAlpha = 0.6;\n\n // eslint-disable-next-line prefer-const\n const [mouseX, mouseY] = hovered?.[1] ?? [-1, -1];\n for (let i = 0; i < group.actions.length; i++) {\n const action = group.actions[i];\n const box = actionBoxes[i];\n const actionHovered = pointInRect(box, mouseX + x, mouseY);\n if (actionHovered) {\n ctx.globalAlpha = 1;\n }\n spriteManager.drawSprite(\n action.icon,\n \"normal\",\n ctx,\n box.x + box.width / 2 - 10,\n box.y + box.height / 2 - 10,\n 20,\n groupTheme\n );\n if (actionHovered) {\n ctx.globalAlpha = 0.6;\n }\n }\n\n ctx.globalAlpha = 1;\n }\n }\n\n if (x !== 0 && verticalBorder(span[0])) {\n ctx.beginPath();\n ctx.moveTo(x + 0.5, 0);\n ctx.lineTo(x + 0.5, groupHeaderHeight);\n ctx.strokeStyle = theme.borderColor;\n ctx.lineWidth = 1;\n ctx.stroke();\n }\n\n ctx.restore();\n\n finalX = x + w;\n });\n\n ctx.beginPath();\n ctx.moveTo(finalX + 0.5, 0);\n ctx.lineTo(finalX + 0.5, groupHeaderHeight);\n\n ctx.moveTo(0, groupHeaderHeight + 0.5);\n ctx.lineTo(width, groupHeaderHeight + 0.5);\n ctx.strokeStyle = theme.borderColor;\n ctx.lineWidth = 1;\n ctx.stroke();\n}\n\nconst menuButtonSize = 30;\nexport function getHeaderMenuBounds(x: number, y: number, width: number, height: number): Rectangle {\n return {\n x: x + width - menuButtonSize, // right align\n y: Math.max(y, y + height / 2 - menuButtonSize / 2), // center vertically\n width: menuButtonSize,\n height: Math.min(menuButtonSize, height),\n };\n}\n\nexport function drawHeader(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n width: number,\n height: number,\n c: MappedGridColumn,\n selected: boolean,\n theme: Theme,\n isHovered: boolean,\n hasSelectedCell: boolean,\n hoverAmount: number,\n spriteManager: SpriteManager,\n drawHeaderCallback: DrawHeaderCallback | undefined,\n touchMode: boolean\n) {\n const isCheckboxHeader = c.title.startsWith(headerCellCheckboxPrefix);\n const menuBounds = getHeaderMenuBounds(x, y, width, height);\n if (drawHeaderCallback !== undefined) {\n let passCol = c;\n if (isCheckboxHeader) {\n passCol = {\n ...c,\n title: \"\",\n };\n }\n if (\n drawHeaderCallback({\n ctx,\n theme,\n rect: { x, y, width, height },\n column: passCol,\n columnIndex: passCol.sourceIndex,\n isSelected: selected,\n hoverAmount,\n isHovered,\n hasSelectedCell,\n spriteManager,\n menuBounds,\n })\n ) {\n return;\n }\n }\n\n if (isCheckboxHeader) {\n let checked: boolean | BooleanIndeterminate = undefined;\n if (c.title === headerCellCheckedMarker) checked = true;\n if (c.title === headerCellUnheckedMarker) checked = false;\n if (checked !== true) {\n ctx.globalAlpha = hoverAmount;\n }\n drawCheckbox(ctx, theme, checked, x, y, width, height, false, undefined, undefined);\n if (checked !== true) {\n ctx.globalAlpha = 1;\n }\n return;\n }\n\n const xPad = theme.cellHorizontalPadding;\n const fillStyle = selected ? theme.textHeaderSelected : theme.textHeader;\n\n const shouldDrawMenu = c.hasMenu === true && (isHovered || (touchMode && selected));\n\n let drawX = x + xPad;\n if (c.icon !== undefined) {\n let variant: SpriteVariant = selected ? \"selected\" : \"normal\";\n if (c.style === \"highlight\") {\n variant = selected ? \"selected\" : \"special\";\n }\n const headerSize = theme.headerIconSize;\n spriteManager.drawSprite(c.icon, variant, ctx, drawX, y + (height - headerSize) / 2, headerSize, theme);\n\n if (c.overlayIcon !== undefined) {\n spriteManager.drawSprite(\n c.overlayIcon,\n selected ? \"selected\" : \"special\",\n ctx,\n drawX + 9,\n y + ((height - 18) / 2 + 6),\n 18,\n theme\n );\n }\n\n drawX += Math.ceil(headerSize * 1.3);\n }\n\n if (shouldDrawMenu && c.hasMenu === true && width > 35) {\n const fadeWidth = 35;\n const fadeStart = width - fadeWidth;\n const fadeEnd = width - fadeWidth * 0.7;\n\n const fadeStartPercent = fadeStart / width;\n const fadeEndPercent = fadeEnd / width;\n\n const grad = ctx.createLinearGradient(x, 0, x + width, 0);\n const trans = withAlpha(fillStyle, 0);\n\n grad.addColorStop(0, fillStyle);\n grad.addColorStop(fadeStartPercent, fillStyle);\n grad.addColorStop(fadeEndPercent, trans);\n grad.addColorStop(1, trans);\n ctx.fillStyle = grad;\n } else {\n ctx.fillStyle = fillStyle;\n }\n ctx.fillText(\n c.title,\n drawX,\n y + height / 2 + getMiddleCenterBias(ctx, `${theme.headerFontStyle} ${theme.fontFamily}`)\n );\n\n if (shouldDrawMenu && c.hasMenu === true) {\n ctx.beginPath();\n const triangleX = menuBounds.x + menuBounds.width / 2 - 5.5;\n const triangleY = menuBounds.y + menuBounds.height / 2 - 3;\n roundedPoly(\n ctx,\n [\n {\n x: triangleX,\n y: triangleY,\n },\n {\n x: triangleX + 11,\n y: triangleY,\n },\n {\n x: triangleX + 5.5,\n y: triangleY + 6,\n },\n ],\n 1\n );\n\n ctx.fillStyle = fillStyle;\n ctx.fill();\n }\n}\n\nfunction drawGridHeaders(\n ctx: CanvasRenderingContext2D,\n effectiveCols: readonly MappedGridColumn[],\n enableGroups: boolean,\n hovered: HoverInfo | undefined,\n width: number,\n translateX: number,\n headerHeight: number,\n groupHeaderHeight: number,\n dragAndDropState: DragAndDropState | undefined,\n isResizing: boolean,\n selection: GridSelection,\n outerTheme: Theme,\n spriteManager: SpriteManager,\n hoverValues: HoverValues,\n verticalBorder: (col: number) => boolean,\n getGroupDetails: GroupDetailsCallback,\n damage: CellList | undefined,\n drawHeaderCallback: DrawHeaderCallback | undefined,\n touchMode: boolean\n) {\n const totalHeaderHeight = headerHeight + groupHeaderHeight;\n if (totalHeaderHeight <= 0) return;\n\n ctx.fillStyle = outerTheme.bgHeader;\n ctx.fillRect(0, 0, width, totalHeaderHeight);\n\n const [hCol, hRow] = hovered?.[0] ?? [];\n\n const font = `${outerTheme.headerFontStyle} ${outerTheme.fontFamily}`;\n // Assinging the context font too much can be expensive, it can be worth it to minimze this\n ctx.font = font;\n walkColumns(effectiveCols, 0, translateX, 0, totalHeaderHeight, (c, x, _y, clipX) => {\n if (damage !== undefined && !damage.some(d => d[1] === -1 && d[0] === c.sourceIndex)) return;\n const diff = Math.max(0, clipX - x);\n ctx.save();\n ctx.beginPath();\n ctx.rect(x + diff, groupHeaderHeight, c.width - diff, headerHeight);\n ctx.clip();\n\n const groupTheme = getGroupDetails(c.group ?? \"\").overrideTheme;\n const theme =\n c.themeOverride === undefined && groupTheme === undefined\n ? outerTheme\n : { ...outerTheme, ...groupTheme, ...c.themeOverride };\n\n if (theme.bgHeader !== outerTheme.bgHeader) {\n ctx.fillStyle = theme.bgHeader;\n ctx.fill();\n }\n\n const f = `${theme.headerFontStyle} ${theme.fontFamily}`;\n if (font !== f) {\n ctx.font = f;\n }\n const selected = selection.columns.hasIndex(c.sourceIndex);\n const noHover = dragAndDropState !== undefined || isResizing;\n const hoveredBoolean = !noHover && hRow === -1 && hCol === c.sourceIndex;\n const hover = noHover\n ? 0\n : hoverValues.find(s => s.item[0] === c.sourceIndex && s.item[1] === -1)?.hoverAmount ?? 0;\n\n const hasSelectedCell = selection?.current !== undefined && selection.current.cell[0] === c.sourceIndex;\n\n const bgFillStyle = selected ? theme.accentColor : hasSelectedCell ? theme.bgHeaderHasFocus : theme.bgHeader;\n\n const y = enableGroups ? groupHeaderHeight : 0;\n const xOffset = c.sourceIndex === 0 ? 0 : 1;\n\n if (selected) {\n ctx.fillStyle = bgFillStyle;\n ctx.fillRect(x + xOffset, y, c.width - xOffset, headerHeight);\n } else if (hasSelectedCell || hover > 0) {\n ctx.beginPath();\n ctx.rect(x + xOffset, y, c.width - xOffset, headerHeight);\n if (hasSelectedCell) {\n ctx.fillStyle = theme.bgHeaderHasFocus;\n ctx.fill();\n }\n if (hover > 0) {\n ctx.globalAlpha = hover;\n ctx.fillStyle = theme.bgHeaderHovered;\n ctx.fill();\n ctx.globalAlpha = 1;\n }\n }\n\n drawHeader(\n ctx,\n x,\n y,\n c.width,\n headerHeight,\n c,\n selected,\n theme,\n hoveredBoolean,\n hasSelectedCell,\n hover,\n spriteManager,\n drawHeaderCallback,\n touchMode\n );\n ctx.restore();\n });\n\n if (enableGroups) {\n drawGroups(\n ctx,\n effectiveCols,\n width,\n translateX,\n groupHeaderHeight,\n hovered,\n outerTheme,\n spriteManager,\n hoverValues,\n verticalBorder,\n getGroupDetails,\n damage\n );\n }\n}\n\nfunction intersectRect(x1: number, y1: number, w1: number, h1: number, x2: number, y2: number, w2: number, h2: number) {\n return x1 <= x2 + w2 && x2 <= x1 + w1 && y1 <= y2 + h2 && y2 <= y1 + h1;\n}\n\nfunction clipDamage(\n ctx: CanvasRenderingContext2D,\n effectiveColumns: readonly MappedGridColumn[],\n width: number,\n height: number,\n groupHeaderHeight: number,\n totalHeaderHeight: number,\n translateX: number,\n translateY: number,\n cellYOffset: number,\n rows: number,\n getRowHeight: (row: number) => number,\n trailingRowType: TrailingRowType,\n damage: CellList | undefined,\n includeCells: boolean\n): void {\n if (damage === undefined || damage.length === 0) return;\n\n const stickyRowHeight = trailingRowType === \"sticky\" ? getRowHeight(rows - 1) : 0;\n\n ctx.beginPath();\n\n walkGroups(effectiveColumns, width, translateX, groupHeaderHeight, (span, _group, x, y, w, h) => {\n for (let i = 0; i < damage.length; i++) {\n const d = damage[i];\n if (d[1] === -2 && d[0] >= span[0] && d[0] <= span[1]) {\n ctx.rect(x, y, w, h);\n break;\n }\n }\n });\n\n walkColumns(\n effectiveColumns,\n cellYOffset,\n translateX,\n translateY,\n totalHeaderHeight,\n (c, drawX, colDrawY, clipX, startRow) => {\n const diff = Math.max(0, clipX - drawX);\n\n const finalX = drawX + diff + 1;\n const finalWidth = c.width - diff - 1;\n for (let i = 0; i < damage.length; i++) {\n const d = damage[i];\n if (d[0] === c.sourceIndex && (d[1] === -1 || d[1] === undefined)) {\n ctx.rect(finalX, groupHeaderHeight, finalWidth, totalHeaderHeight - groupHeaderHeight);\n break;\n }\n }\n\n if (!includeCells) return;\n\n walkRowsInCol(\n startRow,\n colDrawY,\n height,\n rows,\n getRowHeight,\n trailingRowType,\n (drawY, row, rh, isSticky) => {\n let isDamaged = false;\n for (let i = 0; i < damage.length; i++) {\n const d = damage[i];\n if (d[0] === c.sourceIndex && d[1] === row) {\n isDamaged = true;\n break;\n }\n }\n if (isDamaged) {\n const top = drawY + 1;\n const bottom = isSticky ? top + rh - 1 : Math.min(top + rh - 1, height - stickyRowHeight);\n const h = bottom - top;\n\n if (h > 0) {\n ctx.rect(finalX, top, finalWidth, h);\n }\n }\n }\n );\n }\n );\n ctx.clip();\n}\n\nfunction getSpanBounds(\n span: Item,\n cellX: number,\n cellY: number,\n cellW: number,\n cellH: number,\n column: MappedGridColumn,\n allColumns: readonly MappedGridColumn[]\n): [Rectangle | undefined, Rectangle | undefined] {\n const [startCol, endCol] = span;\n\n let frozenRect: Rectangle | undefined;\n let contentRect: Rectangle | undefined;\n\n const firstNonSticky = allColumns.find(x => !x.sticky)?.sourceIndex ?? 0;\n if (endCol > firstNonSticky) {\n const renderFromCol = Math.max(startCol, firstNonSticky);\n let tempX = cellX;\n let tempW = cellW;\n for (let x = column.sourceIndex - 1; x >= renderFromCol; x--) {\n tempX -= allColumns[x].width;\n tempW += allColumns[x].width;\n }\n for (let x = column.sourceIndex + 1; x <= endCol; x++) {\n tempW += allColumns[x].width;\n }\n contentRect = {\n x: tempX,\n y: cellY,\n width: tempW,\n height: cellH,\n };\n }\n\n if (firstNonSticky > startCol) {\n const renderToCol = Math.min(endCol, firstNonSticky - 1);\n let tempX = cellX;\n let tempW = cellW;\n for (let x = column.sourceIndex - 1; x >= startCol; x--) {\n tempX -= allColumns[x].width;\n tempW += allColumns[x].width;\n }\n for (let x = column.sourceIndex + 1; x <= renderToCol; x++) {\n tempW += allColumns[x].width;\n }\n frozenRect = {\n x: tempX,\n y: cellY,\n width: tempW,\n height: cellH,\n };\n }\n\n return [frozenRect, contentRect];\n}\n\n// preppable items:\n// - font\n// - fillStyle\n\n// Column draw loop prep cycle\n// - Prep item\n// - Prep sets props\n// - Prep returns list of cared about props\n// - Draw item\n// - Loop may set some items, if present in args list, set undefined\n// - Prep next item, giving previous result\n// - If next item type is different, de-prep\n// - Result per column\nfunction drawCells(\n ctx: CanvasRenderingContext2D,\n effectiveColumns: readonly MappedGridColumn[],\n allColumns: readonly MappedGridColumn[],\n height: number,\n totalHeaderHeight: number,\n translateX: number,\n translateY: number,\n cellYOffset: number,\n rows: number,\n getRowHeight: (row: number) => number,\n getCellContent: (cell: Item) => InnerGridCell,\n getGroupDetails: GroupDetailsCallback,\n getRowThemeOverride: GetRowThemeCallback | undefined,\n disabledRows: CompactSelection,\n isFocused: boolean,\n drawFocus: boolean,\n trailingRowType: TrailingRowType,\n drawRegions: readonly Rectangle[],\n damage: CellList | undefined,\n selection: GridSelection,\n prelightCells: CellList | undefined,\n highlightRegions: readonly Highlight[] | undefined,\n drawCustomCell: DrawCustomCellCallback | undefined,\n imageLoader: ImageWindowLoader,\n spriteManager: SpriteManager,\n hoverValues: HoverValues,\n hoverInfo: HoverInfo | undefined,\n hyperWrapping: boolean,\n outerTheme: Theme,\n enqueue: (item: Item) => void,\n getCellRenderer: GetCellRendererCallback\n): Rectangle[] | undefined {\n let toDraw = damage?.length ?? Number.MAX_SAFE_INTEGER;\n const frameTime = performance.now();\n let font = `${outerTheme.baseFontStyle} ${outerTheme.fontFamily}`;\n ctx.font = font;\n let result: Rectangle[] | undefined;\n const handledSpans = new Set();\n walkColumns(\n effectiveColumns,\n cellYOffset,\n translateX,\n translateY,\n totalHeaderHeight,\n (c, drawX, colDrawStartY, clipX, startRow) => {\n const diff = Math.max(0, clipX - drawX);\n\n const colDrawX = drawX + diff;\n const colDrawY = totalHeaderHeight + 1;\n const colWidth = c.width - diff;\n const colHeight = height - totalHeaderHeight - 1;\n if (drawRegions.length > 0) {\n let found = false;\n for (let i = 0; i < drawRegions.length; i++) {\n const dr = drawRegions[i];\n if (intersectRect(colDrawX, colDrawY, colWidth, colHeight, dr.x, dr.y, dr.width, dr.height)) {\n found = true;\n break;\n }\n }\n if (!found) return;\n }\n\n const reclip = () => {\n ctx.save();\n ctx.beginPath();\n ctx.rect(colDrawX, colDrawY, colWidth, colHeight);\n ctx.clip();\n };\n\n const colSelected = selection.columns.hasIndex(c.sourceIndex);\n\n const groupTheme = getGroupDetails(c.group ?? \"\").overrideTheme;\n const colTheme =\n c.themeOverride === undefined && groupTheme === undefined\n ? outerTheme\n : { ...outerTheme, ...groupTheme, ...c.themeOverride };\n const colFont = `${colTheme.baseFontStyle} ${colTheme.fontFamily}`;\n if (colFont !== font) {\n font = colFont;\n ctx.font = colFont;\n }\n reclip();\n let prepResult: PrepResult | undefined = undefined;\n\n walkRowsInCol(\n startRow,\n colDrawStartY,\n height,\n rows,\n getRowHeight,\n trailingRowType,\n (drawY, row, rh, isSticky, isTrailingRow) => {\n if (row < 0) return;\n // if (damage !== undefined && !damage.some(d => d[0] === c.sourceIndex && d[1] === row)) {\n // return;\n // }\n // if (\n // drawRegions.length > 0 &&\n // !drawRegions.some(dr => intersectRect(drawX, drawY, c.width, rh, dr.x, dr.y, dr.width, dr.height))\n // ) {\n // return;\n // }\n\n // These are dumb versions of the above. I cannot for the life of believe that this matters but this is\n // the tightest part of the draw loop and the allocations above actually has a very measurable impact\n // on performance. For the love of all that is unholy please keep checking this again in the future.\n // As soon as this doesn't have any impact of note go back to the saner looking code. The smoke test\n // here is to scroll to the bottom of a test case first, then scroll back up while profiling and see\n // how many major GC collections you get. These allocate a lot of objects.\n if (damage !== undefined) {\n let found = false;\n for (let i = 0; i < damage.length; i++) {\n const d = damage[i];\n if (d[0] === c.sourceIndex && d[1] === row) {\n found = true;\n break;\n }\n }\n if (!found) return;\n }\n if (drawRegions.length > 0) {\n let found = false;\n for (let i = 0; i < drawRegions.length; i++) {\n const dr = drawRegions[i];\n if (intersectRect(drawX, drawY, c.width, rh, dr.x, dr.y, dr.width, dr.height)) {\n found = true;\n break;\n }\n }\n if (!found) return;\n }\n\n const rowSelected = selection.rows.hasIndex(row);\n const rowDisabled = disabledRows.hasIndex(row);\n\n const cell: InnerGridCell = row < rows ? getCellContent([c.sourceIndex, row]) : loadingCell;\n\n let cellX = drawX;\n let cellWidth = c.width;\n let drawingSpan = false;\n let skipContents = false;\n if (cell.span !== undefined) {\n const [startCol, endCol] = cell.span;\n const spanKey = `${row},${startCol},${endCol},${c.sticky}`;\n if (!handledSpans.has(spanKey)) {\n const areas = getSpanBounds(cell.span, drawX, drawY, c.width, rh, c, allColumns);\n const area = c.sticky ? areas[0] : areas[1];\n if (!c.sticky && areas[0] !== undefined) {\n skipContents = true;\n }\n if (area !== undefined) {\n cellX = area.x;\n cellWidth = area.width;\n handledSpans.add(spanKey);\n ctx.restore();\n prepResult = undefined;\n ctx.save();\n ctx.beginPath();\n const d = Math.max(0, clipX - area.x);\n ctx.rect(area.x + d, drawY, area.width - d, rh);\n if (result === undefined) {\n result = [];\n }\n result.push({\n x: area.x + d,\n y: drawY,\n width: area.width - d,\n height: rh,\n });\n ctx.clip();\n drawingSpan = true;\n }\n } else {\n toDraw--;\n return;\n }\n }\n\n const rowTheme = getRowThemeOverride?.(row);\n const trailingTheme =\n isTrailingRow && c.trailingRowOptions?.themeOverride !== undefined\n ? c.trailingRowOptions?.themeOverride\n : undefined;\n const theme =\n cell.themeOverride === undefined && rowTheme === undefined && trailingTheme === undefined\n ? colTheme\n : { ...colTheme, ...rowTheme, ...trailingTheme, ...cell.themeOverride };\n\n ctx.beginPath();\n\n const cellIndex = [c.sourceIndex, row] as const;\n const isSelected = cellIsSelected(cellIndex, cell, selection);\n let accentCount = cellIsInRange(cellIndex, cell, selection);\n const spanIsHighlighted =\n cell.span !== undefined &&\n selection.columns.some(\n index => cell.span !== undefined && index >= cell.span[0] && index <= cell.span[1]\n );\n if (isSelected && !isFocused && drawFocus) {\n accentCount = 0;\n } else if (isSelected) {\n accentCount = Math.max(accentCount, 1);\n }\n if (spanIsHighlighted) {\n accentCount++;\n }\n if (!isSelected) {\n if (rowSelected) accentCount++;\n if (colSelected && !isSticky) accentCount++;\n }\n\n const bgCell = cell.kind === GridCellKind.Protected ? theme.bgCellMedium : theme.bgCell;\n let fill: string | undefined;\n if (isSticky || bgCell !== outerTheme.bgCell) {\n fill = blend(bgCell, fill);\n }\n\n if (accentCount > 0 || rowDisabled) {\n if (rowDisabled) {\n fill = blend(theme.bgHeader, fill);\n }\n for (let i = 0; i < accentCount; i++) {\n fill = blend(theme.accentLight, fill);\n }\n } else {\n if (prelightCells?.some(pre => pre[0] === c.sourceIndex && pre[1] === row) === true) {\n fill = blend(theme.bgSearchResult, fill);\n }\n }\n\n if (highlightRegions !== undefined) {\n for (const region of highlightRegions) {\n const r = region.range;\n if (\n r.x <= c.sourceIndex &&\n c.sourceIndex < r.x + r.width &&\n r.y <= row &&\n row < r.y + r.height\n ) {\n fill = blend(region.color, fill);\n }\n }\n }\n\n if (fill !== undefined) {\n ctx.fillStyle = fill;\n if (prepResult !== undefined) {\n prepResult.fillStyle = fill;\n }\n ctx.fillRect(cellX, drawY, cellWidth, rh);\n }\n\n if (cell.style === \"faded\") {\n ctx.globalAlpha = 0.6;\n }\n\n const hoverValue = hoverValues.find(hv => hv.item[0] === c.sourceIndex && hv.item[1] === row);\n\n if (cellWidth > 10 && !skipContents) {\n const cellFont = `${theme.baseFontStyle} ${theme.fontFamily}`;\n if (cellFont !== font) {\n ctx.font = cellFont;\n font = cellFont;\n }\n prepResult = drawCell(\n ctx,\n row,\n cell,\n c.sourceIndex,\n cellX,\n drawY,\n cellWidth,\n rh,\n accentCount > 0,\n theme,\n drawCustomCell,\n imageLoader,\n spriteManager,\n hoverValue?.hoverAmount ?? 0,\n hoverInfo,\n hyperWrapping,\n frameTime,\n prepResult,\n enqueue,\n getCellRenderer\n );\n }\n\n if (cell.style === \"faded\") {\n ctx.globalAlpha = 1;\n }\n toDraw--;\n if (drawingSpan) {\n ctx.restore();\n prepResult?.deprep?.({ ctx });\n prepResult = undefined;\n reclip();\n font = colFont;\n ctx.font = colFont;\n }\n return toDraw <= 0;\n }\n );\n\n ctx.restore();\n return toDraw <= 0;\n }\n );\n return result;\n}\n\nfunction drawBlanks(\n ctx: CanvasRenderingContext2D,\n effectiveColumns: readonly MappedGridColumn[],\n allColumns: readonly MappedGridColumn[],\n width: number,\n height: number,\n totalHeaderHeight: number,\n translateX: number,\n translateY: number,\n cellYOffset: number,\n rows: number,\n getRowHeight: (row: number) => number,\n getRowTheme: GetRowThemeCallback | undefined,\n selectedRows: CompactSelection,\n disabledRows: CompactSelection,\n trailingRowType: TrailingRowType,\n drawRegions: readonly Rectangle[],\n damage: CellList | undefined,\n theme: Theme\n): void {\n if (\n damage !== undefined ||\n effectiveColumns[effectiveColumns.length - 1] !== allColumns[effectiveColumns.length - 1]\n )\n return;\n walkColumns(\n effectiveColumns,\n cellYOffset,\n translateX,\n translateY,\n totalHeaderHeight,\n (c, drawX, colDrawY, clipX, startRow) => {\n if (c !== effectiveColumns[effectiveColumns.length - 1]) return;\n drawX += c.width;\n const x = Math.max(drawX, clipX);\n if (x > width) return;\n ctx.save();\n ctx.beginPath();\n ctx.rect(x, totalHeaderHeight + 1, 10_000, height - totalHeaderHeight - 1);\n ctx.clip();\n\n walkRowsInCol(\n startRow,\n colDrawY,\n height,\n rows,\n getRowHeight,\n trailingRowType,\n (drawY, row, rh, isSticky) => {\n if (\n !isSticky &&\n drawRegions.length > 0 &&\n !drawRegions.some(dr =>\n intersectRect(drawX, drawY, 10_000, rh, dr.x, dr.y, dr.width, dr.height)\n )\n ) {\n return;\n }\n\n const rowSelected = selectedRows.hasIndex(row);\n const rowDisabled = disabledRows.hasIndex(row);\n\n ctx.beginPath();\n\n const rowTheme = getRowTheme?.(row);\n\n const blankTheme = rowTheme === undefined ? theme : { ...theme, ...rowTheme };\n\n if (blankTheme.bgCell !== theme.bgCell) {\n ctx.fillStyle = blankTheme.bgCell;\n ctx.fillRect(drawX, drawY, 10_000, rh);\n }\n if (rowDisabled) {\n ctx.fillStyle = blankTheme.bgHeader;\n ctx.fillRect(drawX, drawY, 10_000, rh);\n }\n if (rowSelected) {\n ctx.fillStyle = blankTheme.accentLight;\n ctx.fillRect(drawX, drawY, 10_000, rh);\n }\n }\n );\n\n ctx.restore();\n }\n );\n}\n\nfunction overdrawStickyBoundaries(\n ctx: CanvasRenderingContext2D,\n effectiveCols: readonly MappedGridColumn[],\n width: number,\n height: number,\n lastRowSticky: boolean,\n rows: number,\n verticalBorder: (col: number) => boolean,\n getRowHeight: (row: number) => number,\n theme: Theme\n) {\n let drawFreezeBorder = false;\n for (const c of effectiveCols) {\n if (c.sticky) continue;\n drawFreezeBorder = verticalBorder(c.sourceIndex);\n break;\n }\n const hColor = theme.horizontalBorderColor ?? theme.borderColor;\n const vColor = theme.borderColor;\n const drawX = drawFreezeBorder ? getStickyWidth(effectiveCols) : 0;\n\n if (drawX !== 0) {\n ctx.beginPath();\n ctx.moveTo(drawX + 0.5, 0);\n ctx.lineTo(drawX + 0.5, height);\n ctx.strokeStyle = blend(vColor, theme.bgCell);\n ctx.stroke();\n }\n\n if (lastRowSticky) {\n const h = getRowHeight(rows - 1);\n ctx.beginPath();\n ctx.moveTo(0, height - h + 0.5);\n ctx.lineTo(width, height - h + 0.5);\n ctx.strokeStyle = blend(hColor, theme.bgCell);\n ctx.stroke();\n }\n}\n\nfunction drawHighlightRings(\n ctx: CanvasRenderingContext2D,\n width: number,\n height: number,\n cellXOffset: number,\n cellYOffset: number,\n translateX: number,\n translateY: number,\n mappedColumns: readonly MappedGridColumn[],\n freezeColumns: number,\n headerHeight: number,\n groupHeaderHeight: number,\n rowHeight: number | ((index: number) => number),\n lastRowSticky: boolean,\n rows: number,\n allHighlightRegions: readonly Highlight[] | undefined\n): (() => void) | undefined {\n const highlightRegions = allHighlightRegions?.filter(x => x.style !== \"no-outline\");\n if (highlightRegions === undefined || highlightRegions.length === 0) return undefined;\n const drawRects = highlightRegions.map(h => {\n const r = h.range;\n const topLeftBounds = computeBounds(\n r.x,\n r.y,\n width,\n height,\n groupHeaderHeight,\n headerHeight + groupHeaderHeight,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n rows,\n freezeColumns,\n lastRowSticky,\n mappedColumns,\n rowHeight\n );\n if (r.width === 1 && r.height === 1) {\n if (r.x < freezeColumns) {\n return [{ color: h.color, style: h.style ?? \"dashed\", rect: topLeftBounds }, undefined];\n }\n return [undefined, { color: h.color, style: h.style ?? \"dashed\", rect: topLeftBounds }];\n }\n\n const bottomRightBounds = computeBounds(\n r.x + r.width - 1,\n r.y + r.height - 1,\n width,\n height,\n groupHeaderHeight,\n headerHeight + groupHeaderHeight,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n rows,\n freezeColumns,\n lastRowSticky,\n mappedColumns,\n rowHeight\n );\n if (r.x < freezeColumns && r.x + r.width >= freezeColumns) {\n const freezeSectionRightBounds = computeBounds(\n freezeColumns - 1,\n r.y + r.height - 1,\n width,\n height,\n groupHeaderHeight,\n headerHeight + groupHeaderHeight,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n rows,\n freezeColumns,\n lastRowSticky,\n mappedColumns,\n rowHeight\n );\n const unfreezeSectionleftBounds = computeBounds(\n freezeColumns,\n r.y + r.height - 1,\n width,\n height,\n groupHeaderHeight,\n headerHeight + groupHeaderHeight,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n rows,\n freezeColumns,\n lastRowSticky,\n mappedColumns,\n rowHeight\n );\n\n return [\n {\n color: h.color,\n style: h.style ?? \"dashed\",\n rect: {\n x: topLeftBounds.x,\n y: topLeftBounds.y,\n width: freezeSectionRightBounds.x + freezeSectionRightBounds.width - topLeftBounds.x,\n height: freezeSectionRightBounds.y + freezeSectionRightBounds.height - topLeftBounds.y,\n } as Rectangle,\n },\n {\n color: h.color,\n style: h.style ?? \"dashed\",\n rect: {\n x: unfreezeSectionleftBounds.x,\n y: unfreezeSectionleftBounds.y,\n width: bottomRightBounds.x + bottomRightBounds.width - unfreezeSectionleftBounds.x,\n height: bottomRightBounds.y + bottomRightBounds.height - unfreezeSectionleftBounds.y,\n } as Rectangle,\n },\n ];\n } else {\n return [\n undefined,\n {\n color: h.color,\n style: h.style ?? \"dashed\",\n rect: {\n x: topLeftBounds.x,\n y: topLeftBounds.y,\n width: bottomRightBounds.x + bottomRightBounds.width - topLeftBounds.x,\n height: bottomRightBounds.y + bottomRightBounds.height - topLeftBounds.y,\n } as Rectangle,\n },\n ];\n }\n });\n\n const stickyWidth = getStickyWidth(mappedColumns);\n\n const drawCb = () => {\n ctx.beginPath();\n ctx.save();\n let dashed = false;\n const setDashed = (dash: boolean) => {\n if (dashed === dash) return;\n ctx.setLineDash(dash ? [5, 3] : []);\n dashed = dash;\n };\n\n ctx.lineWidth = 1;\n for (const dr of drawRects) {\n const [s] = dr;\n if (\n s !== undefined &&\n intersectRect(0, 0, width, height, s.rect.x, s.rect.y, s.rect.width, s.rect.height)\n ) {\n setDashed(s.style === \"dashed\");\n ctx.strokeStyle = withAlpha(s.color, 1);\n ctx.strokeRect(s.rect.x + 1, s.rect.y + 1, s.rect.width - 2, s.rect.height - 2);\n }\n }\n let clipped = false;\n for (const dr of drawRects) {\n const [, s] = dr;\n if (\n s !== undefined &&\n intersectRect(0, 0, width, height, s.rect.x, s.rect.y, s.rect.width, s.rect.height)\n ) {\n setDashed(s.style === \"dashed\");\n if (!clipped && s.rect.x < stickyWidth) {\n ctx.rect(stickyWidth, 0, width, height);\n ctx.clip();\n clipped = true;\n }\n ctx.strokeStyle = withAlpha(s.color, 1);\n ctx.strokeRect(s.rect.x + 1, s.rect.y + 1, s.rect.width - 2, s.rect.height - 2);\n }\n }\n ctx.restore();\n };\n\n drawCb();\n return drawCb;\n}\n\nfunction drawFocusRing(\n ctx: CanvasRenderingContext2D,\n width: number,\n height: number,\n cellYOffset: number,\n translateX: number,\n translateY: number,\n effectiveCols: readonly MappedGridColumn[],\n allColumns: readonly MappedGridColumn[],\n theme: Theme,\n totalHeaderHeight: number,\n selectedCell: GridSelection,\n getRowHeight: (row: number) => number,\n getCellContent: (cell: Item) => InnerGridCell,\n trailingRowType: TrailingRowType,\n fillHandle: boolean,\n rows: number\n): (() => void) | undefined {\n if (selectedCell.current === undefined || !effectiveCols.some(c => c.sourceIndex === selectedCell.current?.cell[0]))\n return undefined;\n const [targetCol, targetRow] = selectedCell.current.cell;\n const cell = getCellContent(selectedCell.current.cell);\n const targetColSpan = cell.span ?? [targetCol, targetCol];\n\n const isStickyRow = trailingRowType === \"sticky\" && targetRow === rows - 1;\n const stickRowHeight = trailingRowType === \"sticky\" && !isStickyRow ? getRowHeight(rows - 1) - 1 : 0;\n\n let drawCb: (() => void) | undefined = undefined;\n\n walkColumns(\n effectiveCols,\n cellYOffset,\n translateX,\n translateY,\n totalHeaderHeight,\n (col, drawX, colDrawY, clipX, startRow) => {\n if (col.sticky && targetCol > col.sourceIndex) return;\n if (col.sourceIndex < targetColSpan[0] || col.sourceIndex > targetColSpan[1]) {\n return;\n }\n\n walkRowsInCol(startRow, colDrawY, height, rows, getRowHeight, trailingRowType, (drawY, row, rh) => {\n if (row !== targetRow) return;\n\n let cellX = drawX;\n let cellWidth = col.width;\n\n if (cell.span !== undefined) {\n const areas = getSpanBounds(cell.span, drawX, drawY, col.width, rh, col, allColumns);\n const area = col.sticky ? areas[0] : areas[1];\n\n if (area !== undefined) {\n cellX = area.x;\n cellWidth = area.width;\n }\n }\n\n drawCb = () => {\n if (clipX > cellX && !col.sticky) {\n ctx.beginPath();\n ctx.rect(clipX, 0, width - clipX, height);\n ctx.clip();\n }\n ctx.beginPath();\n ctx.rect(cellX + 0.5, drawY + 0.5, cellWidth, rh);\n ctx.strokeStyle = col.themeOverride?.accentColor ?? theme.accentColor;\n ctx.lineWidth = 1;\n ctx.stroke();\n\n if (fillHandle) {\n ctx.beginPath();\n ctx.rect(cellX + cellWidth - 4, drawY + rh - 4, 4, 4);\n ctx.fillStyle = col.themeOverride?.accentColor ?? theme.accentColor;\n ctx.fill();\n }\n };\n return true;\n });\n\n return true;\n }\n );\n\n if (drawCb === undefined) return undefined;\n\n const result = () => {\n ctx.save();\n ctx.beginPath();\n ctx.rect(0, totalHeaderHeight, width, height - totalHeaderHeight - stickRowHeight);\n ctx.clip();\n\n drawCb?.();\n\n ctx.restore();\n };\n\n result();\n\n return result;\n}\n\nfunction getLastRow(\n effectiveColumns: readonly MappedGridColumn[],\n height: number,\n totalHeaderHeight: number,\n translateX: number,\n translateY: number,\n cellYOffset: number,\n rows: number,\n getRowHeight: (row: number) => number,\n trailingRowType: TrailingRowType\n): number {\n let result = 0;\n walkColumns(\n effectiveColumns,\n cellYOffset,\n translateX,\n translateY,\n totalHeaderHeight,\n (_c, __drawX, colDrawY, _clipX, startRow) => {\n walkRowsInCol(\n startRow,\n colDrawY,\n height,\n rows,\n getRowHeight,\n trailingRowType,\n (_drawY, row, _rh, isSticky) => {\n if (!isSticky) {\n result = Math.max(row, result);\n }\n }\n );\n\n return true;\n }\n );\n return result;\n}\n\nexport interface DrawGridArg {\n readonly canvas: HTMLCanvasElement;\n readonly headerCanvas: HTMLCanvasElement;\n readonly bufferA: HTMLCanvasElement;\n readonly bufferB: HTMLCanvasElement;\n readonly width: number;\n readonly height: number;\n readonly cellXOffset: number;\n readonly cellYOffset: number;\n readonly translateX: number;\n readonly translateY: number;\n readonly mappedColumns: readonly MappedGridColumn[];\n readonly enableGroups: boolean;\n readonly freezeColumns: number;\n readonly dragAndDropState: DragAndDropState | undefined;\n readonly theme: Theme;\n readonly headerHeight: number;\n readonly groupHeaderHeight: number;\n readonly disabledRows: CompactSelection;\n readonly rowHeight: number | ((index: number) => number);\n readonly verticalBorder: (col: number) => boolean;\n readonly isResizing: boolean;\n readonly isFocused: boolean;\n readonly drawFocus: boolean;\n readonly selection: GridSelection;\n readonly fillHandle: boolean;\n readonly lastRowSticky: TrailingRowType;\n readonly hyperWrapping: boolean;\n readonly rows: number;\n readonly getCellContent: (cell: Item) => InnerGridCell;\n readonly getGroupDetails: GroupDetailsCallback;\n readonly getRowThemeOverride: GetRowThemeCallback | undefined;\n readonly drawCustomCell: DrawCustomCellCallback | undefined;\n readonly drawHeaderCallback: DrawHeaderCallback | undefined;\n readonly prelightCells: CellList | undefined;\n readonly highlightRegions: readonly Highlight[] | undefined;\n readonly imageLoader: ImageWindowLoader;\n readonly lastBlitData: React.MutableRefObject;\n readonly damage: CellList | undefined;\n readonly hoverValues: HoverValues;\n readonly hoverInfo: HoverInfo | undefined;\n readonly spriteManager: SpriteManager;\n readonly scrolling: boolean;\n readonly touchMode: boolean;\n readonly renderStrategy: \"single-buffer\" | \"double-buffer\" | \"direct\";\n readonly enqueue: (item: Item) => void;\n readonly getCellRenderer: GetCellRendererCallback;\n}\n\nfunction computeCanBlit(current: DrawGridArg, last: DrawGridArg | undefined): boolean | number {\n if (last === undefined) return false;\n if (\n current.width !== last.width ||\n current.height !== last.height ||\n current.theme !== last.theme ||\n current.headerHeight !== last.headerHeight ||\n current.rowHeight !== last.rowHeight ||\n current.rows !== last.rows ||\n current.getRowThemeOverride !== last.getRowThemeOverride ||\n current.isFocused !== last.isFocused ||\n current.isResizing !== last.isResizing ||\n current.verticalBorder !== last.verticalBorder ||\n current.getCellContent !== last.getCellContent ||\n current.highlightRegions !== last.highlightRegions ||\n current.selection !== last.selection ||\n current.dragAndDropState !== last.dragAndDropState ||\n current.prelightCells !== last.prelightCells ||\n current.touchMode !== last.touchMode ||\n current.scrolling !== last.scrolling\n ) {\n return false;\n }\n if (current.mappedColumns !== last.mappedColumns) {\n if (current.mappedColumns.length > 100 || current.mappedColumns.length !== last.mappedColumns.length) {\n // The array is big, let's just redraw the damned thing rather than check these all. Or the number of cols\n // changed in which case I dont want to figure out what happened.\n return false;\n }\n // We want to know if only one column has resized. If this is the case we can do a special left/right sliding\n // blit. Or just not redraw shit on the left.\n let resized: number | undefined;\n for (let i = 0; i < current.mappedColumns.length; i++) {\n const curCol = current.mappedColumns[i];\n const lastCol = last.mappedColumns[i];\n\n if (deepEqual(curCol, lastCol)) continue;\n\n // two columns changed, abort\n if (resized !== undefined) return false;\n\n if (curCol.width === lastCol.width) return false;\n\n const { width, ...curRest } = curCol;\n const { width: lastWidth, ...lastRest } = lastCol;\n\n // more than width changed, abort\n if (!deepEqual(curRest, lastRest)) return false;\n resized = i;\n }\n if (resized === undefined) {\n // we never found a changed column, cool, we can blit\n return true;\n }\n return resized;\n }\n return true;\n}\n\nexport function drawGrid(arg: DrawGridArg, lastArg: DrawGridArg | undefined) {\n const {\n canvas,\n headerCanvas,\n width,\n height,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n mappedColumns,\n enableGroups,\n freezeColumns,\n dragAndDropState,\n theme,\n drawFocus,\n headerHeight,\n groupHeaderHeight,\n disabledRows,\n rowHeight,\n verticalBorder,\n isResizing,\n selection,\n fillHandle,\n lastRowSticky: trailingRowType,\n rows,\n getCellContent,\n getGroupDetails,\n getRowThemeOverride,\n isFocused,\n drawCustomCell,\n drawHeaderCallback,\n prelightCells,\n highlightRegions,\n imageLoader,\n lastBlitData,\n hoverValues,\n hyperWrapping,\n hoverInfo,\n spriteManager,\n scrolling,\n touchMode,\n enqueue,\n getCellRenderer,\n renderStrategy,\n bufferA,\n bufferB,\n } = arg;\n let { damage } = arg;\n if (width === 0 || height === 0) return;\n const doubleBuffer = renderStrategy === \"double-buffer\";\n const dpr = scrolling ? 1 : Math.ceil(window.devicePixelRatio ?? 1);\n\n const canBlit = renderStrategy !== \"direct\" && computeCanBlit(arg, lastArg);\n\n if (canvas.width !== width * dpr || canvas.height !== height * dpr) {\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n\n canvas.style.width = width + \"px\";\n canvas.style.height = height + \"px\";\n }\n\n const overlayCanvas = headerCanvas;\n const totalHeaderHeight = enableGroups ? groupHeaderHeight + headerHeight : headerHeight;\n\n const overlayHeight = totalHeaderHeight + 1; // border\n if (overlayCanvas.width !== width * dpr || overlayCanvas.height !== overlayHeight * dpr) {\n overlayCanvas.width = width * dpr;\n overlayCanvas.height = overlayHeight * dpr;\n\n overlayCanvas.style.width = width + \"px\";\n overlayCanvas.style.height = overlayHeight + \"px\";\n }\n\n if (doubleBuffer && (bufferA.width !== width * dpr || bufferA.height !== height * dpr)) {\n bufferA.width = width * dpr;\n bufferA.height = height * dpr;\n }\n\n if (doubleBuffer && (bufferB.width !== width * dpr || bufferB.height !== height * dpr)) {\n bufferB.width = width * dpr;\n bufferB.height = height * dpr;\n }\n\n const last = lastBlitData.current;\n if (\n canBlit === true &&\n cellXOffset === last?.cellXOffset &&\n cellYOffset === last?.cellYOffset &&\n translateX === last?.translateX &&\n translateY === last?.translateY\n )\n return;\n\n let mainCtx: CanvasRenderingContext2D | null = null;\n if (doubleBuffer) {\n mainCtx = canvas.getContext(\"2d\", {\n alpha: false,\n });\n }\n const overlayCtx = overlayCanvas.getContext(\"2d\", {\n alpha: false,\n });\n let targetBuffer: HTMLCanvasElement;\n if (!doubleBuffer) {\n targetBuffer = canvas;\n } else if (damage !== undefined) {\n targetBuffer = last?.lastBuffer === \"b\" ? bufferB : bufferA;\n } else {\n targetBuffer = last?.lastBuffer === \"b\" ? bufferA : bufferB;\n }\n const targetCtx = targetBuffer.getContext(\"2d\", {\n alpha: false,\n });\n const blitSource = doubleBuffer ? (targetBuffer === bufferA ? bufferB : bufferA) : canvas;\n\n if (overlayCtx === null || targetCtx === null) return;\n\n const getRowHeight = typeof rowHeight === \"number\" ? () => rowHeight : rowHeight;\n\n overlayCtx.save();\n overlayCtx.beginPath();\n targetCtx.save();\n targetCtx.beginPath();\n\n overlayCtx.textBaseline = \"middle\";\n targetCtx.textBaseline = \"middle\";\n\n if (dpr !== 1) {\n overlayCtx.scale(dpr, dpr);\n targetCtx.scale(dpr, dpr);\n }\n\n const effectiveCols = getEffectiveColumns(mappedColumns, cellXOffset, width, dragAndDropState, translateX);\n\n let drawRegions: Rectangle[] = [];\n\n const mustDrawFocusOnHeader = drawFocus && selection.current?.cell[1] === cellYOffset && translateY === 0;\n const drawHeaderTexture = () => {\n drawGridHeaders(\n overlayCtx,\n effectiveCols,\n enableGroups,\n hoverInfo,\n width,\n translateX,\n headerHeight,\n groupHeaderHeight,\n dragAndDropState,\n isResizing,\n selection,\n theme,\n spriteManager,\n hoverValues,\n verticalBorder,\n getGroupDetails,\n damage,\n drawHeaderCallback,\n touchMode\n );\n\n drawGridLines(\n overlayCtx,\n effectiveCols,\n cellYOffset,\n translateX,\n translateY,\n width,\n height,\n undefined,\n undefined,\n groupHeaderHeight,\n totalHeaderHeight,\n getRowHeight,\n getRowThemeOverride,\n verticalBorder,\n trailingRowType,\n rows,\n theme,\n true\n );\n\n overlayCtx.beginPath();\n overlayCtx.moveTo(0, overlayHeight - 0.5);\n overlayCtx.lineTo(width, overlayHeight - 0.5);\n overlayCtx.strokeStyle = blend(\n theme.headerBottomBorderColor ?? theme.horizontalBorderColor ?? theme.borderColor,\n theme.bgHeader\n );\n overlayCtx.stroke();\n\n if (mustDrawFocusOnHeader) {\n drawFocusRing(\n overlayCtx,\n width,\n height,\n cellYOffset,\n translateX,\n translateY,\n effectiveCols,\n mappedColumns,\n theme,\n totalHeaderHeight,\n selection,\n getRowHeight,\n getCellContent,\n trailingRowType,\n fillHandle,\n rows\n );\n }\n };\n\n // handle damage updates by directly drawing to the target to avoid large blits\n if (damage !== undefined) {\n let doHeaders = false;\n damage = damage.filter(x => {\n doHeaders = doHeaders || x[1] < 0;\n return (\n x[1] < 0 ||\n intersectRect(cellXOffset, cellYOffset, effectiveCols.length, 300, x[0], x[1], 1, 1) ||\n intersectRect(0, cellYOffset, freezeColumns, 300, x[0], x[1], 1, 1) ||\n (trailingRowType && intersectRect(cellXOffset, rows - 1, effectiveCols.length, 1, x[0], x[1], 1, 1))\n );\n });\n\n if (damage.length > 0) {\n clipDamage(\n targetCtx,\n effectiveCols,\n width,\n height,\n groupHeaderHeight,\n totalHeaderHeight,\n translateX,\n translateY,\n cellYOffset,\n rows,\n getRowHeight,\n trailingRowType,\n damage,\n true\n );\n\n targetCtx.fillStyle = theme.bgCell;\n targetCtx.fillRect(0, totalHeaderHeight + 1, width, height - totalHeaderHeight - 1);\n\n drawCells(\n targetCtx,\n effectiveCols,\n mappedColumns,\n height,\n totalHeaderHeight,\n translateX,\n translateY,\n cellYOffset,\n rows,\n getRowHeight,\n getCellContent,\n getGroupDetails,\n getRowThemeOverride,\n disabledRows,\n isFocused,\n drawFocus,\n trailingRowType,\n drawRegions,\n damage,\n selection,\n prelightCells,\n highlightRegions,\n drawCustomCell,\n imageLoader,\n spriteManager,\n hoverValues,\n hoverInfo,\n hyperWrapping,\n theme,\n enqueue,\n getCellRenderer\n );\n\n if (\n fillHandle &&\n drawFocus &&\n selection.current !== undefined &&\n damage.some(x => x[0] === selection.current?.cell[0] && x[1] === selection.current?.cell[1])\n ) {\n drawFocusRing(\n targetCtx,\n width,\n height,\n cellYOffset,\n translateX,\n translateY,\n effectiveCols,\n mappedColumns,\n theme,\n totalHeaderHeight,\n selection,\n getRowHeight,\n getCellContent,\n trailingRowType,\n fillHandle,\n rows\n );\n }\n }\n\n if (doHeaders) {\n clipDamage(\n overlayCtx,\n effectiveCols,\n width,\n totalHeaderHeight,\n groupHeaderHeight,\n totalHeaderHeight,\n translateX,\n translateY,\n cellYOffset,\n rows,\n getRowHeight,\n trailingRowType,\n damage,\n false\n );\n drawHeaderTexture();\n }\n targetCtx.restore();\n overlayCtx.restore();\n\n if (mainCtx !== null) {\n mainCtx.fillStyle = theme.bgCell;\n mainCtx.fillRect(0, 0, width, height);\n mainCtx.drawImage(targetCtx.canvas, 0, 0);\n }\n\n return;\n }\n\n if (\n canBlit !== true ||\n cellXOffset !== last?.cellXOffset ||\n translateX !== last?.translateX ||\n mustDrawFocusOnHeader !== last?.mustDrawFocusOnHeader\n ) {\n drawHeaderTexture();\n }\n\n if (canBlit === true) {\n assert(blitSource !== undefined && last !== undefined);\n const { regions } = blitLastFrame(\n targetCtx,\n blitSource,\n last,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n trailingRowType === \"sticky\",\n width,\n height,\n rows,\n totalHeaderHeight,\n dpr,\n mappedColumns,\n effectiveCols,\n rowHeight,\n doubleBuffer\n );\n drawRegions = regions;\n } else if (canBlit !== false) {\n assert(last !== undefined);\n const resizedCol = canBlit;\n drawRegions = blitResizedCol(\n last,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n width,\n height,\n totalHeaderHeight,\n effectiveCols,\n resizedCol\n );\n }\n\n overdrawStickyBoundaries(\n targetCtx,\n effectiveCols,\n width,\n height,\n trailingRowType === \"sticky\",\n rows,\n verticalBorder,\n getRowHeight,\n theme\n );\n\n // the overdraw may have nuked out our focus ring right edge.\n const focusRedraw = drawFocus\n ? drawFocusRing(\n targetCtx,\n width,\n height,\n cellYOffset,\n translateX,\n translateY,\n effectiveCols,\n mappedColumns,\n theme,\n totalHeaderHeight,\n selection,\n getRowHeight,\n getCellContent,\n trailingRowType,\n fillHandle,\n rows\n )\n : undefined;\n\n const highlightRedraw = drawHighlightRings(\n targetCtx,\n width,\n height,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n mappedColumns,\n freezeColumns,\n headerHeight,\n groupHeaderHeight,\n rowHeight,\n trailingRowType === \"sticky\",\n rows,\n highlightRegions\n );\n\n targetCtx.fillStyle = theme.bgCell;\n if (drawRegions.length > 0) {\n targetCtx.beginPath();\n for (const r of drawRegions) {\n targetCtx.rect(r.x, r.y, r.width, r.height);\n }\n targetCtx.clip();\n targetCtx.fill();\n targetCtx.beginPath();\n } else {\n targetCtx.fillRect(0, 0, width, height);\n }\n\n const spans = drawCells(\n targetCtx,\n effectiveCols,\n mappedColumns,\n height,\n totalHeaderHeight,\n translateX,\n translateY,\n cellYOffset,\n rows,\n getRowHeight,\n getCellContent,\n getGroupDetails,\n getRowThemeOverride,\n disabledRows,\n isFocused,\n drawFocus,\n trailingRowType,\n drawRegions,\n damage,\n selection,\n prelightCells,\n highlightRegions,\n drawCustomCell,\n imageLoader,\n spriteManager,\n hoverValues,\n hoverInfo,\n hyperWrapping,\n theme,\n enqueue,\n getCellRenderer\n );\n\n drawBlanks(\n targetCtx,\n effectiveCols,\n mappedColumns,\n width,\n height,\n totalHeaderHeight,\n translateX,\n translateY,\n cellYOffset,\n rows,\n getRowHeight,\n getRowThemeOverride,\n selection.rows,\n disabledRows,\n trailingRowType,\n drawRegions,\n damage,\n theme\n );\n\n drawGridLines(\n targetCtx,\n effectiveCols,\n cellYOffset,\n translateX,\n translateY,\n width,\n height,\n drawRegions,\n spans,\n groupHeaderHeight,\n totalHeaderHeight,\n getRowHeight,\n getRowThemeOverride,\n verticalBorder,\n trailingRowType,\n rows,\n theme\n );\n\n focusRedraw?.();\n highlightRedraw?.();\n\n if (mainCtx !== null) {\n mainCtx.fillStyle = theme.bgCell;\n mainCtx.fillRect(0, 0, width, height);\n mainCtx.drawImage(targetCtx.canvas, 0, 0);\n }\n\n const lastRowDrawn = getLastRow(\n effectiveCols,\n height,\n totalHeaderHeight,\n translateX,\n translateY,\n cellYOffset,\n rows,\n getRowHeight,\n trailingRowType\n );\n\n imageLoader?.setWindow(\n {\n x: cellXOffset,\n y: cellYOffset,\n width: effectiveCols.length,\n height: lastRowDrawn - cellYOffset,\n },\n freezeColumns\n );\n\n lastBlitData.current = {\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n mustDrawFocusOnHeader,\n lastBuffer: doubleBuffer ? (targetBuffer === bufferA ? \"a\" : \"b\") : undefined,\n };\n\n targetCtx.restore();\n overlayCtx.restore();\n}\n\ntype WalkRowsCallback = (\n drawY: number,\n row: number,\n rowHeight: number,\n isSticky: boolean,\n isTrailingRow: boolean\n) => boolean | void;\n\nfunction walkRowsInCol(\n startRow: number,\n drawY: number,\n height: number,\n rows: number,\n getRowHeight: (row: number) => number,\n trailingRowType: TrailingRowType,\n cb: WalkRowsCallback\n): void {\n let y = drawY;\n let row = startRow;\n let doSticky = trailingRowType === \"sticky\";\n while (y < height || doSticky) {\n const doingSticky = doSticky && y >= height;\n if (doingSticky) {\n doSticky = false;\n row = rows - 1;\n }\n const rh = getRowHeight(row);\n\n if (doingSticky) {\n y = height - rh;\n }\n\n const isMovedStickyRow = doSticky && row === rows - 1;\n\n if (!isMovedStickyRow && cb(y, row, rh, doingSticky, trailingRowType !== \"none\" && row === rows - 1) === true) {\n break;\n }\n\n if (doingSticky) {\n break;\n }\n y += rh;\n row++;\n }\n}\n\ntype WalkColsCallback = (\n col: MappedGridColumn,\n drawX: number,\n drawY: number,\n clipX: number,\n startRow: number\n) => boolean | void;\n\nfunction walkColumns(\n effectiveCols: readonly MappedGridColumn[],\n cellYOffset: number,\n translateX: number,\n translateY: number,\n totalHeaderHeight: number,\n cb: WalkColsCallback\n): void {\n let x = 0;\n let clipX = 0; // this tracks the total width of sticky cols\n const drawY = totalHeaderHeight + translateY;\n for (const c of effectiveCols) {\n const drawX = c.sticky ? clipX : x + translateX;\n if (cb(c, drawX, drawY, clipX, cellYOffset) === true) {\n break;\n }\n\n x += c.width;\n clipX += c.sticky ? c.width : 0;\n }\n}\n\ntype WalkGroupsCallback = (colSpan: Item, group: string, x: number, y: number, width: number, height: number) => void;\nfunction walkGroups(\n effectiveCols: readonly MappedGridColumn[],\n width: number,\n translateX: number,\n groupHeaderHeight: number,\n cb: WalkGroupsCallback\n): void {\n let x = 0;\n let clipX = 0;\n for (let index = 0; index < effectiveCols.length; index++) {\n const startCol = effectiveCols[index];\n\n let end = index + 1;\n let boxWidth = startCol.width;\n if (startCol.sticky) {\n clipX += boxWidth;\n }\n while (\n end < effectiveCols.length &&\n isGroupEqual(effectiveCols[end].group, startCol.group) &&\n effectiveCols[end].sticky === effectiveCols[index].sticky\n ) {\n const endCol = effectiveCols[end];\n boxWidth += endCol.width;\n end++;\n index++;\n if (endCol.sticky) {\n clipX += endCol.width;\n }\n }\n\n const t = startCol.sticky ? 0 : translateX;\n const localX = x + t;\n const delta = startCol.sticky ? 0 : Math.max(0, clipX - localX);\n const w = Math.min(boxWidth - delta, width - (localX + delta));\n cb(\n [startCol.sourceIndex, effectiveCols[end - 1].sourceIndex],\n startCol.group ?? \"\",\n localX + delta,\n 0,\n w,\n groupHeaderHeight\n );\n\n x += boxWidth;\n }\n}\n","import clamp from \"lodash/clamp.js\";\nimport type { Item } from \"./data-grid-types\";\n\ntype StateItem = { item: Item; hoverAmount: number };\nexport type HoverValues = readonly Readonly[];\nexport type StepCallback = (values: HoverValues) => void;\n\nconst hoverTime = 80;\n\nfunction easeOutCubic(x: number) {\n const x1 = x - 1;\n return x1 * x1 * x1 + 1;\n}\n\nexport class AnimationManager {\n constructor(private callback: StepCallback) {}\n\n private currentHoveredItem: StateItem | undefined = undefined;\n private leavingItems: StateItem[] = [];\n\n private lastAnimationTime: number | undefined;\n\n private areSameItems = (left: Item | undefined, right: Item | undefined) => {\n return left?.[0] === right?.[0] && left?.[1] === right?.[1];\n };\n\n private addToLeavingItems = (item: StateItem) => {\n const isAlreadyLeaving = this.leavingItems.some(i => this.areSameItems(i.item, item.item));\n\n if (isAlreadyLeaving) {\n return;\n }\n\n this.leavingItems.push(item);\n };\n\n /**\n * @returns the hover amount of the item, if it was leaving (0 if not).\n */\n private removeFromLeavingItems = (item: Item): number => {\n const leavingItem = this.leavingItems.find(e => this.areSameItems(e.item, item));\n\n this.leavingItems = this.leavingItems.filter(i => i !== leavingItem);\n\n return leavingItem?.hoverAmount ?? 0;\n };\n\n private cleanUpLeavingElements = () => {\n this.leavingItems = this.leavingItems.filter(i => i.hoverAmount > 0);\n };\n\n private shouldStep = () => {\n const hasLeavingItems = this.leavingItems.length > 0;\n const currentHoveredIsAnimating =\n this.currentHoveredItem !== undefined && this.currentHoveredItem.hoverAmount < 1;\n\n return hasLeavingItems || currentHoveredIsAnimating;\n };\n\n private getAnimatingItems = (): StateItem[] => {\n if (this.currentHoveredItem !== undefined) {\n return [...this.leavingItems, this.currentHoveredItem];\n }\n return this.leavingItems.map(x => ({ ...x, hoverAmount: easeOutCubic(x.hoverAmount) }));\n };\n\n private step = (timestamp: number): void => {\n if (this.lastAnimationTime === undefined) {\n this.lastAnimationTime = timestamp;\n } else {\n const step = timestamp - this.lastAnimationTime;\n const delta = step / hoverTime;\n\n for (const item of this.leavingItems) {\n item.hoverAmount = clamp(item.hoverAmount - delta, 0, 1);\n }\n\n if (this.currentHoveredItem !== undefined) {\n this.currentHoveredItem.hoverAmount = clamp(this.currentHoveredItem.hoverAmount + delta, 0, 1);\n }\n\n const animating = this.getAnimatingItems();\n this.callback(animating);\n\n this.cleanUpLeavingElements();\n }\n\n if (this.shouldStep()) {\n this.lastAnimationTime = timestamp;\n window.requestAnimationFrame(this.step);\n } else {\n this.lastAnimationTime = undefined;\n }\n };\n\n public setHovered = (item: Item | undefined): void => {\n if (this.areSameItems(this.currentHoveredItem?.item, item)) {\n return;\n }\n\n if (this.currentHoveredItem !== undefined) {\n this.addToLeavingItems(this.currentHoveredItem);\n }\n\n if (item !== undefined) {\n const hoverAmount = this.removeFromLeavingItems(item);\n this.currentHoveredItem = {\n item,\n hoverAmount,\n };\n } else {\n this.currentHoveredItem = undefined;\n }\n\n if (this.lastAnimationTime === undefined) {\n window.requestAnimationFrame(this.step);\n }\n };\n}\n","class Lazy {\n private fn: () => T;\n private val: T | undefined;\n constructor(fn: () => T) {\n this.fn = fn;\n }\n\n public get value() {\n return this.val ?? (this.val = this.fn());\n }\n}\n\nfunction lazy(fn: () => T) {\n return new Lazy(fn);\n}\n\n// next.js apps don't have window available at import time, so this will fail if its not lazy.\nexport const browserIsFirefox = lazy(() => window.navigator.userAgent.includes(\"Firefox\"));\nexport const browserIsSafari = lazy(\n () =>\n window.navigator.userAgent.includes(\"Mac OS\") &&\n window.navigator.userAgent.includes(\"Safari\") &&\n !window.navigator.userAgent.includes(\"Chrome\")\n);\nexport const browserIsOSX = lazy(() => window.navigator.platform.toLowerCase().startsWith(\"mac\"));\n","import * as React from \"react\";\nimport type { Item } from \"./data-grid-types\";\n\nfunction hasItem(arr: readonly Item[], item: Item) {\n for (const element of arr) {\n if (element[0] === item[0] && element[1] === item[1]) return true;\n }\n return false;\n}\n\nexport function useAnimationQueue(draw: (items: readonly Item[]) => void) {\n const queue = React.useRef([]);\n const seq = React.useRef(0);\n const drawRef = React.useRef(draw);\n drawRef.current = draw;\n\n const loop = React.useCallback(() => {\n const requeue = () => window.requestAnimationFrame(fn);\n\n const fn = () => {\n const toDraw = queue.current;\n queue.current = [];\n drawRef.current(toDraw);\n if (queue.current.length > 0) {\n seq.current++;\n } else {\n seq.current = 0;\n }\n };\n\n window.requestAnimationFrame(seq.current > 600 ? requeue : fn);\n }, []);\n\n return React.useCallback(\n (item: Item) => {\n if (hasItem(queue.current, item)) return;\n if (queue.current.length === 0) {\n loop();\n }\n queue.current.push(item);\n },\n [loop]\n );\n}\n","import * as React from \"react\";\nimport type { Theme } from \"../common/styles\";\nimport ImageWindowLoaderImpl from \"../common/image-window-loader\";\nimport {\n computeBounds,\n getColumnIndexForX,\n getEffectiveColumns,\n getRowIndexForY,\n getStickyWidth,\n useMappedColumns,\n} from \"./data-grid-lib\";\nimport {\n GridCellKind,\n Rectangle,\n GridSelection,\n GridMouseEventArgs,\n GridDragEventArgs,\n GridKeyEventArgs,\n InnerGridCell,\n InnerGridCellKind,\n CompactSelection,\n DrawCustomCellCallback,\n CellList,\n Item,\n DrawHeaderCallback,\n isReadWriteCell,\n isInnerOnlyCell,\n booleanCellIsEditable,\n InnerGridColumn,\n TrailingRowType,\n groupHeaderKind,\n headerKind,\n outOfBoundsKind,\n ImageWindowLoader,\n} from \"./data-grid-types\";\nimport { SpriteManager, SpriteMap } from \"./data-grid-sprites\";\nimport { useDebouncedMemo, useEventListener } from \"../common/utils\";\nimport clamp from \"lodash/clamp.js\";\nimport makeRange from \"lodash/range.js\";\nimport {\n BlitData,\n drawCell,\n drawGrid,\n DrawGridArg,\n drawHeader,\n getActionBoundsForGroup,\n getHeaderMenuBounds,\n GetRowThemeCallback,\n GroupDetailsCallback,\n Highlight,\n pointInRect,\n} from \"./data-grid-render\";\nimport { AnimationManager, StepCallback } from \"./animation-manager\";\nimport { browserIsFirefox, browserIsSafari } from \"../common/browser-detect\";\nimport { useAnimationQueue } from \"./use-animation-queue\";\nimport { assert } from \"../common/support\";\nimport type { CellRenderer, GetCellRendererCallback } from \"./cells/cell-types\";\n\nexport interface DataGridProps {\n readonly width: number;\n readonly height: number;\n\n readonly cellXOffset: number;\n readonly cellYOffset: number;\n\n readonly translateX: number | undefined;\n readonly translateY: number | undefined;\n\n readonly accessibilityHeight: number;\n\n readonly freezeColumns: number;\n readonly trailingRowType: TrailingRowType;\n readonly firstColAccessible: boolean;\n\n /**\n * Enables or disables the overlay shadow when scrolling horizontally\n * @group Style\n */\n readonly fixedShadowX: boolean | undefined;\n /**\n * Enables or disables the overlay shadow when scrolling vertical\n * @group Style\n */\n readonly fixedShadowY: boolean | undefined;\n\n readonly allowResize: boolean | undefined;\n readonly isResizing: boolean;\n readonly isDragging: boolean;\n readonly isFilling: boolean;\n readonly isFocused: boolean;\n\n readonly columns: readonly InnerGridColumn[];\n /**\n * The number of rows in the grid.\n * @group Data\n */\n readonly rows: number;\n\n readonly headerHeight: number;\n readonly groupHeaderHeight: number;\n readonly enableGroups: boolean;\n readonly rowHeight: number | ((index: number) => number);\n\n readonly canvasRef: React.MutableRefObject | undefined;\n\n readonly eventTargetRef: React.MutableRefObject | undefined;\n\n readonly getCellContent: (cell: Item) => InnerGridCell;\n /**\n * Provides additional details about groups to extend group functionality.\n * @group Data\n */\n readonly getGroupDetails: GroupDetailsCallback | undefined;\n /**\n * Provides per row theme overrides.\n * @group Style\n */\n readonly getRowThemeOverride: GetRowThemeCallback | undefined;\n /**\n * Emitted when a header menu disclosure indicator is clicked.\n * @group Events\n */\n readonly onHeaderMenuClick: ((col: number, screenPosition: Rectangle) => void) | undefined;\n\n readonly selection: GridSelection;\n readonly prelightCells: readonly Item[] | undefined;\n /**\n * Highlight regions provide hints to users about relations between cells and selections.\n * @group Selection\n */\n readonly highlightRegions: readonly Highlight[] | undefined;\n\n /**\n * Enabled/disables the fill handle.\n * @defaultValue false\n * @group Editing\n */\n readonly fillHandle: boolean | undefined;\n\n readonly disabledRows: CompactSelection | undefined;\n /**\n * Allows passing a custom image window loader.\n * @group Advanced\n */\n readonly imageWindowLoader: ImageWindowLoader | undefined;\n\n /**\n * Emitted when an item is hovered.\n * @group Events\n */\n readonly onItemHovered: (args: GridMouseEventArgs) => void;\n readonly onMouseMove: (args: GridMouseEventArgs) => void;\n readonly onMouseDown: (args: GridMouseEventArgs) => void;\n readonly onMouseUp: (args: GridMouseEventArgs, isOutside: boolean) => void;\n readonly onContextMenu: (args: GridMouseEventArgs, preventDefault: () => void) => void;\n\n readonly onCanvasFocused: () => void;\n readonly onCanvasBlur: () => void;\n readonly onCellFocused: (args: Item) => void;\n\n readonly onMouseMoveRaw: (event: MouseEvent) => void;\n\n /**\n * Emitted when the canvas receives a key down event.\n * @group Events\n */\n readonly onKeyDown: (event: GridKeyEventArgs) => void;\n /**\n * Emitted when the canvas receives a key up event.\n * @group Events\n */\n readonly onKeyUp: ((event: GridKeyEventArgs) => void) | undefined;\n\n readonly verticalBorder: (col: number) => boolean;\n\n /**\n * Determines what can be dragged using HTML drag and drop\n * @group Drag and Drop\n */\n readonly isDraggable: boolean | \"cell\" | \"header\" | undefined;\n /**\n * If `isDraggable` is set, the grid becomes HTML draggable, and `onDragStart` will be called when dragging starts.\n * You can use this to build a UI where the user can drag the Grid around.\n * @group Drag and Drop\n */\n readonly onDragStart: (args: GridDragEventArgs) => void;\n readonly onDragEnd: () => void;\n\n /** @group Drag and Drop */\n readonly onDragOverCell: ((cell: Item, dataTransfer: DataTransfer | null) => void) | undefined;\n /** @group Drag and Drop */\n readonly onDragLeave: (() => void) | undefined;\n\n /**\n * Called when a HTML Drag and Drop event is ended on the data grid.\n * @group Drag and Drop\n */\n readonly onDrop: ((cell: Item, dataTransfer: DataTransfer | null) => void) | undefined;\n\n readonly drawCustomCell: DrawCustomCellCallback | undefined;\n /**\n * Overrides the rendering of a header. The grid will call this for every header it needs to render. Header\n * rendering is not as well optimized because they do not redraw as often, but very heavy drawing methods can\n * negatively impact horizontal scrolling performance.\n *\n * It is possible to return `false` after rendering just a background and the regular foreground rendering\n * will happen.\n * @group Drawing\n * @returns `false` if default header rendering should still happen, `true` to cancel rendering.\n */\n readonly drawHeader: DrawHeaderCallback | undefined;\n /**\n * Controls the drawing of the focus ring.\n * @defaultValue true\n * @group Style\n */\n readonly drawFocusRing: boolean | undefined;\n\n readonly dragAndDropState:\n | {\n src: number;\n dest: number;\n }\n | undefined;\n\n /**\n * Experimental features\n * @group Advanced\n * @experimental\n */\n readonly experimental:\n | {\n readonly paddingRight?: number;\n readonly paddingBottom?: number;\n readonly enableFirefoxRescaling?: boolean;\n readonly isSubGrid?: boolean;\n readonly strict?: boolean;\n readonly scrollbarWidthOverride?: number;\n readonly hyperWrapping?: boolean;\n readonly renderStrategy?: \"single-buffer\" | \"double-buffer\" | \"direct\";\n }\n | undefined;\n\n /**\n * Additional header icons for use by `GridColumn`.\n *\n * Providing custom header icons to the data grid must be done with a somewhat non-standard mechanism to allow\n * theming and scaling. The `headerIcons` property takes a dictionary which maps icon names to functions which can\n * take a foreground and background color and returns back a string representation of an svg. The svg should contain\n * a header similar to this `` and\n * interpolate the fg/bg colors into the string.\n *\n * We recognize this process is not fantastic from a graphics workflow standpoint, improvements are very welcome\n * here.\n *\n * @group Style\n */\n readonly headerIcons: SpriteMap | undefined;\n\n /** Controls smooth scrolling in the data grid. If smooth scrolling is not enabled the grid will always be cell\n * aligned.\n * @defaultValue `false`\n * @group Style\n */\n readonly smoothScrollX: boolean | undefined;\n /** Controls smooth scrolling in the data grid. If smooth scrolling is not enabled the grid will always be cell\n * aligned.\n * @defaultValue `false`\n * @group Style\n */\n readonly smoothScrollY: boolean | undefined;\n\n readonly theme: Theme;\n\n readonly getCellRenderer: (cell: T) => CellRenderer | undefined;\n}\n\ntype DamageUpdateList = readonly {\n cell: Item;\n // newValue: GridCell,\n}[];\n\nexport interface DataGridRef {\n focus: () => void;\n getBounds: (col: number, row?: number) => Rectangle | undefined;\n damage: (cells: DamageUpdateList) => void;\n}\n\nconst getRowData = (cell: InnerGridCell, getCellRenderer?: GetCellRendererCallback) => {\n if (cell.kind === GridCellKind.Custom) return cell.copyData;\n const r = getCellRenderer?.(cell);\n return r?.getAccessibilityString(cell) ?? \"\";\n};\n\nconst DataGrid: React.ForwardRefRenderFunction = (p, forwardedRef) => {\n const {\n width,\n height,\n accessibilityHeight,\n columns,\n cellXOffset: cellXOffsetReal,\n cellYOffset,\n headerHeight,\n fillHandle = false,\n groupHeaderHeight,\n rowHeight,\n rows,\n getCellContent,\n getRowThemeOverride,\n onHeaderMenuClick,\n enableGroups,\n isFilling,\n onCanvasFocused,\n onCanvasBlur,\n isFocused,\n selection,\n freezeColumns,\n onContextMenu,\n trailingRowType: trailingRowType,\n fixedShadowX = true,\n fixedShadowY = true,\n drawFocusRing = true,\n onMouseDown,\n onMouseUp,\n onMouseMoveRaw,\n onMouseMove,\n onItemHovered,\n dragAndDropState,\n firstColAccessible,\n onKeyDown,\n onKeyUp,\n highlightRegions,\n canvasRef,\n onDragStart,\n onDragEnd,\n eventTargetRef,\n isResizing,\n isDragging,\n isDraggable = false,\n allowResize,\n disabledRows,\n getGroupDetails,\n theme,\n prelightCells,\n headerIcons,\n verticalBorder,\n drawHeader: drawHeaderCallback,\n drawCustomCell,\n onCellFocused,\n onDragOverCell,\n onDrop,\n onDragLeave,\n imageWindowLoader,\n smoothScrollX = false,\n smoothScrollY = false,\n experimental,\n getCellRenderer,\n } = p;\n const translateX = p.translateX ?? 0;\n const translateY = p.translateY ?? 0;\n const cellXOffset = Math.max(freezeColumns, Math.min(columns.length - 1, cellXOffsetReal));\n\n const ref = React.useRef(null);\n const imageWindowLoaderInternal = React.useMemo(() => new ImageWindowLoaderImpl(), []);\n const imageLoader = imageWindowLoader ?? imageWindowLoaderInternal;\n const damageRegion = React.useRef();\n const [scrolling, setScrolling] = React.useState(false);\n const hoverValues = React.useRef([]);\n const lastBlitData = React.useRef();\n const [hoveredItemInfo, setHoveredItemInfo] = React.useState<[Item, readonly [number, number]] | undefined>();\n const [hoveredOnEdge, setHoveredOnEdge] = React.useState();\n const overlayRef = React.useRef(null);\n\n const [lastWasTouch, setLastWasTouch] = React.useState(false);\n const lastWasTouchRef = React.useRef(lastWasTouch);\n lastWasTouchRef.current = lastWasTouch;\n\n const spriteManager = React.useMemo(\n () =>\n new SpriteManager(headerIcons, () => {\n lastArgsRef.current = undefined;\n lastDrawRef.current();\n }),\n [headerIcons]\n );\n const totalHeaderHeight = enableGroups ? groupHeaderHeight + headerHeight : headerHeight;\n\n const scrollingStopRef = React.useRef(-1);\n const disableFirefoxRescaling = experimental?.enableFirefoxRescaling !== true;\n React.useLayoutEffect(() => {\n if (!browserIsFirefox.value || window.devicePixelRatio === 1 || disableFirefoxRescaling) return;\n // We don't want to go into scroll mode for a single repaint\n if (scrollingStopRef.current !== -1) {\n setScrolling(true);\n }\n window.clearTimeout(scrollingStopRef.current);\n scrollingStopRef.current = window.setTimeout(() => {\n setScrolling(false);\n scrollingStopRef.current = -1;\n }, 200);\n }, [cellYOffset, cellXOffset, translateX, translateY, disableFirefoxRescaling]);\n\n const mappedColumns = useMappedColumns(columns, freezeColumns);\n\n // row: -1 === columnHeader, -2 === groupHeader\n const getBoundsForItem = React.useCallback(\n (canvas: HTMLCanvasElement, col: number, row: number): Rectangle | undefined => {\n const rect = canvas.getBoundingClientRect();\n\n if (col >= mappedColumns.length || row >= rows) {\n return undefined;\n }\n\n const scale = rect.width / width;\n\n const result = computeBounds(\n col,\n row,\n width,\n height,\n groupHeaderHeight,\n totalHeaderHeight,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n rows,\n freezeColumns,\n trailingRowType === \"sticky\",\n mappedColumns,\n rowHeight\n );\n\n if (scale !== 1) {\n result.x *= scale;\n result.y *= scale;\n result.width *= scale;\n result.height *= scale;\n }\n\n result.x += rect.x;\n result.y += rect.y;\n\n return result;\n },\n [\n width,\n height,\n groupHeaderHeight,\n totalHeaderHeight,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n rows,\n freezeColumns,\n trailingRowType,\n mappedColumns,\n rowHeight,\n ]\n );\n\n const getMouseArgsForPosition = React.useCallback(\n (canvas: HTMLCanvasElement, posX: number, posY: number, ev?: MouseEvent | TouchEvent): GridMouseEventArgs => {\n const rect = canvas.getBoundingClientRect();\n const scale = rect.width / width;\n const x = (posX - rect.left) / scale;\n const y = (posY - rect.top) / scale;\n const edgeDetectionBuffer = 5;\n\n const effectiveCols = getEffectiveColumns(mappedColumns, cellXOffset, width, undefined, translateX);\n\n let button = 0;\n if (ev instanceof MouseEvent) {\n button = ev.button;\n }\n\n // -1 === off right edge\n const col = getColumnIndexForX(x, effectiveCols, translateX);\n\n // -1: header or above\n // undefined: offbottom\n const row = getRowIndexForY(\n y,\n height,\n enableGroups,\n headerHeight,\n groupHeaderHeight,\n rows,\n rowHeight,\n cellYOffset,\n translateY,\n trailingRowType === \"sticky\"\n );\n\n const shiftKey = ev?.shiftKey === true;\n const ctrlKey = ev?.ctrlKey === true;\n const metaKey = ev?.metaKey === true;\n const isTouch = ev !== undefined && !(ev instanceof MouseEvent);\n\n const edgeSize = 20;\n const scrollEdge: GridMouseEventArgs[\"scrollEdge\"] = [\n Math.abs(x) < edgeSize ? -1 : Math.abs(rect.width - x) < edgeSize ? 1 : 0,\n Math.abs(y) < edgeSize ? -1 : Math.abs(rect.height - y) < edgeSize ? 1 : 0,\n ];\n\n let result: GridMouseEventArgs;\n if (col === -1 || y < 0 || x < 0 || row === undefined || x > width || y > height) {\n const horizontal = x > width ? -1 : x < 0 ? 1 : 0;\n const vertical = y > height ? 1 : y < 0 ? -1 : 0;\n\n let isEdge = false;\n if (col === -1 && row === -1) {\n const b = getBoundsForItem(canvas, mappedColumns.length - 1, -1);\n assert(b !== undefined);\n isEdge = posX < b.x + b.width + edgeDetectionBuffer;\n }\n\n result = {\n kind: outOfBoundsKind,\n location: [col !== -1 ? col : x < 0 ? 0 : mappedColumns.length - 1, row ?? rows - 1],\n direction: [horizontal, vertical],\n shiftKey,\n ctrlKey,\n metaKey,\n isEdge,\n isTouch,\n button,\n scrollEdge,\n };\n } else if (row <= -1) {\n let bounds = getBoundsForItem(canvas, col, row);\n assert(bounds !== undefined);\n let isEdge = bounds !== undefined && bounds.x + bounds.width - posX <= edgeDetectionBuffer;\n\n const previousCol = col - 1;\n if (posX - bounds.x <= edgeDetectionBuffer && previousCol >= 0) {\n isEdge = true;\n bounds = getBoundsForItem(canvas, previousCol, row);\n assert(bounds !== undefined);\n result = {\n kind: enableGroups && row === -2 ? groupHeaderKind : headerKind,\n location: [previousCol, row] as any,\n bounds: bounds,\n group: mappedColumns[previousCol].group ?? \"\",\n isEdge,\n shiftKey,\n ctrlKey,\n metaKey,\n isTouch,\n localEventX: posX - bounds.x,\n localEventY: posY - bounds.y,\n button,\n scrollEdge,\n };\n } else {\n result = {\n kind: enableGroups && row === -2 ? groupHeaderKind : headerKind,\n group: mappedColumns[col].group ?? \"\",\n location: [col, row] as any,\n bounds: bounds,\n isEdge,\n shiftKey,\n ctrlKey,\n metaKey,\n isTouch,\n localEventX: posX - bounds.x,\n localEventY: posY - bounds.y,\n button,\n scrollEdge,\n };\n }\n } else {\n const bounds = getBoundsForItem(canvas, col, row);\n assert(bounds !== undefined);\n const isEdge = bounds !== undefined && bounds.x + bounds.width - posX < edgeDetectionBuffer;\n const isFillHandle =\n fillHandle &&\n bounds !== undefined &&\n bounds.x + bounds.width - posX < 6 &&\n bounds.y + bounds.height - posY < 6;\n result = {\n kind: \"cell\",\n location: [col, row],\n bounds: bounds,\n isEdge,\n shiftKey,\n ctrlKey,\n isFillHandle,\n metaKey,\n isTouch,\n localEventX: posX - bounds.x,\n localEventY: posY - bounds.y,\n button,\n scrollEdge,\n };\n }\n return result;\n },\n [\n mappedColumns,\n cellXOffset,\n width,\n translateX,\n height,\n enableGroups,\n headerHeight,\n groupHeaderHeight,\n rows,\n rowHeight,\n cellYOffset,\n translateY,\n trailingRowType,\n getBoundsForItem,\n fillHandle,\n ]\n );\n\n function isSameItem(item: GridMouseEventArgs | undefined, other: GridMouseEventArgs | undefined) {\n if (item === other) return true;\n return (\n item?.kind === other?.kind &&\n item?.location[0] === other?.location[0] &&\n item?.location[1] === other?.location[1]\n );\n }\n\n const [hoveredItem] = hoveredItemInfo ?? [];\n\n const enqueueRef = React.useRef((_item: Item) => {\n // do nothing\n });\n const hoverInfoRef = React.useRef(hoveredItemInfo);\n hoverInfoRef.current = hoveredItemInfo;\n\n const [bufferA, bufferB] = React.useMemo(() => {\n const a = document.createElement(\"canvas\");\n const b = document.createElement(\"canvas\");\n a.style[\"display\"] = \"none\";\n a.style[\"opacity\"] = \"0\";\n a.style[\"position\"] = \"fixed\";\n b.style[\"display\"] = \"none\";\n b.style[\"opacity\"] = \"0\";\n b.style[\"position\"] = \"fixed\";\n return [a, b];\n }, []);\n\n React.useLayoutEffect(() => {\n document.documentElement.append(bufferA);\n document.documentElement.append(bufferB);\n return () => {\n bufferA.remove();\n bufferB.remove();\n };\n }, [bufferA, bufferB]);\n\n const lastArgsRef = React.useRef();\n const draw = React.useCallback(() => {\n const canvas = ref.current;\n const overlay = overlayRef.current;\n if (canvas === null || overlay === null) return;\n\n const last = lastArgsRef.current;\n const current = {\n canvas,\n bufferA,\n bufferB,\n headerCanvas: overlay,\n width,\n height,\n cellXOffset,\n cellYOffset,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY),\n mappedColumns,\n enableGroups,\n freezeColumns,\n dragAndDropState,\n theme,\n headerHeight,\n groupHeaderHeight,\n disabledRows: disabledRows ?? CompactSelection.empty(),\n rowHeight,\n verticalBorder,\n isResizing,\n isFocused,\n selection,\n fillHandle,\n lastRowSticky: trailingRowType,\n rows,\n drawFocus: drawFocusRing,\n getCellContent,\n getGroupDetails: getGroupDetails ?? (name => ({ name })),\n getRowThemeOverride,\n drawCustomCell,\n drawHeaderCallback,\n prelightCells,\n highlightRegions,\n imageLoader,\n lastBlitData,\n damage: damageRegion.current,\n hoverValues: hoverValues.current,\n hoverInfo: hoverInfoRef.current,\n spriteManager,\n scrolling,\n hyperWrapping: experimental?.hyperWrapping ?? false,\n touchMode: lastWasTouch,\n enqueue: enqueueRef.current,\n renderStrategy: experimental?.renderStrategy ?? (browserIsSafari.value ? \"double-buffer\" : \"single-buffer\"),\n getCellRenderer,\n };\n\n // This confusing bit of code due to some poor design. Long story short, the damage property is only used\n // with what is effectively the \"last args\" for the last normal draw anyway. We don't want the drawing code\n // to look at this and go \"shit dawg, nothing changed\" so we force it to draw frash, but the damage restricts\n // the draw anyway.\n //\n // Dear future Jason, I'm sorry. It was expedient, it worked, and had almost zero perf overhead. THe universe\n // basically made me do it. What choice did I have?\n if (current.damage === undefined) {\n lastArgsRef.current = current;\n drawGrid(current, last);\n } else {\n drawGrid(current, undefined);\n }\n }, [\n bufferA,\n bufferB,\n width,\n height,\n cellXOffset,\n cellYOffset,\n translateX,\n translateY,\n mappedColumns,\n enableGroups,\n freezeColumns,\n dragAndDropState,\n theme,\n headerHeight,\n groupHeaderHeight,\n disabledRows,\n rowHeight,\n verticalBorder,\n isResizing,\n isFocused,\n selection,\n fillHandle,\n trailingRowType,\n rows,\n drawFocusRing,\n getCellContent,\n getGroupDetails,\n getRowThemeOverride,\n drawCustomCell,\n drawHeaderCallback,\n prelightCells,\n highlightRegions,\n imageLoader,\n spriteManager,\n scrolling,\n experimental?.hyperWrapping,\n experimental?.renderStrategy,\n lastWasTouch,\n getCellRenderer,\n ]);\n\n const lastDrawRef = React.useRef(draw);\n React.useLayoutEffect(() => {\n draw();\n lastDrawRef.current = draw;\n }, [draw]);\n\n React.useLayoutEffect(() => {\n const fn = async () => {\n if (document?.fonts?.ready === undefined) return;\n await document.fonts.ready;\n lastArgsRef.current = undefined;\n lastDrawRef.current();\n };\n void fn();\n }, []);\n\n const damageInternal = React.useCallback((locations: CellList) => {\n damageRegion.current = locations;\n lastDrawRef.current();\n damageRegion.current = undefined;\n }, []);\n\n const enqueue = useAnimationQueue(damageInternal);\n enqueueRef.current = enqueue;\n\n const damage = React.useCallback(\n (cells: DamageUpdateList) => {\n damageInternal(cells.map(x => x.cell));\n },\n [damageInternal]\n );\n\n imageLoader.setCallback(damageInternal);\n\n const [overFill, setOverFill] = React.useState(false);\n\n const [hCol, hRow] = hoveredItem ?? [];\n const headerHovered = hCol !== undefined && hRow === -1;\n const groupHeaderHovered = hCol !== undefined && hRow === -2;\n let clickableInnerCellHovered = false;\n let editableBoolHovered = false;\n let cursorOverride: React.CSSProperties[\"cursor\"] | undefined;\n if (hCol !== undefined && hRow !== undefined && hRow > -1) {\n const cell = getCellContent([hCol, hRow]);\n clickableInnerCellHovered =\n cell.kind === InnerGridCellKind.NewRow ||\n (cell.kind === InnerGridCellKind.Marker && cell.markerKind !== \"number\");\n editableBoolHovered = cell.kind === GridCellKind.Boolean && booleanCellIsEditable(cell);\n cursorOverride = cell.cursor;\n }\n const canDrag = hoveredOnEdge ?? false;\n const cursor = isDragging\n ? \"grabbing\"\n : canDrag || isResizing\n ? \"col-resize\"\n : overFill || isFilling\n ? \"crosshair\"\n : cursorOverride !== undefined\n ? cursorOverride\n : headerHovered || clickableInnerCellHovered || editableBoolHovered || groupHeaderHovered\n ? \"pointer\"\n : \"default\";\n const style = React.useMemo(\n () => ({\n // width,\n // height,\n contain: \"strict\",\n display: \"block\",\n cursor,\n }),\n [cursor]\n );\n\n const lastSetCursor = React.useRef(\"default\");\n const target = eventTargetRef?.current;\n if (target !== null && target !== undefined && lastSetCursor.current !== style.cursor) {\n // because we have an event target we need to set its cursor instead.\n target.style.cursor = lastSetCursor.current = style.cursor;\n }\n\n const groupHeaderActionForEvent = React.useCallback(\n (group: string, bounds: Rectangle, localEventX: number, localEventY: number) => {\n if (getGroupDetails === undefined) return undefined;\n const groupDesc = getGroupDetails(group);\n if (groupDesc.actions !== undefined) {\n const boxes = getActionBoundsForGroup(bounds, groupDesc.actions);\n for (const [i, box] of boxes.entries()) {\n if (pointInRect(box, localEventX + bounds.x, localEventY + box.y)) {\n return groupDesc.actions[i];\n }\n }\n }\n return undefined;\n },\n [getGroupDetails]\n );\n\n const isOverHeaderMenu = React.useCallback(\n (canvas: HTMLCanvasElement, col: number, clientX: number, clientY: number) => {\n const header = columns[col];\n\n if (!isDragging && !isResizing && header.hasMenu === true && !(hoveredOnEdge ?? false)) {\n const headerBounds = getBoundsForItem(canvas, col, -1);\n assert(headerBounds !== undefined);\n const menuBounds = getHeaderMenuBounds(\n headerBounds.x,\n headerBounds.y,\n headerBounds.width,\n headerBounds.height\n );\n if (\n clientX > menuBounds.x &&\n clientX < menuBounds.x + menuBounds.width &&\n clientY > menuBounds.y &&\n clientY < menuBounds.y + menuBounds.height\n ) {\n return headerBounds;\n }\n }\n return undefined;\n },\n [columns, getBoundsForItem, hoveredOnEdge, isDragging, isResizing]\n );\n\n const downTime = React.useRef(0);\n const downPosition = React.useRef();\n const onMouseDownImpl = React.useCallback(\n (ev: MouseEvent | TouchEvent) => {\n const canvas = ref.current;\n const eventTarget = eventTargetRef?.current;\n if (canvas === null || (ev.target !== canvas && ev.target !== eventTarget)) return;\n\n let clientX: number;\n let clientY: number;\n if (ev instanceof MouseEvent) {\n clientX = ev.clientX;\n clientY = ev.clientY;\n } else {\n clientX = ev.touches[0].clientX;\n clientY = ev.touches[0].clientY;\n }\n if (ev.target === eventTarget && eventTarget !== null) {\n const bounds = eventTarget.getBoundingClientRect();\n if (clientX > bounds.left + eventTarget.clientWidth) return;\n if (clientY > bounds.top + eventTarget.clientHeight) return;\n }\n\n const args = getMouseArgsForPosition(canvas, clientX, clientY, ev);\n downPosition.current = args.location;\n\n if (args.isTouch) {\n downTime.current = Date.now();\n }\n if (lastWasTouchRef.current !== args.isTouch) {\n setLastWasTouch(args.isTouch);\n }\n\n if (\n args.kind === headerKind &&\n isOverHeaderMenu(canvas, args.location[0], clientX, clientY) !== undefined\n ) {\n return;\n } else if (args.kind === groupHeaderKind) {\n const action = groupHeaderActionForEvent(args.group, args.bounds, args.localEventX, args.localEventY);\n if (action !== undefined) {\n return;\n }\n }\n\n onMouseDown?.(args);\n if (!args.isTouch && isDraggable !== true && isDraggable !== args.kind) {\n // preventing default in touch events stops scroll\n ev.preventDefault();\n }\n },\n [eventTargetRef, isDraggable, getMouseArgsForPosition, groupHeaderActionForEvent, isOverHeaderMenu, onMouseDown]\n );\n useEventListener(\"touchstart\", onMouseDownImpl, window, false);\n useEventListener(\"mousedown\", onMouseDownImpl, window, false);\n\n const onMouseUpImpl = React.useCallback(\n (ev: MouseEvent | TouchEvent) => {\n const canvas = ref.current;\n if (onMouseUp === undefined || canvas === null) return;\n const eventTarget = eventTargetRef?.current;\n\n const isOutside = ev.target !== canvas && ev.target !== eventTarget;\n\n let clientX: number;\n let clientY: number;\n if (ev instanceof MouseEvent) {\n clientX = ev.clientX;\n clientY = ev.clientY;\n } else {\n clientX = ev.changedTouches[0].clientX;\n clientY = ev.changedTouches[0].clientY;\n }\n\n let args = getMouseArgsForPosition(canvas, clientX, clientY, ev);\n\n if (args.isTouch && downTime.current !== 0 && Date.now() - downTime.current > 500) {\n args = {\n ...args,\n isLongTouch: true,\n };\n }\n\n if (lastWasTouchRef.current !== args.isTouch) {\n setLastWasTouch(args.isTouch);\n }\n\n if (!isOutside && ev.cancelable) {\n ev.preventDefault();\n }\n\n if (args.kind === headerKind && isOverHeaderMenu(canvas, args.location[0], clientX, clientY)) {\n const [col] = args.location;\n const headerBounds = isOverHeaderMenu(canvas, col, clientX, clientY);\n if (headerBounds !== undefined) {\n if (args.button === 0 && downPosition.current?.[0] === col && downPosition.current?.[1] === -1) {\n onHeaderMenuClick?.(col, headerBounds);\n } else {\n // force outside so that click will not process\n onMouseUp(args, true);\n }\n return;\n }\n } else if (args.kind === groupHeaderKind) {\n const action = groupHeaderActionForEvent(args.group, args.bounds, args.localEventX, args.localEventY);\n if (action !== undefined) {\n if (args.button === 0) {\n action.onClick(args);\n }\n return;\n }\n }\n\n onMouseUp(args, isOutside);\n },\n [\n onMouseUp,\n eventTargetRef,\n getMouseArgsForPosition,\n isOverHeaderMenu,\n onHeaderMenuClick,\n groupHeaderActionForEvent,\n ]\n );\n useEventListener(\"mouseup\", onMouseUpImpl, window, false);\n useEventListener(\"touchend\", onMouseUpImpl, window, false);\n\n const onContextMenuImpl = React.useCallback(\n (ev: MouseEvent) => {\n const canvas = ref.current;\n if (canvas === null || onContextMenu === undefined) return;\n const args = getMouseArgsForPosition(canvas, ev.clientX, ev.clientY, ev);\n onContextMenu(args, () => {\n if (ev.cancelable) ev.preventDefault();\n });\n },\n [getMouseArgsForPosition, onContextMenu]\n );\n useEventListener(\"contextmenu\", onContextMenuImpl, eventTargetRef?.current ?? null, false);\n\n const onAnimationFrame = React.useCallback(values => {\n damageRegion.current = values.map(x => x.item);\n hoverValues.current = values;\n lastDrawRef.current();\n damageRegion.current = undefined;\n }, []);\n\n const animManagerValue = React.useMemo(() => new AnimationManager(onAnimationFrame), [onAnimationFrame]);\n const animationManager = React.useRef(animManagerValue);\n animationManager.current = animManagerValue;\n React.useLayoutEffect(() => {\n const am = animationManager.current;\n if (hoveredItem === undefined || hoveredItem[1] < 0) {\n am.setHovered(hoveredItem);\n return;\n }\n const cell = getCellContent(hoveredItem as [number, number]);\n const r = getCellRenderer(cell);\n am.setHovered(\n (r === undefined && cell.kind === GridCellKind.Custom) || r?.needsHover === true ? hoveredItem : undefined\n );\n }, [getCellContent, getCellRenderer, hoveredItem]);\n\n const hoveredRef = React.useRef();\n const onMouseMoveImpl = React.useCallback(\n (ev: MouseEvent) => {\n const canvas = ref.current;\n if (canvas === null) return;\n\n const args = getMouseArgsForPosition(canvas, ev.clientX, ev.clientY, ev);\n if (!isSameItem(args, hoveredRef.current)) {\n onItemHovered?.(args);\n setHoveredItemInfo(\n args.kind === outOfBoundsKind ? undefined : [args.location, [args.localEventX, args.localEventY]]\n );\n hoveredRef.current = args;\n } else if (args.kind === \"cell\" || args.kind === headerKind || args.kind === groupHeaderKind) {\n const newInfo: typeof hoverInfoRef.current = [args.location, [args.localEventX, args.localEventY]];\n setHoveredItemInfo(newInfo);\n hoverInfoRef.current = newInfo;\n\n if (args.kind === \"cell\") {\n const toCheck = getCellContent(args.location);\n if (toCheck.kind === GridCellKind.Custom || getCellRenderer(toCheck)?.needsHoverPosition === true) {\n damageInternal([args.location]);\n }\n } else if (args.kind === groupHeaderKind) {\n damageInternal([args.location]);\n }\n }\n\n setHoveredOnEdge(args.kind === headerKind && args.isEdge && allowResize === true);\n\n if (fillHandle && selection.current !== undefined) {\n const [col, row] = selection.current.cell;\n const sb = getBoundsForItem(canvas, col, row);\n const x = ev.clientX;\n const y = ev.clientY;\n assert(sb !== undefined);\n setOverFill(\n x >= sb.x + sb.width - 6 &&\n x <= sb.x + sb.width &&\n y >= sb.y + sb.height - 6 &&\n y <= sb.y + sb.height\n );\n } else {\n setOverFill(false);\n }\n\n onMouseMoveRaw?.(ev);\n onMouseMove(args);\n },\n [\n getMouseArgsForPosition,\n allowResize,\n fillHandle,\n selection,\n onMouseMoveRaw,\n onMouseMove,\n onItemHovered,\n getCellContent,\n getCellRenderer,\n damageInternal,\n getBoundsForItem,\n ]\n );\n useEventListener(\"mousemove\", onMouseMoveImpl, window, true);\n\n const onKeyDownImpl = React.useCallback(\n (event: React.KeyboardEvent) => {\n const canvas = ref.current;\n if (canvas === null) return;\n\n let bounds: Rectangle | undefined;\n if (selection.current !== undefined) {\n bounds = getBoundsForItem(canvas, selection.current.cell[0], selection.current.cell[1]);\n }\n\n onKeyDown?.({\n bounds,\n stopPropagation: () => event.stopPropagation(),\n preventDefault: () => event.preventDefault(),\n cancel: () => undefined,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n key: event.key,\n keyCode: event.keyCode,\n rawEvent: event,\n });\n },\n [onKeyDown, selection, getBoundsForItem]\n );\n\n const onKeyUpImpl = React.useCallback(\n (event: React.KeyboardEvent) => {\n const canvas = ref.current;\n if (canvas === null) return;\n\n let bounds: Rectangle | undefined;\n if (selection.current !== undefined) {\n bounds = getBoundsForItem(canvas, selection.current.cell[0], selection.current.cell[1]);\n }\n\n onKeyUp?.({\n bounds,\n stopPropagation: () => event.stopPropagation(),\n preventDefault: () => event.preventDefault(),\n cancel: () => undefined,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n key: event.key,\n keyCode: event.keyCode,\n rawEvent: event,\n });\n },\n [onKeyUp, selection, getBoundsForItem]\n );\n\n const refImpl = React.useCallback(\n (instance: HTMLCanvasElement | null) => {\n ref.current = instance;\n if (canvasRef !== undefined) {\n canvasRef.current = instance;\n }\n },\n [canvasRef]\n );\n\n const onDragStartImpl = React.useCallback(\n (event: DragEvent) => {\n const canvas = ref.current;\n if (canvas === null || isDraggable === false || isResizing) {\n event.preventDefault();\n return;\n }\n\n let dragMime: string | undefined;\n let dragData: string | undefined;\n\n const args = getMouseArgsForPosition(canvas, event.clientX, event.clientY);\n\n if (isDraggable !== true && args.kind !== isDraggable) {\n event.preventDefault();\n return;\n }\n\n const setData = (mime: string, payload: string) => {\n dragMime = mime;\n dragData = payload;\n };\n\n let dragImage: Element | undefined;\n let dragImageX: number | undefined;\n let dragImageY: number | undefined;\n const setDragImage = (image: Element, x: number, y: number) => {\n dragImage = image;\n dragImageX = x;\n dragImageY = y;\n };\n\n let prevented = false;\n\n onDragStart?.({\n ...args,\n setData,\n setDragImage,\n preventDefault: () => (prevented = true),\n defaultPrevented: () => prevented,\n });\n if (!prevented && dragMime !== undefined && dragData !== undefined && event.dataTransfer !== null) {\n event.dataTransfer.setData(dragMime, dragData);\n event.dataTransfer.effectAllowed = \"copyLink\";\n\n if (dragImage !== undefined && dragImageX !== undefined && dragImageY !== undefined) {\n event.dataTransfer.setDragImage(dragImage, dragImageX, dragImageY);\n } else {\n const [col, row] = args.location;\n if (row !== undefined) {\n const offscreen = document.createElement(\"canvas\");\n const boundsForDragTarget = getBoundsForItem(canvas, col, row);\n\n assert(boundsForDragTarget !== undefined);\n offscreen.width = boundsForDragTarget.width;\n offscreen.height = boundsForDragTarget.height;\n\n const ctx = offscreen.getContext(\"2d\");\n if (ctx !== null) {\n ctx.textBaseline = \"middle\";\n if (row === -1) {\n ctx.font = `${theme.headerFontStyle} ${theme.fontFamily}`;\n ctx.fillStyle = theme.bgHeader;\n ctx.fillRect(0, 0, offscreen.width, offscreen.height);\n drawHeader(\n ctx,\n 0,\n 0,\n boundsForDragTarget.width,\n boundsForDragTarget.height,\n mappedColumns[col],\n false,\n theme,\n false,\n false,\n 0,\n spriteManager,\n drawHeaderCallback,\n false\n );\n } else {\n ctx.font = `${theme.baseFontStyle} ${theme.fontFamily}`;\n ctx.fillStyle = theme.bgCell;\n ctx.fillRect(0, 0, offscreen.width, offscreen.height);\n drawCell(\n ctx,\n row,\n getCellContent([col, row]),\n 0,\n 0,\n 0,\n boundsForDragTarget.width,\n boundsForDragTarget.height,\n false,\n theme,\n drawCustomCell,\n imageLoader,\n spriteManager,\n 1,\n undefined,\n false,\n 0,\n undefined,\n undefined,\n getCellRenderer\n );\n }\n }\n\n offscreen.style.left = \"-100%\";\n offscreen.style.position = \"absolute\";\n\n document.body.append(offscreen);\n\n event.dataTransfer.setDragImage(\n offscreen,\n boundsForDragTarget.width / 2,\n boundsForDragTarget.height / 2\n );\n\n window.setTimeout(() => {\n offscreen.remove();\n }, 0);\n }\n }\n } else {\n event.preventDefault();\n }\n },\n [\n isDraggable,\n isResizing,\n getMouseArgsForPosition,\n onDragStart,\n getBoundsForItem,\n theme,\n mappedColumns,\n spriteManager,\n drawHeaderCallback,\n getCellContent,\n drawCustomCell,\n imageLoader,\n getCellRenderer,\n ]\n );\n useEventListener(\"dragstart\", onDragStartImpl, eventTargetRef?.current ?? null, false, false);\n\n const activeDropTarget = React.useRef();\n\n const onDragOverImpl = React.useCallback(\n (event: DragEvent) => {\n const canvas = ref.current;\n if (onDrop !== undefined) {\n // Need to preventDefault to allow drop\n event.preventDefault();\n }\n\n if (canvas === null || onDragOverCell === undefined) {\n return;\n }\n\n const args = getMouseArgsForPosition(canvas, event.clientX, event.clientY);\n\n const [rawCol, row] = args.location;\n const col = rawCol - (firstColAccessible ? 0 : 1);\n const [activeCol, activeRow] = activeDropTarget.current ?? [];\n\n if (activeCol !== col || activeRow !== row) {\n activeDropTarget.current = [col, row];\n onDragOverCell([col, row], event.dataTransfer);\n }\n },\n [firstColAccessible, getMouseArgsForPosition, onDragOverCell, onDrop]\n );\n useEventListener(\"dragover\", onDragOverImpl, eventTargetRef?.current ?? null, false, false);\n\n const onDragEndImpl = React.useCallback(() => {\n activeDropTarget.current = undefined;\n onDragEnd?.();\n }, [onDragEnd]);\n useEventListener(\"dragend\", onDragEndImpl, eventTargetRef?.current ?? null, false, false);\n\n const onDropImpl = React.useCallback(\n (event: DragEvent) => {\n const canvas = ref.current;\n if (canvas === null || onDrop === undefined) {\n return;\n }\n\n // Default can mess up sometimes.\n event.preventDefault();\n\n const args = getMouseArgsForPosition(canvas, event.clientX, event.clientY);\n\n const [rawCol, row] = args.location;\n const col = rawCol - (firstColAccessible ? 0 : 1);\n\n onDrop([col, row], event.dataTransfer);\n },\n [firstColAccessible, getMouseArgsForPosition, onDrop]\n );\n useEventListener(\"drop\", onDropImpl, eventTargetRef?.current ?? null, false, false);\n\n const onDragLeaveImpl = React.useCallback(() => {\n onDragLeave?.();\n }, [onDragLeave]);\n useEventListener(\"dragleave\", onDragLeaveImpl, eventTargetRef?.current ?? null, false, false);\n\n const selectionRef = React.useRef(selection);\n selectionRef.current = selection;\n const focusRef = React.useRef(null);\n const focusElement = React.useCallback(\n (el: HTMLElement | null) => {\n // We don't want to steal the focus if we don't currently own the focus.\n if (ref.current === null || !ref.current.contains(document.activeElement)) return;\n if (el === null && selectionRef.current.current !== undefined) {\n canvasRef?.current?.focus({\n preventScroll: true,\n });\n } else if (el !== null) {\n el.focus({\n preventScroll: true,\n });\n }\n focusRef.current = el;\n },\n [canvasRef]\n );\n\n React.useImperativeHandle(\n forwardedRef,\n () => ({\n focus: () => {\n const el = focusRef.current;\n // The element in the ref may have been removed however our callback method ref\n // won't see the removal so bad things happen. Checking to see if the element is\n // no longer attached is enough to resolve the problem. In the future this\n // should be replaced with something much more robust.\n if (el === null || !document.contains(el)) {\n canvasRef?.current?.focus({\n preventScroll: true,\n });\n } else {\n el.focus({\n preventScroll: true,\n });\n }\n },\n getBounds: (col: number, row?: number) => {\n if (canvasRef === undefined || canvasRef.current === null) {\n return undefined;\n }\n\n return getBoundsForItem(canvasRef.current, col, row ?? -1);\n },\n damage,\n }),\n [canvasRef, damage, getBoundsForItem]\n );\n\n const lastFocusedSubdomNode = React.useRef();\n\n const accessibilityTree = useDebouncedMemo(\n () => {\n if (width < 50) return null;\n let effectiveCols = getEffectiveColumns(mappedColumns, cellXOffset, width, dragAndDropState, translateX);\n const colOffset = firstColAccessible ? 0 : -1;\n if (!firstColAccessible && effectiveCols[0]?.sourceIndex === 0) {\n effectiveCols = effectiveCols.slice(1);\n }\n\n const [fCol, fRow] = selection.current?.cell ?? [];\n const range = selection.current?.range;\n\n const visibleCols = effectiveCols.map(c => c.sourceIndex);\n const visibleRows = makeRange(cellYOffset, Math.min(rows, cellYOffset + accessibilityHeight));\n\n // Maintain focus within grid if we own it but focused cell is outside visible viewport\n // and not rendered.\n if (\n fCol !== undefined &&\n fRow !== undefined &&\n !(visibleCols.includes(fCol) && visibleRows.includes(fRow))\n ) {\n focusElement(null);\n }\n\n return (\n \n \n
    \n {effectiveCols.map(c => (\n {\n if (e.target === focusRef.current) return;\n return onCellFocused?.([c.sourceIndex, -1]);\n }}\n key={c.sourceIndex}>\n {c.title}\n \n ))}\n
    \n
    \n \n {visibleRows.map(row => (\n \n {effectiveCols.map(c => {\n const col = c.sourceIndex;\n const key = `${col},${row}`;\n const focused = fCol === col && fRow === row;\n const selected =\n range !== undefined &&\n col >= range.x &&\n col < range.x + range.width &&\n row >= range.y &&\n row < range.y + range.height;\n const id = `glide-cell-${col}-${row}`;\n const cellContent = getCellContent([col, row]);\n return (\n {\n const canvas = canvasRef?.current;\n if (canvas === null || canvas === undefined) return;\n return onKeyDown?.({\n bounds: getBoundsForItem(canvas, col, row),\n cancel: () => undefined,\n preventDefault: () => undefined,\n stopPropagation: () => undefined,\n ctrlKey: false,\n key: \"Enter\",\n keyCode: 13,\n metaKey: false,\n shiftKey: false,\n altKey: false,\n rawEvent: undefined,\n });\n }}\n onFocusCapture={e => {\n if (\n e.target === focusRef.current ||\n (lastFocusedSubdomNode.current?.[0] === col &&\n lastFocusedSubdomNode.current?.[1] === row)\n )\n return;\n lastFocusedSubdomNode.current = [col, row];\n return onCellFocused?.([col, row]);\n }}\n ref={focused ? focusElement : undefined}\n tabIndex={-1}>\n {getRowData(cellContent, getCellRenderer)}\n \n );\n })}\n \n ))}\n \n \n );\n },\n [\n width,\n mappedColumns,\n cellXOffset,\n dragAndDropState,\n translateX,\n rows,\n cellYOffset,\n accessibilityHeight,\n selection,\n focusElement,\n getCellContent,\n canvasRef,\n onKeyDown,\n getBoundsForItem,\n onCellFocused,\n ],\n 200\n );\n\n const stickyX = fixedShadowX ? getStickyWidth(mappedColumns, dragAndDropState) : 0;\n const opacityX =\n freezeColumns === 0 || !fixedShadowX ? 0 : cellXOffset > freezeColumns ? 1 : clamp(-translateX / 100, 0, 1);\n\n const absoluteOffsetY = -cellYOffset * 32 + translateY;\n const opacityY = !fixedShadowY ? 0 : clamp(-absoluteOffsetY / 100, 0, 1);\n\n const stickyShadow = React.useMemo(() => {\n if (!opacityX && !opacityY) {\n return null;\n }\n\n const styleX: React.CSSProperties = {\n position: \"absolute\",\n top: 0,\n left: stickyX,\n width: width - stickyX,\n height: height,\n opacity: opacityX,\n pointerEvents: \"none\",\n transition: !smoothScrollX ? \"opacity 0.2s\" : undefined,\n boxShadow: \"inset 13px 0 10px -13px rgba(0, 0, 0, 0.2)\",\n };\n\n const styleY: React.CSSProperties = {\n position: \"absolute\",\n top: totalHeaderHeight,\n left: 0,\n width: width,\n height: height,\n opacity: opacityY,\n pointerEvents: \"none\",\n transition: !smoothScrollY ? \"opacity 0.2s\" : undefined,\n boxShadow: \"inset 0 13px 10px -13px rgba(0, 0, 0, 0.2)\",\n };\n\n return (\n <>\n {opacityX > 0 &&
    }\n {opacityY > 0 &&
    }\n \n );\n }, [opacityX, opacityY, stickyX, width, smoothScrollX, totalHeaderHeight, height, smoothScrollY]);\n\n const overlayStyle = React.useMemo(\n () => ({\n position: \"absolute\",\n top: 0,\n left: 0,\n }),\n []\n );\n\n return (\n <>\n \n {accessibilityTree}\n \n \n {stickyShadow}\n \n );\n};\n\nexport default React.memo(React.forwardRef(DataGrid));\n","/* eslint-disable unicorn/consistent-destructuring */\nimport clamp from \"lodash/clamp.js\";\nimport * as React from \"react\";\nimport DataGrid, { DataGridProps, DataGridRef } from \"../data-grid/data-grid\";\nimport type { GridColumn, GridMouseEventArgs, InnerGridColumn, Rectangle } from \"../data-grid/data-grid-types\";\n\ntype Props = Omit;\n\nexport interface DataGridDndProps extends Props {\n /**\n * Called whenever a row re-order operation is completed. Setting the callback enables re-ordering by dragging the\n * first column of a row.\n * @group Drag and Drop\n */\n readonly onRowMoved?: (startIndex: number, endIndex: number) => void;\n /**\n * Called when the user finishes moving a column. `startIndex` is the index of the column that was moved, and\n * `endIndex` is the index at which it should end up. Note that you have to effect the move of the column, and pass\n * the reordered columns back in the `columns` property.\n * @group Drag and Drop\n */\n readonly onColumnMoved?: (startIndex: number, endIndex: number) => void;\n\n /**\n * Called when the user is resizing a column. `newSize` is the new size of the column. Note that you have change\n * the size of the column in the `GridColumn` and pass it back to the grid in the `columns` property.\n * @group Drag and Drop\n * @param column The `GridColumn` being resized\n * @param newSize The new size of the grid column\n * @param colIndex The index of the column\n * @param newSizeWithGrow The new size of the column including any addition pixels added by the grow parameter\n */\n readonly onColumnResize?: (column: GridColumn, newSize: number, colIndex: number, newSizeWithGrow: number) => void;\n /**\n * Called when the user starts resizing a column. `newSize` is the new size of the column.\n * @group Drag and Drop\n * @param column The `GridColumn` being resized\n * @param newSize The new size of the grid column\n * @param colIndex The index of the column\n * @param newSizeWithGrow The new size of the column including any addition pixels added by the grow parameter\n */\n readonly onColumnResizeStart?: (\n column: GridColumn,\n newSize: number,\n colIndex: number,\n newSizeWithGrow: number\n ) => void;\n /**\n * Called when the user finishes resizing a column. `newSize` is the new size of the column.\n * @group Drag and Drop\n * @param column The `GridColumn` being resized\n * @param newSize The new size of the grid column\n * @param colIndex The index of the column\n * @param newSizeWithGrow The new size of the column including any addition pixels added by the grow parameter\n */\n readonly onColumnResizeEnd?: (\n column: GridColumn,\n newSize: number,\n colIndex: number,\n newSizeWithGrow: number\n ) => void;\n\n readonly gridRef?: React.MutableRefObject;\n readonly maxColumnWidth: number;\n readonly minColumnWidth: number;\n readonly lockColumns: number;\n}\n\n// Dear Past Jason,\n// Wtf does this function do? If you remember in the future come back and add a comment\n// -- Future-Past Jason\nfunction offsetColumnSize(column: InnerGridColumn, width: number, min: number, max: number): number {\n return clamp(Math.round(width - (column.growOffset ?? 0)), Math.ceil(min), Math.floor(max));\n}\n\nconst DataGridDnd: React.FunctionComponent = p => {\n const [resizeColStartX, setResizeColStartX] = React.useState();\n const [resizeCol, setResizeCol] = React.useState();\n\n const [dragCol, setDragCol] = React.useState();\n const [dropCol, setDropCol] = React.useState();\n const [dragColActive, setDragColActive] = React.useState(false);\n const [dragStartX, setDragStartX] = React.useState();\n\n const [dragRow, setDragRow] = React.useState();\n const [dropRow, setDropRow] = React.useState();\n const [dragRowActive, setDragRowActive] = React.useState(false);\n const [dragStartY, setDragStartY] = React.useState();\n\n const {\n onHeaderMenuClick,\n getCellContent,\n onColumnMoved,\n onColumnResize,\n onColumnResizeStart,\n onColumnResizeEnd,\n gridRef,\n maxColumnWidth,\n minColumnWidth,\n onRowMoved,\n lockColumns,\n onMouseDown,\n onMouseUp,\n onItemHovered,\n onDragStart,\n } = p;\n\n const canResize = (onColumnResize ?? onColumnResizeEnd ?? onColumnResizeStart) !== undefined;\n\n const { columns, selection } = p;\n const selectedColumns = selection.columns;\n\n const onItemHoveredImpl = React.useCallback(\n (args: GridMouseEventArgs) => {\n const [col, row] = args.location;\n if (dragCol !== undefined && dropCol !== col && col >= lockColumns) {\n setDragColActive(true);\n setDropCol(col);\n } else if (dragRow !== undefined && row !== undefined) {\n setDragRowActive(true);\n setDropRow(Math.max(0, row));\n } else {\n onItemHovered?.(args);\n }\n },\n [dragCol, dragRow, dropCol, onItemHovered, lockColumns]\n );\n\n const canDragCol = onColumnMoved !== undefined;\n const onMouseDownImpl = React.useCallback(\n (args: GridMouseEventArgs) => {\n if (args.button === 0) {\n const [col, row] = args.location;\n if (args.kind === \"out-of-bounds\" && args.isEdge && canResize) {\n const bounds = gridRef?.current?.getBounds(columns.length - 1, -1);\n if (bounds !== undefined) {\n setResizeColStartX(bounds.x);\n setResizeCol(columns.length - 1);\n }\n } else if (args.kind === \"header\" && col >= lockColumns) {\n if (args.isEdge && canResize) {\n setResizeColStartX(args.bounds.x);\n setResizeCol(col);\n onColumnResizeStart?.(\n columns[col],\n args.bounds.width,\n col,\n args.bounds.width + (columns[col].growOffset ?? 0)\n );\n } else if (args.kind === \"header\" && canDragCol) {\n setDragStartX(args.bounds.x);\n setDragCol(col);\n }\n } else if (\n args.kind === \"cell\" &&\n lockColumns > 0 &&\n col === 0 &&\n row !== undefined &&\n onRowMoved !== undefined\n ) {\n setDragStartY(args.bounds.y);\n setDragRow(row);\n }\n }\n onMouseDown?.(args);\n },\n [onMouseDown, canResize, lockColumns, onRowMoved, gridRef, columns, canDragCol, onColumnResizeStart]\n );\n\n const onHeaderMenuClickMangled = React.useCallback(\n (col: number, screenPosition: Rectangle) => {\n if (dragColActive || dragRowActive) return;\n onHeaderMenuClick?.(col, screenPosition);\n },\n [dragColActive, dragRowActive, onHeaderMenuClick]\n );\n\n const lastResizeWidthRef = React.useRef(-1);\n\n const clearAll = React.useCallback(() => {\n lastResizeWidthRef.current = -1;\n setDragRow(undefined);\n setDropRow(undefined);\n setDragStartY(undefined);\n setDragRowActive(false);\n setDragCol(undefined);\n setDropCol(undefined);\n setDragStartX(undefined);\n setDragColActive(false);\n setResizeCol(undefined);\n setResizeColStartX(undefined);\n }, []);\n\n const onMouseUpImpl = React.useCallback(\n (args: GridMouseEventArgs, isOutside: boolean) => {\n if (args.button === 0) {\n if (resizeCol !== undefined) {\n // if the column is in selection, the selection may contain extra cols, so lets just re-send the last\n // resize event to all those columns.\n if (selectedColumns?.hasIndex(resizeCol) === true) {\n for (const c of selectedColumns) {\n if (c === resizeCol) continue;\n const col = columns[c];\n const newSize = offsetColumnSize(\n col,\n lastResizeWidthRef.current,\n minColumnWidth,\n maxColumnWidth\n );\n onColumnResize?.(col, newSize, c, newSize + (col.growOffset ?? 0));\n }\n }\n\n const ns = offsetColumnSize(\n columns[resizeCol],\n lastResizeWidthRef.current,\n minColumnWidth,\n maxColumnWidth\n );\n onColumnResizeEnd?.(columns[resizeCol], ns, resizeCol, ns + (columns[resizeCol].growOffset ?? 0));\n for (const c of selectedColumns) {\n if (c === resizeCol) continue;\n const col = columns[c];\n const s = offsetColumnSize(col, lastResizeWidthRef.current, minColumnWidth, maxColumnWidth);\n onColumnResizeEnd?.(col, s, c, s + (col.growOffset ?? 0));\n }\n }\n\n clearAll();\n if (dragCol !== undefined && dropCol !== undefined) {\n onColumnMoved?.(dragCol, dropCol);\n }\n if (dragRow !== undefined && dropRow !== undefined) {\n onRowMoved?.(dragRow, dropRow);\n }\n }\n onMouseUp?.(args, isOutside);\n },\n [\n onMouseUp,\n resizeCol,\n dragCol,\n dropCol,\n dragRow,\n dropRow,\n selectedColumns,\n onColumnResizeEnd,\n columns,\n minColumnWidth,\n maxColumnWidth,\n onColumnResize,\n onColumnMoved,\n onRowMoved,\n clearAll,\n ]\n );\n\n const dragOffset = React.useMemo(() => {\n if (dragCol === undefined || dropCol === undefined) return undefined;\n if (dragCol === dropCol) return undefined;\n\n return {\n src: dragCol,\n dest: dropCol,\n };\n }, [dragCol, dropCol]);\n\n const onMouseMove = React.useCallback(\n (event: MouseEvent) => {\n if (dragCol !== undefined && dragStartX !== undefined) {\n const diff = Math.abs(event.clientX - dragStartX);\n if (diff > 20) {\n setDragColActive(true);\n }\n } else if (dragRow !== undefined && dragStartY !== undefined) {\n const diff = Math.abs(event.clientY - dragStartY);\n if (diff > 20) {\n setDragRowActive(true);\n }\n } else if (resizeCol !== undefined && resizeColStartX !== undefined) {\n const column = columns[resizeCol];\n const newWidth = event.clientX - resizeColStartX;\n const ns = offsetColumnSize(column, newWidth, minColumnWidth, maxColumnWidth);\n onColumnResize?.(column, ns, resizeCol, ns + (column.growOffset ?? 0));\n lastResizeWidthRef.current = newWidth;\n\n if (selectedColumns?.first() === resizeCol) {\n for (const c of selectedColumns) {\n if (c === resizeCol) continue;\n const col = columns[c];\n const s = offsetColumnSize(col, lastResizeWidthRef.current, minColumnWidth, maxColumnWidth);\n onColumnResize?.(col, s, c, s + (col.growOffset ?? 0));\n }\n }\n }\n },\n [\n dragCol,\n dragStartX,\n dragRow,\n dragStartY,\n resizeCol,\n resizeColStartX,\n columns,\n minColumnWidth,\n maxColumnWidth,\n onColumnResize,\n selectedColumns,\n ]\n );\n\n const getMangledCellContent = React.useCallback(\n cell => {\n if (dragRow === undefined || dropRow === undefined) return getCellContent(cell);\n\n // eslint-disable-next-line prefer-const\n let [col, row] = cell;\n if (row === dropRow) {\n row = dragRow;\n } else {\n if (row > dropRow) row -= 1;\n if (row >= dragRow) row += 1;\n }\n\n return getCellContent([col, row]);\n },\n [dragRow, dropRow, getCellContent]\n );\n\n const onDragStartImpl = React.useCallback>(\n args => {\n onDragStart?.(args);\n if (!args.defaultPrevented()) {\n clearAll();\n }\n },\n [clearAll, onDragStart]\n );\n\n return (\n \n );\n};\n\nexport default DataGridDnd;\n","import { styled } from \"@linaria/react\";\nimport type { Rectangle } from \"..\";\nimport * as React from \"react\";\nimport { useResizeDetector } from \"../common/resize-detector\";\nimport { browserIsSafari } from \"../common/browser-detect\";\nimport { useEventListener } from \"../common/utils\";\n\ninterface Props {\n readonly className?: string;\n readonly preventDiagonalScrolling?: boolean;\n readonly draggable: boolean;\n readonly paddingRight?: number;\n readonly paddingBottom?: number;\n readonly clientHeight: number;\n readonly scrollWidth: number;\n readonly scrollHeight: number;\n readonly scrollToEnd?: boolean;\n readonly initialSize?: readonly [width: number, height: number];\n readonly rightElementProps?: {\n readonly sticky?: boolean;\n readonly fill?: boolean;\n };\n readonly rightElement?: React.ReactNode;\n readonly minimap?: React.ReactNode;\n readonly scrollRef?: React.MutableRefObject;\n readonly update: (region: Rectangle & { paddingRight: number }) => void;\n}\n\nconst ScrollRegionStyle = styled.div<{ isSafari: boolean }>`\n .dvn-scroller {\n overflow: ${p => (p.isSafari ? \"scroll\" : \"auto\")};\n transform: translate3d(0, 0, 0);\n }\n\n .hidden {\n visibility: hidden;\n }\n\n .dvn-scroll-inner {\n display: flex;\n pointer-events: none;\n\n > * {\n flex-shrink: 0;\n }\n\n .dvn-spacer {\n flex-grow: 1;\n }\n\n .dvn-stack {\n display: flex;\n flex-direction: column;\n }\n }\n\n .dvn-underlay > * {\n position: absolute;\n left: 0;\n top: 0;\n }\n\n canvas {\n outline: none;\n\n * {\n height: 0;\n }\n }\n`;\n\ntype ScrollLock = [undefined, number] | [number, undefined] | undefined;\n\nfunction eatEvent(e: React.MouseEvent) {\n e.stopPropagation();\n}\n\nfunction useTouchUpDelayed(delay: number): boolean {\n const [hasTouches, setHasTouches] = React.useState(false);\n\n const cbTimer = React.useRef(0);\n useEventListener(\n \"touchstart\",\n React.useCallback(() => {\n window.clearTimeout(cbTimer.current);\n setHasTouches(true);\n }, []),\n window,\n true,\n false\n );\n\n useEventListener(\n \"touchend\",\n React.useCallback(\n e => {\n if (e.touches.length === 0) {\n cbTimer.current = window.setTimeout(() => setHasTouches(false), delay);\n }\n },\n [delay]\n ),\n window,\n true,\n false\n );\n\n return hasTouches;\n}\n\nexport const InfiniteScroller: React.FC = p => {\n const {\n children,\n clientHeight,\n scrollHeight,\n scrollWidth,\n update,\n draggable,\n className,\n preventDiagonalScrolling = false,\n paddingBottom = 0,\n paddingRight = 0,\n rightElement,\n rightElementProps,\n scrollRef,\n scrollToEnd,\n initialSize,\n minimap,\n } = p;\n const padders: React.ReactNode[] = [];\n\n const rightElementSticky = rightElementProps?.sticky ?? false;\n const rightElementFill = rightElementProps?.fill ?? false;\n\n const offsetY = React.useRef(0);\n const lastScrollY = React.useRef(0);\n const scroller = React.useRef(null);\n\n const dpr = window.devicePixelRatio;\n\n React.useEffect(() => {\n const el = scroller.current;\n if (el === null || scrollToEnd !== true) return;\n\n el.scrollLeft = el.scrollWidth - el.clientWidth;\n }, [scrollToEnd]);\n\n const lastScrollPosition = React.useRef({\n scrollLeft: 0,\n scrollTop: 0,\n lockDirection: undefined as ScrollLock,\n });\n\n const rightWrapRef = React.useRef(null);\n\n const hasTouches = useTouchUpDelayed(200);\n const [isIdle, setIsIdle] = React.useState(true);\n const idleTimer = React.useRef(0);\n\n React.useEffect(() => {\n if (!isIdle || hasTouches || lastScrollPosition.current.lockDirection === undefined) return;\n const el = scroller.current;\n if (el === null) return;\n const [lx, ly] = lastScrollPosition.current.lockDirection;\n if (lx !== undefined) {\n el.scrollLeft = lx;\n } else if (ly !== undefined) {\n el.scrollTop = ly;\n }\n lastScrollPosition.current.lockDirection = undefined;\n }, [hasTouches, isIdle]);\n\n const onScroll = React.useCallback(() => {\n const el = scroller.current;\n if (el === null) return;\n\n let scrollTop = el.scrollTop;\n let scrollLeft = el.scrollLeft;\n const lastScrollTop = lastScrollPosition.current.scrollTop;\n const lastScrollLeft = lastScrollPosition.current.scrollLeft;\n\n const dx = scrollLeft - lastScrollLeft;\n const dy = scrollTop - lastScrollTop;\n\n if (\n hasTouches &&\n dx !== 0 &&\n dy !== 0 &&\n (Math.abs(dx) > 3 || Math.abs(dy) > 3) &&\n preventDiagonalScrolling &&\n lastScrollPosition.current.lockDirection === undefined\n ) {\n lastScrollPosition.current.lockDirection =\n Math.abs(dx) < Math.abs(dy) ? [lastScrollLeft, undefined] : [undefined, lastScrollTop];\n }\n\n const lock = lastScrollPosition.current.lockDirection;\n\n scrollLeft = lock?.[0] ?? scrollLeft;\n scrollTop = lock?.[1] ?? scrollTop;\n lastScrollPosition.current.scrollLeft = scrollLeft;\n lastScrollPosition.current.scrollTop = scrollTop;\n\n const newY = scrollTop;\n const delta = lastScrollY.current - newY;\n const scrollableHeight = el.scrollHeight - el.clientHeight;\n lastScrollY.current = newY;\n\n if (\n scrollableHeight > 0 &&\n (Math.abs(delta) > 2000 || newY === 0 || newY === scrollableHeight) &&\n scrollHeight > el.scrollHeight + 5\n ) {\n const prog = newY / scrollableHeight;\n const recomputed = (scrollHeight - el.clientHeight) * prog;\n offsetY.current = recomputed - newY;\n }\n\n if (lock !== undefined) {\n window.clearTimeout(idleTimer.current);\n setIsIdle(false);\n idleTimer.current = window.setTimeout(() => setIsIdle(true), 200);\n }\n\n update({\n x: scrollLeft,\n y: newY + offsetY.current,\n width: el.clientWidth - paddingRight,\n height: el.clientHeight - paddingBottom,\n paddingRight: rightWrapRef.current?.clientWidth ?? 0,\n });\n }, [paddingBottom, paddingRight, scrollHeight, update, preventDiagonalScrolling, hasTouches]);\n\n const onScrollRef = React.useRef(onScroll);\n onScrollRef.current = onScroll;\n\n const lastProps = React.useRef<{ width?: number; height?: number }>();\n\n const didFirstScroll = React.useRef(false);\n React.useEffect(() => {\n if (didFirstScroll.current) onScroll();\n else didFirstScroll.current = true;\n }, [onScroll, paddingBottom, paddingRight]);\n\n const setRefs = React.useCallback(\n (instance: HTMLDivElement | null) => {\n scroller.current = instance;\n if (scrollRef !== undefined) {\n scrollRef.current = instance;\n }\n },\n [scrollRef]\n );\n\n let key = 0;\n let h = 0;\n padders.push(
    );\n while (h < scrollHeight) {\n const toAdd = Math.min(5_000_000, scrollHeight - h);\n padders.push(
    );\n h += toAdd;\n }\n\n const { ref, width, height } = useResizeDetector(initialSize);\n\n if (lastProps.current?.height !== height || lastProps.current?.width !== width) {\n window.setTimeout(() => onScrollRef.current(), 0);\n lastProps.current = { width, height };\n }\n\n if ((width ?? 0) === 0 || (height ?? 0) === 0) return
    ;\n\n return (\n
    \n \n {minimap}\n
    {children}
    \n {\n if (!draggable) {\n e.stopPropagation();\n e.preventDefault();\n }\n }}\n className={\"dvn-scroller \" + (className ?? \"\")}\n onScroll={onScroll}>\n
    \n
    {padders}
    \n {rightElement !== undefined && (\n <>\n {!rightElementFill &&
    }\n \n {rightElement}\n
    \n \n )}\n
    \n
    \n \n
    \n );\n};\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nimport { useLayoutEffect, useState, useRef, MutableRefObject } from \"react\";\ninterface ReactResizeDetectorDimensions {\n height?: number;\n width?: number;\n}\n\nexport function useResizeDetector(\n initialSize?: readonly [width: number, height: number]\n): UseResizeDetectorReturn {\n const ref = useRef(null);\n\n const [size, setSize] = useState({\n width: initialSize?.[0],\n height: initialSize?.[1],\n });\n\n useLayoutEffect(() => {\n const resizeCallback: ResizeObserverCallback = entries => {\n for (const entry of entries) {\n const { width, height } = (entry && entry.contentRect) || {};\n setSize(cv => (cv.width === width && cv.height === height ? cv : { width, height }));\n }\n };\n\n const resizeObserver = new window.ResizeObserver(resizeCallback);\n\n if (ref.current) {\n resizeObserver.observe(ref.current, undefined);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref.current]);\n\n return { ref, ...size };\n}\n\nexport interface UseResizeDetectorReturn extends ReactResizeDetectorDimensions {\n ref: MutableRefObject;\n}\n","import * as React from \"react\";\nimport { styled } from \"@linaria/react\";\nimport DataGridDnd, { DataGridDndProps } from \"../data-grid-dnd/data-grid-dnd\";\nimport type { Rectangle } from \"../data-grid/data-grid-types\";\nimport { InfiniteScroller } from \"./infinite-scroller\";\nimport clamp from \"lodash/clamp.js\";\n\ntype Props = Omit;\n\nexport interface ScrollingDataGridProps extends Props {\n readonly className: string | undefined;\n readonly onVisibleRegionChanged:\n | ((\n range: Rectangle,\n clientWidth: number,\n clientHeight: number,\n rightElWidth: number,\n tx: number,\n ty: number\n ) => void)\n | undefined;\n /**\n * Causes the grid to scroll to the end when flipped to true\n * @deprecated Use {@link DataEditorRef.scrollTo} instead\n * @group Deprecated\n */\n readonly scrollToEnd: boolean | undefined;\n readonly scrollRef: React.MutableRefObject | undefined;\n\n /**\n * The overscroll properties are used to allow the grid to scroll past the logical end of the content by a fixed\n * number of pixels. This is useful particularly on the X axis if you allow for resizing columns as it can make\n * resizing the final column significantly easier.\n *\n * @group Advanced\n */\n readonly overscrollX: number | undefined;\n /** {@inheritDoc overscrollX}\n * @group Advanced\n */\n readonly overscrollY: number | undefined;\n /**\n * Provides an initial size for the grid which can prevent a flicker on load if the initial size is known prior to\n * layout.\n *\n * @group Advanced\n */\n readonly initialSize: readonly [width: number, height: number] | undefined;\n /**\n * Set to true to prevent any diagonal scrolling.\n * @group Advanced\n */\n readonly preventDiagonalScrolling: boolean | undefined;\n\n /**\n * If `rightElementProps.sticky` is set to true the right element will be visible at all times, otherwise the user\n * will need to scroll to the end to reveal it.\n *\n * If `rightElementProps.fill` is set, the right elements container will fill to consume all remaining space (if\n * any) at the end of the grid. This does not play nice with growing columns.\n *\n * @group Advanced\n */\n readonly rightElementProps:\n | {\n readonly sticky?: boolean;\n readonly fill?: boolean;\n }\n | undefined;\n /**\n * The right element is a DOM node which can be inserted at the end of the horizontal scroll region. This can be\n * used to create a right handle panel, make a big add button, or display messages.\n * @group Advanced\n */\n readonly rightElement: React.ReactNode | undefined;\n /**\n * Enables/disables the interactive minimap.\n * @defaultValue false\n * @group Advanced\n */\n readonly showMinimap: boolean | undefined;\n readonly clientSize: readonly [number, number];\n}\n\nconst MinimapStyle = styled.div`\n position: absolute;\n right: 44px;\n bottom: 44px;\n background-color: var(--gdg-bg-cell);\n background: linear-gradient(var(--gdg-bg-cell), var(--gdg-bg-cell-medium));\n border-radius: 4px;\n z-index: 1;\n box-shadow: 0 0 0 1px var(--gdg-border-color), 0 2px 5px rgba(0, 0, 0, 0.08);\n\n overflow: hidden;\n\n .header {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 4px;\n background-color: var(--gdg-bg-header);\n box-shadow: 0 0 0 1px var(--gdg-border-color);\n }\n\n .locationMarker {\n position: absolute;\n\n border: 1px solid var(--gdg-accent-color);\n background-color: var(--gdg-accent-light);\n }\n`;\n\nconst GridScroller: React.FunctionComponent = p => {\n const {\n columns,\n rows,\n rowHeight,\n headerHeight,\n groupHeaderHeight,\n enableGroups,\n freezeColumns,\n experimental,\n clientSize,\n className,\n onVisibleRegionChanged,\n scrollToEnd,\n scrollRef,\n preventDiagonalScrolling,\n rightElement,\n rightElementProps,\n overscrollX,\n overscrollY,\n showMinimap = false,\n initialSize,\n smoothScrollX = false,\n smoothScrollY = false,\n isDraggable,\n } = p;\n const { paddingRight, paddingBottom } = experimental ?? {};\n\n const [clientWidth, clientHeight] = clientSize;\n const last = React.useRef();\n const lastX = React.useRef();\n const lastY = React.useRef();\n const lastSize = React.useRef();\n\n const width = React.useMemo(() => {\n let r = Math.max(0, overscrollX ?? 0);\n for (const c of columns) {\n r += c.width;\n }\n return r;\n }, [columns, overscrollX]);\n\n let height = enableGroups ? headerHeight + groupHeaderHeight : headerHeight;\n if (typeof rowHeight === \"number\") {\n height += rows * rowHeight;\n } else {\n for (let r = 0; r < rows; r++) {\n height += rowHeight(r);\n }\n }\n if (overscrollY !== undefined) {\n height += overscrollY;\n }\n\n const lastArgs = React.useRef();\n\n const processArgs = React.useCallback(() => {\n if (lastArgs.current === undefined) return;\n const args = { ...lastArgs.current };\n\n let x = 0;\n let tx = args.x < 0 ? -args.x : 0;\n let cellRight = 0;\n let cellX = 0;\n\n args.x = args.x < 0 ? 0 : args.x;\n\n let stickyColWidth = 0;\n for (let i = 0; i < freezeColumns; i++) {\n stickyColWidth += columns[i].width;\n }\n\n for (const c of columns) {\n const cx = x - stickyColWidth;\n if (args.x >= cx + c.width) {\n x += c.width;\n cellX++;\n cellRight++;\n } else if (args.x > cx) {\n x += c.width;\n if (smoothScrollX) {\n tx += cx - args.x;\n } else {\n cellX++;\n }\n cellRight++;\n } else if (args.x + args.width > cx) {\n x += c.width;\n cellRight++;\n } else {\n break;\n }\n }\n\n let ty = 0;\n let cellY = 0;\n let cellBottom = 0;\n if (typeof rowHeight === \"number\") {\n if (smoothScrollY) {\n cellY = Math.floor(args.y / rowHeight);\n ty = cellY * rowHeight - args.y;\n } else {\n cellY = Math.ceil(args.y / rowHeight);\n }\n cellBottom = Math.ceil(args.height / rowHeight) + cellY;\n if (ty < 0) cellBottom++;\n } else {\n let y = 0;\n for (let row = 0; row < rows; row++) {\n const rh = rowHeight(row);\n const cy = y + (smoothScrollY ? 0 : rh / 2);\n if (args.y >= y + rh) {\n y += rh;\n cellY++;\n cellBottom++;\n } else if (args.y > cy) {\n y += rh;\n if (smoothScrollY) {\n ty += cy - args.y;\n } else {\n cellY++;\n }\n cellBottom++;\n } else if (args.y + args.height > rh / 2 + y) {\n y += rh;\n cellBottom++;\n } else {\n break;\n }\n }\n }\n\n const rect: Rectangle = {\n x: cellX,\n y: cellY,\n width: cellRight - cellX,\n height: cellBottom - cellY,\n };\n\n const oldRect = last.current;\n\n if (\n oldRect === undefined ||\n oldRect.y !== rect.y ||\n oldRect.x !== rect.x ||\n oldRect.height !== rect.height ||\n oldRect.width !== rect.width ||\n lastX.current !== tx ||\n lastY.current !== ty ||\n args.width !== lastSize.current?.[0] ||\n args.height !== lastSize.current?.[1]\n ) {\n onVisibleRegionChanged?.(\n {\n x: cellX,\n y: cellY,\n width: cellRight - cellX,\n height: cellBottom - cellY,\n },\n args.width,\n args.height,\n args.paddingRight ?? 0,\n tx,\n ty\n );\n last.current = rect;\n lastX.current = tx;\n lastY.current = ty;\n lastSize.current = [args.width, args.height];\n }\n }, [columns, rowHeight, rows, onVisibleRegionChanged, freezeColumns, smoothScrollX, smoothScrollY]);\n\n const onScrollUpdate = React.useCallback(\n (args: Rectangle & { paddingRight: number }) => {\n lastArgs.current = args;\n processArgs();\n },\n [processArgs]\n );\n\n React.useEffect(() => {\n processArgs();\n }, [processArgs]);\n\n const scroller = scrollRef?.current ?? undefined;\n const aspect = clamp(width / height, 2 / 3, 1.5);\n const maxSize = 200;\n const w = aspect > 1 ? maxSize : Math.ceil(maxSize * aspect);\n const h = aspect > 1 ? Math.ceil(maxSize / aspect) : maxSize;\n const hRatio = w / width;\n const vRatio = h / height;\n const vWidth = Math.min(clientWidth * Math.max(hRatio, 0.01), w);\n const vHeight = Math.min(clientHeight * Math.max(vRatio, 0.01), h);\n const left = ((scroller?.scrollLeft ?? 0) / (width - clientWidth)) * (w - vWidth);\n const top = ((scroller?.scrollTop ?? 0) / (height - clientHeight)) * (h - vHeight);\n\n const minimap: React.ReactNode = React.useMemo(() => {\n if (!showMinimap || vWidth === 0 || vHeight === 0) return undefined;\n\n const handleMouse = (e: React.MouseEvent) => {\n if (scroller === undefined) return;\n const bounds = e.currentTarget.getBoundingClientRect();\n const x = e.clientX - bounds.x - vWidth / 2;\n const y = e.clientY - bounds.y - vHeight / 2;\n\n const newScrollLeft = (width - scroller.clientWidth) * (x / (w - vWidth));\n const newScrollTop = (height - scroller.clientHeight) * (y / (h - vHeight));\n\n scroller.scrollTo({\n left: newScrollLeft,\n top: newScrollTop,\n behavior: e.type === \"mousemove\" ? \"auto\" : \"smooth\",\n });\n };\n\n return (\n {\n if (e.buttons !== 1) return;\n handleMouse(e);\n }}\n onClick={handleMouse}>\n
    \n e.preventDefault()}\n style={{\n left,\n top,\n width: vWidth,\n height: vHeight,\n borderRadius: Math.min(vWidth, vHeight * 0.2, 9),\n }}>
    \n \n );\n }, [h, height, left, scroller, showMinimap, top, vHeight, vWidth, w, width]);\n\n return (\n \n \n \n );\n};\n\nexport default GridScroller;\n","import { styled } from \"@linaria/react\";\n\nexport const SearchWrapper = styled.div<{ showSearch: boolean }>`\n position: absolute;\n top: 4px;\n right: 20px;\n\n background-color: var(--gdg-bg-cell);\n color: var(--gdg-text-dark);\n\n padding: 8px;\n border: 1px solid var(--gdg-border-color);\n border-radius: 6px;\n\n font-size: var(--gdg-editor-font-size);\n\n transform: translateX(${p => (p.showSearch ? 0 : 400)}px);\n transition: transform 0.15s;\n\n .search-bar-inner {\n display: flex;\n }\n\n .search-status {\n padding-top: 4px;\n font-size: 11px;\n }\n\n .search-progress {\n position: absolute;\n height: 4px;\n left: 0;\n bottom: 0;\n\n background-color: var(--gdg-text-light);\n }\n\n input {\n width: 220px;\n color: var(--gdg-textDark);\n background-color: var(--gdg-bg-cell);\n border: none;\n border-width: 0;\n outline: none;\n }\n\n button {\n width: 24px;\n height: 24px;\n padding: 0;\n\n border: none;\n outline: none;\n background: none;\n\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n color: var(--gdg-text-medium);\n\n :hover {\n color: var(--gdg-text-dark);\n }\n\n .button-icon {\n width: 16px;\n height: 16px;\n }\n\n :disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n }\n`;\n","/* eslint-disable unicorn/consistent-destructuring */\nimport * as React from \"react\";\nimport { CellArray, GetCellsThunk, GridCellKind, Item, Rectangle } from \"../data-grid/data-grid-types\";\nimport ScrollingDataGrid, { ScrollingDataGridProps } from \"../scrolling-data-grid/scrolling-data-grid\";\nimport { SearchWrapper } from \"./data-grid-search-style\";\nimport { assert } from \"../common/support\";\n\n// icons\nconst upArrow = (\n \n \n \n);\nconst downArrow = (\n \n \n \n);\n\nconst closeX = (\n \n \n \n);\n\nexport interface DataGridSearchProps extends Omit {\n readonly getCellsForSelection?: (selection: Rectangle, abortSignal: AbortSignal) => GetCellsThunk | CellArray;\n readonly onSearchResultsChanged?: (results: readonly Item[], navIndex: number) => void;\n /**\n * Controls the visibility of the search overlay.\n * @group Search\n */\n readonly showSearch?: boolean;\n /**\n * Emitted when the search window close event is triggered.\n * @group Search\n */\n readonly onSearchClose?: () => void;\n readonly searchInputRef: React.MutableRefObject;\n}\n\nconst targetSearchTimeMS = 10;\n\nconst DataGridSearch: React.FunctionComponent = p => {\n const {\n canvasRef,\n cellYOffset,\n rows,\n columns,\n searchInputRef,\n getCellsForSelection,\n onSearchResultsChanged,\n showSearch = false,\n onSearchClose,\n } = p;\n\n const [searchID] = React.useState(() => \"search-box-\" + Math.round(Math.random() * 1000));\n\n const [searchString, setSearchString] = React.useState(\"\");\n const [searchStatus, setSearchStatus] =\n React.useState<{\n rowsSearched: number;\n results: number;\n selectedIndex: number;\n }>();\n\n const searchStatusRef = React.useRef(searchStatus);\n searchStatusRef.current = searchStatus;\n\n const abortControllerRef = React.useRef(new AbortController());\n const searchHandle = React.useRef();\n const [searchResults, setSearchResults] = React.useState([]);\n\n const cancelSearch = React.useCallback(() => {\n if (searchHandle.current !== undefined) {\n window.cancelAnimationFrame(searchHandle.current);\n searchHandle.current = undefined;\n abortControllerRef.current.abort();\n }\n }, []);\n\n const cellYOffsetRef = React.useRef(cellYOffset);\n cellYOffsetRef.current = cellYOffset;\n const beginSearch = React.useCallback(\n (str: string) => {\n const regex = new RegExp(str.replace(/([$()*+.?[\\\\\\]^{|}-])/g, \"\\\\$1\"), \"i\");\n\n let startY = cellYOffsetRef.current;\n\n // Lets assume we can do 10 rows at a time\n // This is usually very safe and limits the damage for bad\n // performing sheets.\n let searchStride = Math.min(10, rows);\n\n let rowsSearched = 0;\n\n setSearchStatus(undefined);\n setSearchResults([]);\n\n const runningResult: [number, number][] = [];\n\n const tick = async () => {\n if (getCellsForSelection === undefined) return;\n const tStart = performance.now();\n const rowsLeft = rows - rowsSearched;\n let data = getCellsForSelection(\n {\n x: 0,\n y: startY,\n width: columns.length,\n height: Math.min(searchStride, rowsLeft, rows - startY),\n },\n abortControllerRef.current.signal\n );\n\n if (typeof data === \"function\") {\n data = await data();\n }\n\n let added = false;\n for (const [row, d] of data.entries()) {\n for (const [col, cell] of d.entries()) {\n let testString: string | undefined;\n switch (cell.kind) {\n case GridCellKind.Text:\n case GridCellKind.Number:\n testString = cell.displayData;\n break;\n case GridCellKind.Uri:\n case GridCellKind.Markdown:\n testString = cell.data;\n break;\n case GridCellKind.Boolean:\n testString = typeof cell.data === \"boolean\" ? cell.data.toString() : undefined;\n break;\n case GridCellKind.Image:\n case GridCellKind.Bubble:\n // I know its lazy, but unless someone is actually\n // searching for the whale emoji, this is pretty side effect\n // free. And ya know... it's nice and easy to do...\n testString = cell.data.join(\"🐳\");\n break;\n case GridCellKind.Custom:\n testString = cell.copyData;\n break;\n }\n\n if (testString !== undefined && regex.test(testString)) {\n runningResult.push([col, row + startY]);\n added = true;\n }\n }\n }\n\n const tEnd = performance.now();\n\n if (added) {\n setSearchResults([...runningResult]);\n }\n\n rowsSearched += data.length;\n assert(rowsSearched <= rows);\n\n const selectedIndex = searchStatusRef.current?.selectedIndex ?? -1;\n setSearchStatus({\n results: runningResult.length,\n rowsSearched,\n selectedIndex,\n });\n onSearchResultsChanged?.(runningResult, selectedIndex);\n\n if (startY + searchStride >= rows) {\n startY = 0;\n } else {\n startY += searchStride;\n }\n\n const tElapsed = tEnd - tStart;\n const rounded = Math.max(tElapsed, 1);\n\n const scalar = targetSearchTimeMS / rounded;\n searchStride = Math.ceil(searchStride * scalar);\n\n if (rowsSearched < rows && runningResult.length < 1000) {\n searchHandle.current = window.requestAnimationFrame(tick);\n }\n };\n\n cancelSearch();\n searchHandle.current = window.requestAnimationFrame(tick);\n },\n [cancelSearch, columns.length, getCellsForSelection, onSearchResultsChanged, rows]\n );\n\n const onClose = React.useCallback(() => {\n onSearchClose?.();\n setSearchStatus(undefined);\n setSearchResults([]);\n onSearchResultsChanged?.([], -1);\n cancelSearch();\n canvasRef?.current?.focus();\n }, [cancelSearch, canvasRef, onSearchClose, onSearchResultsChanged]);\n\n const onSearchChange = React.useCallback(\n (event: React.ChangeEvent) => {\n setSearchString(event.target.value);\n if (event.target.value === \"\") {\n setSearchStatus(undefined);\n setSearchResults([]);\n cancelSearch();\n } else {\n beginSearch(event.target.value);\n }\n },\n [beginSearch, cancelSearch]\n );\n\n React.useEffect(() => {\n if (showSearch && searchInputRef.current !== null) {\n setSearchString(\"\");\n searchInputRef.current.focus({ preventScroll: true });\n }\n }, [showSearch, searchInputRef]);\n\n const onNext = React.useCallback(\n (ev?: React.MouseEvent) => {\n ev?.stopPropagation?.();\n if (searchStatus === undefined) return;\n const newIndex = (searchStatus.selectedIndex + 1) % searchStatus.results;\n setSearchStatus({\n ...searchStatus,\n selectedIndex: newIndex,\n });\n onSearchResultsChanged?.(searchResults, newIndex);\n },\n [searchStatus, onSearchResultsChanged, searchResults]\n );\n\n const onPrev = React.useCallback(\n (ev?: React.MouseEvent) => {\n ev?.stopPropagation?.();\n if (searchStatus === undefined) return;\n let newIndex = (searchStatus.selectedIndex - 1) % searchStatus.results;\n if (newIndex < 0) newIndex += searchStatus.results;\n setSearchStatus({\n ...searchStatus,\n selectedIndex: newIndex,\n });\n onSearchResultsChanged?.(searchResults, newIndex);\n },\n [onSearchResultsChanged, searchResults, searchStatus]\n );\n\n const onSearchKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (((event.ctrlKey || event.metaKey) && event.nativeEvent.code === \"KeyF\") || event.key === \"Escape\") {\n onClose();\n event.stopPropagation();\n event.preventDefault();\n } else if (event.key === \"Enter\") {\n if (event.shiftKey) {\n onPrev();\n } else {\n onNext();\n }\n }\n },\n [onClose, onNext, onPrev]\n );\n\n // cancel search if the component is unmounted\n React.useEffect(() => {\n return () => {\n cancelSearch();\n };\n }, [cancelSearch]);\n\n const searchbox = React.useMemo(() => {\n let resultString: string | undefined;\n if (searchStatus !== undefined) {\n resultString =\n searchStatus.results >= 1000\n ? `over 1000`\n : `${searchStatus.results} result${searchStatus.results !== 1 ? \"s\" : \"\"}`;\n if (searchStatus.selectedIndex >= 0) {\n resultString = `${searchStatus.selectedIndex + 1} of ${resultString}`;\n }\n }\n\n const cancelEvent = (ev: React.MouseEvent) => {\n ev.stopPropagation();\n };\n\n const rowsSearchedProgress = Math.floor(((searchStatus?.rowsSearched ?? 0) / rows) * 100);\n const progressStyle: React.CSSProperties = {\n width: `${rowsSearchedProgress}%`,\n };\n\n return (\n \n
    \n \n \n {upArrow}\n \n \n {downArrow}\n \n {onSearchClose !== undefined && (\n \n {closeX}\n \n )}\n
    \n {searchStatus !== undefined ? (\n <>\n
    \n
    {resultString}
    \n
    \n
    \n \n ) : (\n
    \n \n
    \n )}\n \n );\n }, [\n onClose,\n onNext,\n onPrev,\n onSearchChange,\n onSearchClose,\n onSearchKeyDown,\n rows,\n searchStatus,\n searchString,\n showSearch,\n searchID,\n searchInputRef,\n ]);\n\n return (\n <>\n \n {searchbox}\n \n );\n};\n\nexport default DataGridSearch;\n","import React from \"react\";\nimport { styled } from \"@linaria/react\";\nimport { css } from \"@linaria/core\";\nimport ClickOutsideContainer from \"../click-outside-container/click-outside-container\";\nimport type { Rectangle } from \"../data-grid/data-grid-types\";\n\ninterface Props {\n readonly bounds: Rectangle;\n readonly group: string;\n readonly onClose: () => void;\n readonly onFinish: (newVal: string) => void;\n readonly canvasBounds: DOMRect;\n}\n\nconst RenameInput = styled.input<{ targetHeight: number }>`\n flex-grow: 1;\n border: none;\n outline: none;\n background-color: var(--gdg-bg-header-has-focus);\n border-radius: 9px;\n padding: 0 8px;\n box-shadow: 0 0 0 1px var(--gdg-border-color);\n color: var(--gdg-text-group-header);\n min-height: ${p => Math.max(16, p.targetHeight - 10)}px;\n font: var(--gdg-header-font-style) var(--gdg-font-family);\n`;\n\nexport const GroupRename: React.VFC = p => {\n const { bounds, group, onClose, canvasBounds, onFinish } = p;\n\n const [value, setValue] = React.useState(group);\n\n return (\n \n e.target.setSelectionRange(0, value.length)}\n onChange={e => setValue(e.target.value)}\n onKeyDown={e => {\n if (e.key === \"Enter\") {\n onFinish(value);\n } else if (e.key === \"Escape\") {\n onClose();\n }\n }}\n autoFocus={true}\n />\n \n );\n};\n","import * as React from \"react\";\nimport type { Theme } from \"../common/styles\";\nimport type { DataGridSearchProps } from \"../data-grid-search/data-grid-search\";\nimport type { GetCellRendererCallback } from \"../data-grid/cells/cell-types\";\nimport {\n CellArray,\n GridCell,\n GridCellKind,\n GridColumn,\n InnerGridColumn,\n isSizedGridColumn,\n resolveCellsThunk,\n SizedGridColumn,\n} from \"../data-grid/data-grid-types\";\n\nconst defaultSize = 150;\n\nfunction measureCell(\n ctx: CanvasRenderingContext2D,\n cell: GridCell,\n theme: Theme,\n getCellRenderer: GetCellRendererCallback\n): number {\n if (cell.kind === GridCellKind.Custom) return defaultSize;\n\n const r = getCellRenderer(cell);\n return r?.measure?.(ctx, cell, theme) ?? defaultSize;\n}\n\nexport function measureColumn(\n ctx: CanvasRenderingContext2D,\n theme: Theme,\n c: GridColumn,\n colIndex: number,\n selectedData: CellArray,\n minColumnWidth: number,\n maxColumnWidth: number,\n removeOutliers: boolean,\n getCellRenderer: GetCellRendererCallback\n): SizedGridColumn {\n let sizes: number[] = [];\n if (selectedData !== undefined) {\n sizes.push(\n ...selectedData.map(row => row[colIndex]).map(cell => measureCell(ctx, cell, theme, getCellRenderer))\n );\n }\n if (sizes.length > 5 && removeOutliers) {\n // Filter out outliers\n const average = sizes.reduce((a, b) => a + b) / sizes.length;\n sizes = sizes.filter(a => a < average * 2);\n }\n sizes.push(ctx.measureText(c.title).width + 16 + (c.icon === undefined ? 0 : 28));\n const biggest = Math.max(...sizes);\n const final = Math.max(Math.ceil(minColumnWidth), Math.min(Math.floor(maxColumnWidth), Math.ceil(biggest)));\n\n return {\n ...c,\n width: final,\n };\n}\n\n/** @category Hooks */\nexport function useColumnSizer(\n columns: readonly GridColumn[],\n rows: number,\n getCellsForSelection: DataGridSearchProps[\"getCellsForSelection\"],\n clientWidth: number,\n minColumnWidth: number,\n maxColumnWidth: number,\n theme: Theme,\n getCellRenderer: GetCellRendererCallback,\n abortController: AbortController\n): readonly InnerGridColumn[] {\n const rowsRef = React.useRef(rows);\n const getCellsForSelectionRef = React.useRef(getCellsForSelection);\n const themeRef = React.useRef(theme);\n rowsRef.current = rows;\n getCellsForSelectionRef.current = getCellsForSelection;\n themeRef.current = theme;\n\n const [ctx] = React.useState(() => {\n if (typeof window === undefined) return null;\n const offscreen = document.createElement(\"canvas\");\n offscreen.style[\"display\"] = \"none\";\n offscreen.style[\"opacity\"] = \"0\";\n offscreen.style[\"position\"] = \"fixed\";\n document.documentElement.append(offscreen);\n return offscreen.getContext(\"2d\", { alpha: false });\n });\n\n const memoMap = React.useRef>({});\n\n const lastColumns = React.useRef();\n const [selectedData, setSelectionData] = React.useState();\n\n React.useLayoutEffect(() => {\n const getCells = getCellsForSelectionRef.current;\n if (getCells === undefined || columns.every(isSizedGridColumn)) return;\n let computeRows = Math.max(1, 10 - Math.floor(columns.length / 10_000));\n let tailRows = 0;\n if (computeRows < rowsRef.current && computeRows > 1) {\n computeRows--;\n tailRows = 1;\n }\n\n const computeArea = {\n x: 0,\n y: 0,\n width: columns.length,\n height: Math.min(rowsRef.current, computeRows),\n };\n\n const tailComputeArea = {\n x: 0,\n y: rowsRef.current - 1,\n width: columns.length,\n height: 1,\n };\n const fn = async () => {\n const getResult = getCells(computeArea, abortController.signal);\n const tailGetResult = tailRows > 0 ? getCells(tailComputeArea, abortController.signal) : undefined;\n let toSet: CellArray;\n // eslint-disable-next-line unicorn/prefer-ternary\n if (typeof getResult === \"object\") {\n toSet = getResult;\n } else {\n toSet = await resolveCellsThunk(getResult);\n }\n if (tailGetResult !== undefined) {\n // eslint-disable-next-line unicorn/prefer-ternary\n if (typeof tailGetResult === \"object\") {\n toSet = [...toSet, ...tailGetResult];\n } else {\n toSet = [...toSet, ...(await resolveCellsThunk(tailGetResult))];\n }\n }\n lastColumns.current = columns;\n setSelectionData(toSet);\n };\n void fn();\n }, [abortController.signal, columns]);\n\n return React.useMemo(() => {\n const getRaw = () => {\n if (columns.every(isSizedGridColumn)) {\n return columns;\n }\n\n if (ctx === null) {\n return columns.map(c => {\n if (isSizedGridColumn(c)) return c;\n\n return {\n ...c,\n width: defaultSize,\n };\n });\n }\n\n ctx.font = `${themeRef.current.baseFontStyle} ${themeRef.current.fontFamily}`;\n\n return columns.map((c, colIndex) => {\n if (isSizedGridColumn(c)) return c;\n\n if (memoMap.current[c.id] !== undefined) {\n return {\n ...c,\n width: memoMap.current[c.id],\n };\n }\n\n if (selectedData === undefined || lastColumns.current !== columns || c.id === undefined) {\n return {\n ...c,\n width: defaultSize,\n };\n }\n\n const r = measureColumn(\n ctx,\n theme,\n c,\n colIndex,\n selectedData,\n minColumnWidth,\n maxColumnWidth,\n true,\n getCellRenderer\n );\n memoMap.current[c.id] = r.width;\n return r;\n });\n };\n\n let result: readonly InnerGridColumn[] = getRaw();\n let totalWidth = 0;\n let totalGrow = 0;\n const distribute: number[] = [];\n for (const [i, c] of result.entries()) {\n totalWidth += c.width;\n if (c.grow !== undefined && c.grow > 0) {\n totalGrow += c.grow;\n distribute.push(i);\n }\n }\n if (totalWidth < clientWidth && distribute.length > 0) {\n const writeable = [...result];\n const extra = clientWidth - totalWidth;\n let remaining = extra;\n for (let di = 0; di < distribute.length; di++) {\n const i = distribute[di];\n const weighted = (result[i].grow ?? 0) / totalGrow;\n const toAdd =\n di === distribute.length - 1 ? remaining : Math.min(remaining, Math.floor(extra * weighted));\n writeable[i] = {\n ...result[i],\n growOffset: toAdd,\n width: result[i].width + toAdd,\n };\n remaining -= toAdd;\n }\n result = writeable;\n }\n return result;\n }, [clientWidth, columns, ctx, selectedData, theme, minColumnWidth, maxColumnWidth, getCellRenderer]);\n}\n","import type { GridKeyEventArgs } from \"../data-grid/data-grid-types\";\nimport { browserIsOSX } from \"./browser-detect\";\n\n// brain dead syntax, find your deps, and make buggy replacements with 5 times the effort\n// all lower case\n// ctrl+shift+alt+d or ctrl+x or shift+c or shift+Backspace or alt+_53\n// you get it, last one is always event.key, nothing fancy\n// special: primary === ctrl on windows, meta on mac\n// no to lower, its a waste, we're the only consumer, don't use caps\n\n// and before you ask, yes space is \" \", e.g. \"ctrl+alt+ \", whatacountry.gif\n// load bearing whitespace, it's basically python\n// if the char starts with a _ it is the event.keycode instead\nfunction checkKey(key: string | undefined, args: GridKeyEventArgs): boolean {\n if (key === undefined) return false;\n if (key.length > 1 && key.startsWith(\"_\")) {\n const keycode = Number.parseInt(key.slice(1));\n if (keycode !== args.keyCode) return false;\n } else {\n if (key !== args.key) return false;\n }\n return true;\n}\nexport function isHotkey(hotkey: string, args: GridKeyEventArgs): boolean {\n if (hotkey.length === 0) return false;\n let wantCtrl = false;\n let wantShift = false;\n let wantAlt = false;\n let wantMeta = false;\n const split = hotkey.split(\"+\");\n const key = split.pop();\n if (!checkKey(key, args)) return false;\n for (const accel of split) {\n switch (accel) {\n case \"ctrl\":\n wantCtrl = true;\n break;\n case \"shift\":\n wantShift = true;\n break;\n case \"alt\":\n wantAlt = true;\n break;\n case \"meta\":\n wantMeta = true;\n break;\n case \"primary\":\n if (browserIsOSX.value) {\n wantMeta = true;\n } else {\n wantCtrl = true;\n }\n break;\n }\n }\n\n return (\n args.altKey === wantAlt && args.ctrlKey === wantCtrl && args.shiftKey === wantShift && args.metaKey === wantMeta\n );\n}\n","import { assertNever } from \"../common/support\";\nimport type { DataGridSearchProps } from \"../data-grid-search/data-grid-search\";\nimport {\n BooleanEmpty,\n BooleanIndeterminate,\n GridCell,\n GridCellKind,\n GridSelection,\n Rectangle,\n} from \"../data-grid/data-grid-types\";\n\nexport function expandSelection(\n newVal: GridSelection,\n getCellsForSelection: DataGridSearchProps[\"getCellsForSelection\"],\n rowMarkerOffset: number,\n spanRangeBehavior: \"allowPartial\" | \"default\",\n abortController: AbortController\n): GridSelection {\n const origVal = newVal;\n if (spanRangeBehavior === \"allowPartial\" || newVal.current === undefined) return newVal;\n if (getCellsForSelection !== undefined) {\n let isFilled = false;\n do {\n if (newVal?.current === undefined) break;\n const r: Rectangle = newVal.current?.range;\n const cells: (readonly GridCell[])[] = [];\n if (r.width > 2) {\n const leftCells = getCellsForSelection(\n {\n x: r.x,\n y: r.y,\n width: 1,\n height: r.height,\n },\n abortController.signal\n );\n\n if (typeof leftCells === \"function\") {\n return origVal;\n }\n\n cells.push(...leftCells);\n\n const rightCells = getCellsForSelection(\n {\n x: r.x + r.width - 1,\n y: r.y,\n width: 1,\n height: r.height,\n },\n abortController.signal\n );\n\n if (typeof rightCells === \"function\") {\n return origVal;\n }\n\n cells.push(...rightCells);\n } else {\n const rCells = getCellsForSelection(\n {\n x: r.x,\n y: r.y,\n width: r.width,\n height: r.height,\n },\n abortController.signal\n );\n if (typeof rCells === \"function\") {\n return origVal;\n }\n cells.push(...rCells);\n }\n\n let left = r.x - rowMarkerOffset;\n let right = r.x + r.width - 1 - rowMarkerOffset;\n for (const row of cells) {\n for (const cell of row) {\n if (cell.span === undefined) continue;\n left = Math.min(cell.span[0], left);\n right = Math.max(cell.span[1], right);\n }\n }\n\n if (left === r.x - rowMarkerOffset && right === r.x + r.width - 1 - rowMarkerOffset) {\n isFilled = true;\n } else {\n newVal = {\n current: {\n cell: newVal.current.cell ?? [0, 0],\n range: {\n x: left + rowMarkerOffset,\n y: r.y,\n width: right - left + 1,\n height: r.height,\n },\n rangeStack: newVal.current.rangeStack,\n },\n columns: newVal.columns,\n rows: newVal.rows,\n };\n }\n } while (!isFilled);\n }\n return newVal;\n}\n\nfunction descape(s: string): string {\n if (s.startsWith('\"') && s.endsWith('\"')) {\n s = s.slice(1, -1).replace(/\"\"/g, '\"');\n }\n return s;\n}\n\nexport function unquote(str: string): string[][] {\n const enum State {\n None,\n inString,\n inStringPostQuote,\n }\n\n const result: string[][] = [];\n let current: string[] = [];\n\n let start = 0;\n let state = State.None;\n str = str.replace(/\\r\\n/g, \"\\n\");\n let index = 0;\n for (const char of str) {\n switch (state) {\n case State.None:\n if (char === \"\\t\" || char === \"\\n\") {\n current.push(str.slice(start, index));\n start = index + 1;\n\n if (char === \"\\n\") {\n result.push(current);\n current = [];\n }\n } else if (char === `\"`) {\n state = State.inString;\n }\n break;\n case State.inString:\n if (char === `\"`) {\n state = State.inStringPostQuote;\n }\n break;\n case State.inStringPostQuote:\n if (char === '\"') {\n state = State.inString;\n } else if (char === \"\\t\" || char === \"\\n\") {\n current.push(descape(str.slice(start, index)));\n start = index + 1;\n\n if (char === \"\\n\") {\n result.push(current);\n current = [];\n }\n state = State.None;\n } else {\n state = State.None;\n }\n break;\n }\n\n index++;\n }\n if (start < str.length) {\n current.push(descape(str.slice(start, str.length)));\n }\n result.push(current);\n return result;\n}\n\nexport function decodeHTML(tableEl: HTMLTableElement): string[][] | undefined {\n const walkEl: Element[] = [tableEl];\n const result: string[][] = [];\n let current: string[] | undefined;\n\n while (walkEl.length > 0) {\n const el = walkEl.pop();\n\n if (el === undefined) break;\n\n if (el instanceof HTMLTableElement || el.nodeName === \"TBODY\") {\n walkEl.push(...[...el.children].reverse());\n } else if (el instanceof HTMLTableRowElement) {\n if (current !== undefined) {\n result.push(current);\n }\n current = [];\n walkEl.push(...[...el.children].reverse());\n } else if (el instanceof HTMLTableCellElement) {\n current?.push(el.innerText ?? el.textContent ?? \"\");\n }\n }\n\n if (current !== undefined) {\n result.push(current);\n }\n\n return result;\n}\n\nfunction escape(str: string): string {\n if (/[\\t\\n\"]/.test(str)) {\n str = `\"${str.replace(/\"/g, '\"\"')}\"`;\n }\n return str;\n}\n\nconst formatBoolean = (val: boolean | BooleanEmpty | BooleanIndeterminate): string => {\n switch (val) {\n case true:\n return \"TRUE\";\n\n case false:\n return \"FALSE\";\n\n case BooleanIndeterminate:\n return \"INDETERMINATE\";\n\n case BooleanEmpty:\n return \"\";\n\n default:\n assertNever(val);\n }\n};\n\nexport function copyToClipboard(\n cells: readonly (readonly GridCell[])[],\n columnIndexes: readonly number[],\n e?: ClipboardEvent\n) {\n const formatCell = (cell: GridCell, index: number, raw: boolean): string => {\n const colIndex = columnIndexes[index];\n if (cell.span !== undefined && cell.span[0] !== colIndex) return \"\";\n switch (cell.kind) {\n case GridCellKind.Text:\n case GridCellKind.Number:\n return escape(raw ? cell.data?.toString() ?? \"\" : cell.displayData);\n case GridCellKind.Markdown:\n case GridCellKind.RowID:\n case GridCellKind.Uri:\n return escape(cell.data);\n case GridCellKind.Image:\n case GridCellKind.Bubble:\n return cell.data.reduce((pv, cv) => `${escape(pv)},${escape(cv)}`);\n case GridCellKind.Boolean:\n return formatBoolean(cell.data);\n case GridCellKind.Loading:\n return raw ? \"\" : \"#LOADING\";\n case GridCellKind.Protected:\n return raw ? \"\" : \"************\";\n case GridCellKind.Drilldown:\n return cell.data.map(i => i.text).reduce((pv, cv) => `${escape(pv)},${escape(cv)}`);\n case GridCellKind.Custom:\n return escape(cell.copyData);\n default:\n assertNever(cell);\n }\n };\n\n const str = cells.map(row => row.map((a, b) => formatCell(a, b, false)).join(\"\\t\")).join(\"\\n\");\n\n if (window.navigator.clipboard?.write !== undefined || e !== undefined) {\n const rootEl = document.createElement(\"tbody\");\n\n for (const row of cells) {\n const rowEl = document.createElement(\"tr\");\n\n for (const [i, cell] of row.entries()) {\n const cellEl = document.createElement(\"td\");\n if (cell.kind === GridCellKind.Uri) {\n const link = document.createElement(\"a\");\n link.href = cell.data;\n link.innerText = cell.data;\n cellEl.append(link);\n } else {\n cellEl.innerText = formatCell(cell, i, true);\n }\n rowEl.append(cellEl);\n }\n\n rootEl.append(rowEl);\n }\n if (window.navigator.clipboard?.write !== undefined) {\n void window.navigator.clipboard.write([\n new ClipboardItem({\n \"text/plain\": new Blob([str], { type: \"text/plain\" }),\n \"text/html\": new Blob([`${rootEl.outerHTML}
    `], { type: \"text/html\" }),\n }),\n ]);\n } else if (e !== undefined && e?.clipboardData !== null) {\n try {\n // This might fail if we had to await the thunk\n e.clipboardData.setData(\"text/plain\", str);\n e.clipboardData.setData(\"text/html\", `${rootEl.outerHTML}
    `);\n } catch {\n void window.navigator.clipboard?.writeText(str);\n }\n }\n } else {\n void window.navigator.clipboard?.writeText(str);\n }\n\n e?.preventDefault();\n}\n","import { styled } from \"@linaria/react\";\nimport * as React from \"react\";\n\ninterface WrapperProps {\n inWidth: number | string;\n inHeight: number | string;\n}\n\nfunction toCss(x: number | string) {\n if (typeof x === \"string\") return x;\n return `${x}px`;\n}\n\nconst Wrapper = styled.div<{ innerWidth: string; innerHeight: string }>`\n position: relative;\n\n min-width: 10px;\n min-height: 10px;\n max-width: 100%;\n max-height: 100%;\n\n width: ${p => p.innerWidth};\n height: ${p => p.innerHeight};\n\n overflow: hidden;\n overflow: clip;\n\n contain: strict;\n\n > :first-child {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n }\n`;\n\ninterface Props extends WrapperProps, React.HTMLAttributes {}\n\nexport const DataEditorContainer: React.FunctionComponent> = p => {\n const { inWidth, inHeight, children, ...rest } = p;\n return (\n \n {children}\n \n );\n};\n","import { drawBoolean } from \"../data-grid-lib\";\nimport {\n GridCellKind,\n BooleanCell,\n booleanCellIsEditable,\n BooleanEmpty,\n BooleanIndeterminate,\n} from \"../data-grid-types\";\nimport type { InternalCellRenderer } from \"./cell-types\";\n\n/**\n * Checkbox behavior:\n *\n * true + click -> unchecked\n * false + click -> checked\n * indeterminate + click -> checked\n * empty + click -> checked\n */\nexport function toggleBoolean(data: boolean | null | undefined): boolean | null | undefined {\n return data !== true;\n}\n\nexport const booleanCellRenderer: InternalCellRenderer = {\n getAccessibilityString: c => c.data?.toString() ?? \"false\",\n kind: GridCellKind.Boolean,\n needsHover: true,\n useLabel: false,\n needsHoverPosition: true,\n measure: () => 50,\n draw: a => drawBoolean(a, a.cell.data, booleanCellIsEditable(a.cell)),\n onDelete: c => ({\n ...c,\n data: false,\n }),\n onClick: e => {\n const { cell, posX: x, posY: y, bounds } = e;\n if (\n booleanCellIsEditable(cell) &&\n Math.abs(x - bounds.width / 2) <= bounds.height / 3.4 &&\n Math.abs(y - bounds.height / 2) <= bounds.height / 3.4\n ) {\n return {\n ...cell,\n data: toggleBoolean(cell.data),\n };\n }\n return undefined;\n },\n onPaste: (toPaste, cell) => {\n let newVal: boolean | BooleanEmpty | BooleanIndeterminate = BooleanEmpty;\n if (toPaste.toLowerCase() === \"true\") {\n newVal = true;\n } else if (toPaste.toLowerCase() === \"false\") {\n newVal = false;\n } else if (toPaste.toLowerCase() === \"indeterminate\") {\n newVal = BooleanIndeterminate;\n }\n return newVal === cell.data\n ? undefined\n : {\n ...cell,\n data: newVal,\n };\n },\n};\n","import { styled } from \"@linaria/react\";\n\nexport const BubblesOverlayEditorStyle = styled.div`\n display: flex;\n flex-wrap: wrap;\n\n .boe-bubble {\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: 100px;\n\n padding: 0 8px;\n height: 20px;\n\n background-color: var(--gdg-bg-bubble);\n color: var(--gdg-text-dark);\n margin: 2px;\n }\n\n textarea {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 0px;\n height: 0px;\n\n opacity: 0;\n }\n`;\n","import * as React from \"react\";\nimport { BubblesOverlayEditorStyle } from \"./bubbles-overlay-editor-style\";\n\ninterface Props {\n readonly bubbles: readonly string[];\n}\n\nconst BubblesOverlayEditor: React.FunctionComponent = p => {\n const { bubbles } = p;\n return (\n \n {bubbles.map((b, i) => (\n
    \n {b}\n
    \n ))}\n