From 68d9c54fcf87f7f7d718e5011c22e70c32fce64e Mon Sep 17 00:00:00 2001 From: tdurieux Date: Thu, 10 Sep 2026 18:04:56 +0200 Subject: [PATCH] fix: keep GitHub access controls beside the source URL --- public/asset-manifest.json | 4 +-- public/css/all.min.css | 2 +- public/css/style.css | 37 ++++++++++++++--------- public/partials/anonymize.htm | 56 ++++++++++++++++++++++++----------- public/script/app.js | 9 +++++- public/script/vendor.min.js | 38 ++++++++++++------------ test/vue-ui.test.js | 11 +++++++ 7 files changed, 103 insertions(+), 54 deletions(-) diff --git a/public/asset-manifest.json b/public/asset-manifest.json index 9c6cfae..c003a38 100644 --- a/public/asset-manifest.json +++ b/public/asset-manifest.json @@ -1,8 +1,8 @@ { "core.min.js": "core.c5bd53363a.min.js", - "vendor.min.js": "vendor.0155114e4b.min.js", + "vendor.min.js": "vendor.cc9fc42458.min.js", "mermaid.min.js": "mermaid.f848a72d16.min.js", - "all.min.css": "all.6a5e0ae79b.min.css", + "all.min.css": "all.87fb103470.min.css", "markdown.min.js": "markdown.ad7b1d71c3.min.js", "pdf.min.js": "pdf.eaa7573247.min.js", "notebook.min.js": "notebook.8844e2735f.min.js", diff --git a/public/css/all.min.css b/public/css/all.min.css index d51c4cb..ce134a1 100644 --- a/public/css/all.min.css +++ b/public/css/all.min.css @@ -6,4 +6,4 @@ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*! * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.nb-notebook{line-height:1.5}.nb-stderr,.nb-stdout{white-space:pre-wrap;margin:1em 0;padding:.1em .5em}.nb-stderr{background-color:#faa}.nb-cell+.nb-cell{margin-top:.5em}.nb-output table{border:1px solid #000;border-collapse:collapse}.nb-output th{font-weight:700}.nb-output td,.nb-output th{border:1px solid #000;padding:.25em;text-align:left;vertical-align:middle;border-collapse:collapse}.nb-notebook blockquote{border-left:5px solid #ccc;margin-left:0;padding-left:1em}.nb-cell{position:relative}.nb-raw-cell{white-space:pre-wrap;background-color:#f5f2f0;font-family:Consolas,Monaco,'Andale Mono',monospace;padding:1em;margin:.5em 0}.nb-output{min-height:1em;width:100%;overflow-x:scroll;border-right:1px dotted #ccc}.nb-output img{max-width:100%}.nb-input:before,.nb-output:before{position:absolute;font-family:monospace;color:#999;left:-7.5em;width:7em;text-align:right}.nb-input:before{content:"In [" attr(data-prompt-number) "]:"}.nb-output:before{content:"Out [" attr(data-prompt-number) "]:"}// Fix pandas dataframe formatting div[style="max-height:1000px;max-width:1500px;overflow:auto;"]{max-height:none!important}@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.10"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.mermaid{text-align:center;margin:1em 0;overflow:auto}.mermaid svg{max-width:100%;height:auto}.dark-mode .mermaid{filter:invert(1) hue-rotate(180deg)}.dark-mode .mermaid svg{background:0 0}.dark-mode .mermaid .edgeLabel,.dark-mode .mermaid .nodeLabel{filter:invert(1) hue-rotate(180deg)}.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon,.mermaid .node rect{stroke-width:2px}.mermaid .flowchart-link{stroke-width:2px}.mermaid .actor{fill:#f9f9f9;stroke:#333;stroke-width:2px}.mermaid .messageLine0,.mermaid .messageLine1{stroke:#333;stroke-width:1.5px}.mermaid .section0,.mermaid .section1,.mermaid .section2,.mermaid .section3{opacity:.8}.mermaid .pieChart .slice{opacity:.9}.markdown-body .mermaid{background:0 0;border:none;padding:10px}.mermaid .error{color:#d32f2f;font-family:monospace;font-size:12px;padding:10px;border:1px solid #d32f2f;border-radius:4px;background-color:#ffebee}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff')}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.5;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2::before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent;-webkit-text-decoration-skip:objects}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit}.markdown-body strong{font-weight:bolder}.markdown-body h1{font-size:2em;margin:.67em 0}.markdown-body img{border-style:none}.markdown-body svg:not(:root){overflow:hidden}.markdown-body hr{box-sizing:content-box;height:0;overflow:visible}.markdown-body input{font:inherit;margin:0}.markdown-body input{overflow:visible}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:0 0;border:0;border-bottom:1px solid #dfe2e5}.markdown-body hr::before{display:table;content:""}.markdown-body hr::after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:0}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body code{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.dark-mode{--canvas-bg-color:#1B1916;--sidebar-bg-color:#1A1918;--main-bg-color:#1B1916;--header-bg-color:#1A1918;--hover-bg-color:rgba(255, 255, 255, 0.05);--header-color:#FAF9F6;--color:#D6D1C5;--link-color:#A7B2FF;--link-hover-color:#C8CEFF;--border-color:#33302B;--border-soft:#2A2825;--btn-color:#FAF9F6;--input-color:#E6E1D8;--input-bg:#25231F;--primary-bg:#FAF9F6;--primary-hover-bg:#FFFFFF;--primary-color:#1A1815;--primary-active-color:#1A1815;--accent:#A7B2FF;--accent-soft:rgba(167, 178, 255, 0.12);--ink-muted:#A39D92;--ink-faint:#8A857C;--ink-soft:#B5AFA2;--status-ready:#5FB27A;--status-progress:#E0A94A;--status-error:#F08A82;--status-inactive:#8A857C;--status-error-soft:rgba(240, 138, 130, 0.08);--status-error-soft-hover:rgba(240, 138, 130, 0.14);--admin-nav-bg:#1A1918;--admin-nav-active:rgba(167, 178, 255, 0.12);--admin-stat-bg:#25231F;--paper-card:#25231F;--paper-bg-alt:#201E1B;--highlight:#3A341E;background-color:var(--canvas-bg-color);color:var(--color)}body{--canvas-bg-color:#FAF9F6;--sidebar-bg-color:#FFFFFF;--header-bg-color:#FAF9F6;--header-color:#1A1815;--main-bg-color:#FAF9F6;--hover-bg-color:rgba(26, 24, 21, 0.05);--input-color:#1A1815;--color:#1A1815;--link-color:#3B4AD6;--link-hover-color:#2E3BB8;--border-color:#E6E1D8;--border-soft:#EDE9E1;--btn-color:#1A1815;--input-bg:#FFFFFF;--primary-bg:#1A1815;--primary-hover-bg:#000000;--primary-color:#FAF9F6;--primary-active-color:#FAF9F6;--accent:#3B4AD6;--accent-soft:#EEF0FF;--ink-muted:#6F6A61;--ink-faint:#8A857C;--ink-soft:#4A4641;--paper-bg-alt:#F3F1EC;--paper-card:#FFFFFF;--highlight:#FFF3C4;--status-ready:#2F7A44;--status-progress:#946512;--status-error:#B42318;--status-inactive:#8A857C;--status-error-soft:rgba(180, 35, 24, 0.04);--status-error-soft-hover:rgba(180, 35, 24, 0.08);--radius-control:6px;--radius-surface:10px;--font-serif:'Instrument Serif','Iowan Old Style',Georgia,serif;--font-sans:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;--font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;background-color:var(--canvas-bg-color);color:var(--color);font-family:var(--font-sans);font-size:14px;letter-spacing:-.005em;line-height:1.5}.fadeIn{opacity:1;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:.6s}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}.btn:active,.btn:focus{box-shadow:none}:focus:not(:focus-visible){outline:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:focus-visible,.dropdown-item:focus-visible,.form-control:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}input:active,input:hover{box-shadow:none!important}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{border-color:var(--border-color);-webkit-text-fill-color:var(--color);-webkit-box-shadow:none;transition:background-color 1000s ease-in-out 0s}.custom-select,.form-control,input:-internal-autofill-selected{color:var(--input-color);background-color:var(--input-bg)!important;border-color:var(--border-color)}.form-control:focus{border-color:var(--border-color)}body,html{position:relative;height:100%;overflow-x:hidden}body{overflow-y:hidden}#app{flex:1 1 auto;min-height:0}.app-header{flex:0 0 auto}.app-view{display:block;flex:1 1 auto;min-height:0;overflow-x:hidden!important;overflow-y:auto!important;max-width:100%}.markdown-body a,a{color:var(--link-color)}.markdown-body a:hover,a:hover{text-decoration:none;color:var(--link-hover-color)}.dropdown-menu a.dropdown-item{color:var(--color)}.dropdown-menu a.dropdown-item:hover{color:var(--color);text-decoration:none}.markdown-body .emoji{height:1.3em;margin:0;vertical-align:-.1em}.navbar.navbar-expand-lg{background:var(--header-bg-color)!important;border-bottom:1px solid var(--border-color);transition:background-color .5s ease;padding:10px max(20px,calc((100vw - 1200px)/ 2));font-family:var(--font-sans)}.navbar-toggler{border:1px solid var(--border-color)!important;color:var(--color)!important}.navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}.navbar .navbar-nav{align-items:center}.navbar .nav-link{display:inline-flex;align-items:center;font-size:13px;color:var(--ink-muted)!important;padding:6px 0!important;margin:0 12px;border-bottom:1px solid transparent;letter-spacing:-.005em;line-height:1}.navbar .nav-link:hover{color:var(--color)!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--color)}.navbar .nav-link.nav-icon{padding:0!important;margin:0 8px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:15px;line-height:1}.navbar #navbarSupportedContent{align-items:center}.navbar-brand{font-family:var(--font-serif)!important;font-size:20px!important;letter-spacing:-.01em;color:var(--color)!important;padding-right:18px;margin-right:12px;border-right:1px solid var(--border-color)}.navbar-brand em,.navbar-brand i{font-style:italic;font-weight:400}.navbar-dark .navbar-toggler{border-color:var(--border-color);color:var(--color)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar .btn-signin{display:inline-flex;align-items:center;height:32px;padding:0 14px!important;margin-left:6px;border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color)!important;border-radius:6px;font-size:13px;font-weight:500;line-height:1}.navbar .btn-signin:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color)!important}.navbar .user-chip{display:inline-flex!important;align-items:center;gap:8px;padding:4px 12px 4px 6px!important;margin-left:6px;border:1px solid var(--border-color);border-radius:999px;background:var(--sidebar-bg-color);font-size:12.5px;color:var(--color)!important}.navbar .user-chip:hover{background:var(--hover-bg-color)}.navbar .user-chip img{width:22px;height:22px}.navbar .user-chip .user-chip-name{color:var(--color);font-weight:500}.navbar .user-chip::after{color:var(--ink-muted)}#navbarSupportedContent{padding-right:0}.generalMessage{display:block;text-align:center;color:var(--header-color)}.rgba-gradient{background:var(--canvas-bg-color);color:var(--color)}.paper-landing{overflow-x:clip}.paper-wrap{max-width:1140px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}.paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500}.paper-hero{max-width:1140px;margin:0 auto;padding:64px 32px 0;display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}.paper-hero h1.hero-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:14px 0 0;color:var(--color);text-wrap:balance}.paper-hero h1 .accent{color:var(--accent);font-style:italic}.hero-subtitle{margin-top:18px;font-size:17px;line-height:1.55;color:var(--ink-soft);max-width:30em;text-wrap:pretty}.paper-cta-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:26px}.btn-hero{display:inline-flex;align-items:center;font-family:var(--font-sans);border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control);letter-spacing:-.005em;transition:background .15s,border-color .15s,transform .1s}.btn-hero:hover{background:var(--primary-hover-bg);border-color:var(--primary-hover-bg);color:var(--canvas-bg-color);text-decoration:none;transform:translateY(-1px)}.btn-hero-ghost{background:0 0;border:1px solid var(--border-color);color:var(--color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control)}.btn-hero-ghost:hover{background:var(--hover-bg-color);border-color:var(--color);color:var(--color)}.paper-link-arrow{font-size:14px;color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--border-color)}.paper-link-arrow:hover{color:var(--color);text-decoration-color:var(--color)}.paper-reassure{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink-muted)}.paper-reassure li::before{content:"\2713";color:var(--status-ready);margin-right:6px;font-size:11px}.paper-frame{border-radius:var(--radius-surface);background:var(--paper-card);border:1px solid var(--border-color);box-shadow:0 24px 60px rgba(26,24,21,.1),0 2px 6px rgba(26,24,21,.04);overflow:hidden}.dark-mode .paper-frame{box-shadow:0 24px 60px rgba(0,0,0,.45)}.paper-frame-bar{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-bottom:1px solid var(--border-soft);background:var(--paper-bg-alt);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted)}.paper-frame-bar .dots{display:flex;gap:5px}.paper-frame-bar .dots i{width:8px;height:8px;border-radius:50%;background:var(--border-color)}.paper-frame-bar .url{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-frame img{display:block;width:100%;height:auto}.paper-hero-shot .paper-frame{width:112%}.paper-proof{margin-top:64px;padding-top:18px;padding-bottom:18px;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px 30px;align-items:center}.paper-proof-venues{display:flex;gap:22px;align-items:center;font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--ink-soft)}.paper-proof-venues i{font-style:normal;font-family:var(--font-sans);font-size:14px;color:var(--ink-faint)}.paper-stats{margin-top:12px;padding-top:22px;border-top:1px solid var(--border-color)}.paper-stats-meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:14px}.paper-stats-meta-right{display:inline-flex;align-items:center;gap:6px}.paper-stats-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-ready)}.paper-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.paper-stat-card{display:flex;flex-direction:column;padding:22px 26px 20px 0;margin-right:26px;border-right:1px solid var(--border-color);min-width:0}.paper-stat-card:last-child{border-right:0;margin-right:0;padding-right:0}.paper-stat-value{font-size:44px;font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--color);font-variant-numeric:tabular-nums}.paper-stat-label{margin-top:6px;font-size:13px;color:var(--ink-soft)}.paper-stat-bars{display:block;width:100%;height:34px;margin-top:18px;overflow:visible}.paper-stat-bars rect{fill:var(--border-color)}.paper-stat-bars rect.is-latest{fill:var(--accent)}.paper-stat-delta{margin-top:10px;font-family:var(--font-mono);font-size:10.5px;color:var(--status-ready)}.paper-section-head{margin-top:110px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}.paper-qa h2,.paper-section-head h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.05;letter-spacing:-.02em;margin:10px 0 0;color:var(--color);text-wrap:balance}.paper-feature-title em,.paper-qa h2 em,.paper-section-head h2 em{font-style:italic;color:var(--accent)}.paper-section-head p{font-size:15px;color:var(--ink-soft);max-width:32em;margin:0;line-height:1.6}.paper-preview{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.paper-preview .pane{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:hidden;min-width:0}.paper-preview .pane-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft)}.paper-preview .pane-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap}.paper-preview .pane-url{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.paper-preview .pane-body{padding:16px 18px;font-family:var(--font-mono);font-size:12.5px;line-height:1.9;color:var(--ink-soft)}.paper-preview .pane-body strong{color:var(--color);font-weight:600}.paper-preview .tok{color:var(--ink-faint)}.paper-preview .redact{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:0 5px}.paper-features{margin-top:28px;padding-top:28px;border-top:1px solid var(--border-color);display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}.paper-features-list{display:flex;flex-direction:column}.paper-feature{border-left:2px solid var(--border-soft);padding:16px 0 16px 20px;transition:border-color .2s}.paper-feature.is-on{border-left-color:var(--color)}.paper-feature-tab{all:unset;display:block;width:100%;cursor:pointer;color:inherit;border-radius:4px}.paper-feature-tab:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.paper-feature-tab .paper-eyebrow{display:block;margin-bottom:6px}.paper-feature-title{display:block;font-family:var(--font-serif);font-size:24px;line-height:1.15;letter-spacing:-.015em;color:var(--ink-muted);transition:color .2s}.paper-feature-title em{color:inherit}.paper-feature-tab:hover .paper-feature-title,.paper-feature.is-on .paper-feature-title{color:var(--color)}.paper-feature.is-on .paper-feature-title em{color:var(--accent)}.paper-feature-more{display:none}.paper-feature.is-on .paper-feature-more{display:block}.paper-feature-more .paper-feature-title-m{display:none}.paper-feature-more p{font-size:14.5px;color:var(--ink-soft);line-height:1.55;margin:10px 0 12px;max-width:30em}.paper-features-stage{min-width:0}.paper-feature-panel{animation:paper-feature-in .25s ease-out}@keyframes paper-feature-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.paper-feature-panel{animation:none}}.paper-crop{position:relative;height:380px;overflow:hidden;background:var(--paper-card)}.paper-crop img{position:absolute;left:0;top:0;max-width:none;height:auto;display:block}.paper-crop-anonymize img{width:150%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:160%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:150%;transform:translate(-6%,-9%)}.paper-qa{margin-top:110px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}.paper-qa h2{margin-bottom:12px}.paper-qa .q{border-top:1px solid var(--border-color);padding:18px 0}.paper-qa .q:last-child{border-bottom:1px solid var(--border-color)}.paper-qa .q a{display:block;font-weight:500;font-size:15px;color:var(--color);margin-bottom:6px}.paper-qa .q a:hover{color:var(--accent);text-decoration:none}.paper-qa .q p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6}@media (max-width:1100px){.paper-hero-shot .paper-frame{width:100%}}@media (max-width:991px){.paper-hero{grid-template-columns:1fr;gap:36px;padding-top:40px}.paper-qa,.paper-section-head{grid-template-columns:1fr;gap:16px}.paper-stats-grid{grid-template-columns:1fr 1fr}.paper-stat-card:nth-child(2n){border-right:0;margin-right:0;padding-right:0}.paper-stat-card:nth-child(-n+2){border-bottom:1px solid var(--border-color)}}@media (max-width:767px){.paper-hero,.paper-wrap{padding-left:20px;padding-right:20px}.paper-hero h1.hero-title{font-size:clamp(2.4rem,11vw,3.25rem)}.hero-subtitle{font-size:16px}.paper-cta-row .btn-hero{width:100%;justify-content:center}.paper-proof{margin-top:48px}.paper-stat-card{padding:18px 16px 16px 0;margin-right:16px}.paper-stat-value{font-size:36px}.paper-qa,.paper-section-head{margin-top:72px}.paper-preview{grid-template-columns:1fr}.paper-preview .pane-body{font-size:11.5px;line-height:1.8}.paper-features{display:flex;flex-wrap:wrap;gap:0;padding-top:0;border-top:0;margin-top:24px}.paper-feature,.paper-features-list,.paper-features-stage{display:contents}.paper-feature-tab{order:1;flex:1 1 0;width:auto;padding:12px 0 10px;border-bottom:2px solid var(--border-color);border-radius:0;text-align:left}.paper-feature.is-on .paper-feature-tab{border-bottom-color:var(--color)}.paper-feature-tab .paper-eyebrow{margin:0;font-size:10.5px;letter-spacing:.08em}.paper-feature-tab .paper-feature-title{display:none}.paper-feature-panel{order:2;width:100%;margin-top:20px;animation:none}.paper-crop{height:240px}.paper-crop-anonymize img{width:230%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:240%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:220%;transform:translate(-3%,-9%)}.paper-feature-more{order:3;width:100%}.paper-feature.is-on .paper-feature-more{margin-top:18px}.paper-feature-more .paper-feature-title-m{display:block;font-size:26px;line-height:1.1}.paper-feature-more p{max-width:none}.paper-footer-inner>.paper-footer-brand{grid-column:1/-1}.paper-footer-foot{flex-direction:column;gap:6px}}.dropdown-menu{background-color:var(--paper-card,var(--main-bg-color))!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:0 12px 28px rgba(26,24,21,.08),0 2px 6px rgba(26,24,21,.05)!important;padding:6px!important;font-family:var(--font-sans);font-size:13px;min-width:11rem}.dropdown-menu .dropdown-item{color:var(--color)!important;padding:7px 10px!important;border-radius:5px;font-size:13px}.dropdown-menu .dropdown-item:focus,.dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.dropdown-menu .dropdown-divider{border-top-color:var(--border-color)!important;margin:4px 2px}.dropdown-menu .dropdown-header{color:var(--ink-muted);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}.body,.file-content,.markdown-body{background-color:var(--main-bg-color)!important;color:var(--color)!important}.markdown-body table tr{background-color:var(--main-bg-color);border-top:1px solid var(--border-color)}.markdown-body table tr:nth-child(2n){background-color:var(--paper-bg-alt)}.markdown-body table td,.markdown-body table th{border:1px solid var(--border-color)}.file-content{padding:4px 7px;text-align:left;min-height:100%}.badge{font-size:75%;font-weight:500;padding:3px 8px;border-radius:10px;vertical-align:middle}.warning-feedback{width:100%;margin-top:.25rem;font-size:80%;color:#dc8e35}.dropdown-item:focus,.dropdown-item:hover{background-color:var(--hover-bg-color)}.card-header .btn,.card-header .btn:focus,.card-header .btn:hover{border:none!important;background:0 0!important}.btn{color:var(--btn-color);border:1px solid var(--border-color);background:0 0;border-radius:4px;white-space:nowrap}.btn:active,.btn:hover{color:var(--btn-color);border:1px solid var(--border-color);background-color:var(--hover-bg-color);box-shadow:none!important}.btn.btn-primary{color:var(--primary-color);background-color:var(--primary-bg)}.btn.btn-primary:active,.btn.btn-primary:hover{color:var(--primary-active-color);background-color:var(--primary-hover-bg)!important}.btn::placeholder{color:var(--color);opacity:1}.white_border{border:1px solid #fff;color:#fff}.leftCol{display:flex;position:relative;flex:0 0 auto;width:100%;z-index:9;flex-direction:column}.card,.leftCol,.sidePanel{background-color:var(--sidebar-bg-color);border:1px solid var(--border-color)}@media (min-width:768px){.leftCol{flex:0 0 310px;width:310px;height:100%}}.leftCol-search{padding:10px 12px 0}.tree-search-box{display:flex;align-items:center;gap:8px;background:var(--canvas-bg-color);border:1px solid var(--border-color);border-radius:8px;padding:7px 10px;transition:border-color .15s}.tree-search-box:focus-within{border-color:var(--ink-muted)}.tree-search-icon{font-size:12px;color:var(--ink-muted);flex-shrink:0}.tree-search-input{flex:1;border:none;outline:0;background:0 0;font-family:var(--font-sans);font-size:13px;color:var(--color);min-width:0}.tree-search-input::placeholder{color:var(--ink-muted)}.tree-search-kbd{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:4px;padding:1px 6px;line-height:1.4;flex-shrink:0}.tree-search-clear{background:0 0;border:none;color:var(--ink-muted);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.tree-search-clear:hover{color:var(--color)}.leftCol-project-header{display:flex;align-items:baseline;justify-content:space-between;padding:12px 14px 4px;gap:8px}.project-name{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-file-count{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);white-space:nowrap;flex-shrink:0}.files{position:relative;display:block;overflow:auto;height:100%;padding:4px 6px}.files ul{list-style:none;margin:0;padding:0}.files li ul{padding-left:8px;margin-left:7px;border-left:1px solid var(--border-color)}.files .folder>ul{display:none}.files .folder.open>ul{display:block}.files .file,.files .folder{position:relative;color:var(--ink-soft);cursor:pointer;word-break:break-all}.files a{display:flex;align-items:center;gap:4px;padding:1px 8px 1px 2px;font-family:var(--font-sans);font-size:13px;color:var(--ink-soft);border-radius:4px;text-decoration:none;line-height:1.5;position:relative}.files a:hover{background:var(--hover-bg-color);color:var(--color);text-decoration:none}.files:focus{outline:0}.files a.tree-focused{background:var(--hover-bg-color);color:var(--color)}.files .file.active>a{background:rgba(128,128,128,.15);color:var(--color)}.files .file.active>a .tree-icon-file{color:#5b7ba5}.files .file.active>a .tree-count{color:var(--ink-muted)}.tree-icon-file,.tree-icon-folder{display:inline-block;flex-shrink:0}.tree-icon-folder{width:14px;height:12px;color:var(--ink-muted);opacity:.75}.tree-icon-folder svg{display:block;width:100%;height:100%;fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.files .folder.open>a .tree-icon-folder{color:#a07d2e;opacity:.9}.files .folder.open>a .tree-icon-folder svg{fill-opacity:.12}.dark-mode .files .folder.open>a .tree-icon-folder{color:#c9a03a}.tree-icon-file{width:16px;font-size:14px;text-align:center;color:#5b7ba5}.dark-mode .files .file.active>a .tree-icon-file,.dark-mode .tree-icon-file{color:#7ba3d0}.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:10px;height:14px;flex-shrink:0;opacity:.6}.tree-toggle::after{content:"";display:block;width:0;height:0;border-style:solid;border-width:3px 0 3px 4.5px;border-color:transparent transparent transparent var(--ink-muted);transition:transform .12s ease}.files .folder.open>a .tree-toggle::after{transform:rotate(90deg)}.tree-spacer{display:inline-block;width:10px;flex-shrink:0}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-count{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);flex-shrink:0;margin-left:auto;padding-left:8px;opacity:.7}.files .folder>a{color:var(--color)}.files .file::before,.files .folder::before{display:none}.files .folder>a::after{display:none}.tree-search-path{color:var(--ink-muted);font-size:11px}.tree-search-empty{padding:16px 12px;color:var(--ink-muted);font-size:12.5px;font-family:var(--font-sans);text-align:center}.leftCol{background:var(--paper-bg-alt,#f3f1ec);border-right:1px solid var(--border-color)}.dark-mode .leftCol{background:var(--sidebar-bg-color)}.status-bar{background:var(--canvas-bg-color);border-bottom:1px solid var(--border-color);padding:10px 14px}.paths .breadcrumb-item,.paths .breadcrumb-item a{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.paths .breadcrumb-item.active,.paths .breadcrumb-item:last-child{color:var(--color)}.paths .breadcrumb-item+.breadcrumb-item::before{content:'/';color:var(--ink-muted)}.last-update{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted);padding:8px 10px;border-top:1px solid var(--border-color);letter-spacing:.02em}.ace_editor{height:100%}.ace_scroller{cursor:default}.status-bar{display:flex;align-items:center;gap:12px;background-color:var(--canvas-bg-color);padding:10px 14px;margin:0;border-bottom:1px solid var(--border-color);border-radius:0;flex-shrink:0}.status-bar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.status-bar-actions .btn{display:inline-flex;align-items:center;gap:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;padding:4px 10px;font-size:12.5px;min-height:30px}.status-bar-actions .btn:hover{background:var(--hover-bg-color);color:var(--color)}.status-bar-actions .btn.btn-active{border-color:currentColor;font-weight:600}.paths{flex:1 1 auto;min-width:0;padding:0;margin:0;background-color:initial;border:none;border-radius:0;align-items:center;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.paths::-webkit-scrollbar{display:none}.paths a{color:var(--color)}.paths .breadcrumb-item{padding-left:3px}.paths .breadcrumb-item::before{padding-right:3px}.content{height:100%;overflow:scroll;padding-top:42px;background-color:var(--main-bg-color);text-align:center}.image-content{max-width:100%;max-height:100%;text-align:center;padding:4px}.pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:0;background-color:var(--main-bg-color)}.pdf-toolbar{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:4px 8px;border-bottom:1px solid var(--border-color,rgba(0,0,0,.12))}.pdf-toolbar-group{display:inline-flex;align-items:center;gap:4px}.pdf-toolbar-right{margin-left:auto}.pdf-toolbar-btn{border:0;background:0 0;color:inherit;padding:4px 8px;border-radius:4px;font-size:13px;line-height:1.2;cursor:pointer}.pdf-toolbar-btn:hover:not(:disabled){background-color:rgba(128,128,128,.18)}.pdf-toolbar-btn:disabled{opacity:.4;cursor:default}.pdf-toolbar-zoom{min-width:52px;font-variant-numeric:tabular-nums}.pdf-toolbar-page{width:3.5em;text-align:right;padding:2px 4px;font-size:13px;color:inherit;background:0 0;border:1px solid var(--border-color,rgba(0,0,0,.2));border-radius:4px}.pdf-toolbar-count{font-size:13px;opacity:.75;font-variant-numeric:tabular-nums}.pdf-pages{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 0}.pdf-viewer-page{margin:0 auto 12px}.pdf-viewer-page canvas{display:block;box-shadow:0 1px 4px rgba(0,0,0,.25)}.pdf-viewer-error{padding:24px;text-align:center;font-weight:700}.html-doc{display:block;height:100%}.html-doc-frame{display:block;width:100%;height:100%;border:0;background-color:#fff}.file-error{font-weight:700;font-size:50px;text-align:center}pdfviewer{display:block;padding:15px}pdfpageviewer{display:block;width:100%;margin-bottom:10px}notebook{display:block;text-align:left;padding:15px}@media (min-width:768px){notebook{padding-left:100px}}.nb-output td,.nb-output th{border:1px solid var(--border-color)!important}.floatingchat-container-wrap{left:auto!important;top:auto!important;bottom:3px!important;height:47px!important;right:3px!important}.floating-chat-kofi-popup-iframe{left:auto!important;top:auto!important;bottom:55px!important;right:10px!important}.paper-faq{max-width:1180px;margin:0 auto;padding:48px 32px 80px;font-family:var(--font-sans)}.paper-faq-hero{padding-bottom:40px;border-bottom:1px solid var(--border-color);margin-bottom:36px}.paper-faq-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:32px}.paper-faq-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.5vw,4.6rem);line-height:1.03;letter-spacing:-.02em;color:var(--color);margin:0 0 22px;max-width:14em}.paper-faq-title em{font-style:italic;color:var(--color)}.paper-faq-lede{color:var(--ink-soft);font-size:17px;line-height:1.55;max-width:38em;margin:0}.paper-faq-lede a{color:var(--color);border-bottom:1px solid var(--color)}.paper-faq-lede a:hover{color:var(--accent);border-bottom-color:var(--accent)}.paper-faq-body{display:grid;grid-template-columns:220px 1fr;gap:60px;align-items:start}.paper-faq-toc{position:sticky;top:32px;font-size:13.5px}.paper-faq-toc-head{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--border-color)}.paper-faq-toc nav{display:flex;flex-direction:column}.paper-faq-toc nav a{color:var(--ink-soft);padding:8px 0 8px 14px;border-left:2px solid transparent;text-decoration:none;margin-left:-2px}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.faq-section{min-width:0}.faq-section>div{width:100%}.faq-section h4.faq-cat{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.015em;color:var(--color);margin:0 0 6px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.faq-section h4.faq-cat i{display:none}.faq-section .panel-group{margin-bottom:56px}.faq-section .panel-default .panel-title a{display:block;position:relative;padding:22px 0 22px 42px;font-family:var(--font-serif);font-weight:400;font-size:20px;line-height:1.35;letter-spacing:-.005em;color:var(--color);text-decoration:none;cursor:pointer}.faq-section .panel-default .panel-title a:hover{color:var(--accent)}.faq-section .panel-heading{background:0 0;padding:0!important;border:none}.faq-section .panel-default{background:0 0;border:none;border-bottom:1px solid var(--border-soft);border-radius:0;margin-bottom:0!important;box-shadow:none}.faq-section .panel-default .panel-title{margin-bottom:0}.faq-section .panel-default .panel-title a:after{content:"−";position:absolute;left:0;right:auto;top:22px;transform:none;font-family:var(--font-mono);font-size:18px;line-height:1.35;color:var(--ink-muted);float:none;margin:0;font-weight:400}.faq-section .panel-default .panel-title a.collapsed:after{content:"+"}.faq-section .panel-default .panel-body{padding:0 0 22px 42px!important;color:var(--ink-soft);font-size:15px;line-height:1.65;border-top:none;max-width:42em}.table{color:var(--color)}.dropdown-divider,.table td,.table th,hr{border-color:var(--border-color)}.table.repositories td{word-break:break-word}loc{display:block;position:relative;width:100%;height:5px}loc .lang{float:left;height:100%}.rounded-circle.fa{display:inline-block;font-size:75px;height:140px;width:140px;border:4px solid;line-height:140px;text-align:center}.featurette-divider{margin:4.5rem 0;border-color:var(--border-color)}.featurette-heading{font-family:var(--font-serif);font-weight:400;font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:14px;color:var(--color)}.dark-mode .shadow{box-shadow:none}.dark-mode .overflow-auto::-webkit-scrollbar{width:10px}.dark-mode .overflow-auto::-webkit-scrollbar-track{-webkit-box-shadow:none;background:inherit;border-radius:0}.dark-mode .overflow-auto::-webkit-scrollbar-thumb{border-radius:10px;border:1px solid var(--border-color);background-color:var(--hover-bg-color)}.dark-mode .rgba-gradient{background:linear-gradient(135deg,#2a2d4a,#151728)}.section-number{padding-right:10px;font-weight:700;font-style:italic}.org-subscript-child{font-size:85%}.highlighted-line{position:absolute;background:rgba(100,200,100,.5);z-index:20}code,pre{font-family:"Fira Code","Courier New",Courier,monospace;line-height:1.1;color:var(--color)}.diff-file,.diff-index,.diff-lines{background:rgba(172,172,172,.5)}.diff-add{background:rgba(100,200,100,.5)}.diff-remove{background:rgba(200,100,100,.5)}.dashboard-title{font-size:1.4rem;font-weight:600;letter-spacing:-.01em}.quota-row{display:flex;gap:16px;margin-bottom:16px;padding:0}.quota-item{flex:1;min-width:0}.quota-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.quota-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.7}.quota-value{font-size:.8rem;font-weight:500;font-variant-numeric:tabular-nums}.quota-progress{height:6px;border-radius:3px;background:var(--hover-bg-color)}.quota-progress .progress-bar{border-radius:3px}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:.8rem;font-weight:500;background:var(--primary-bg);color:var(--primary-color);border-radius:12px;line-height:1.4}.filter-chip-close{display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;color:inherit;opacity:.7;cursor:pointer;padding:0;min-width:24px;min-height:24px;margin:-6px -6px -6px 0;font-size:1rem;line-height:1;border-radius:999px}.filter-chip-close:hover{opacity:1}.repo-list{list-style:none;padding:0;margin:0}.repo-list-item{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border-color);gap:12px}.repo-list-item:first-child{border-top:1px solid var(--border-color)}.repo-list-item.repo-inactive{opacity:.6}.repo-list-item-content{flex:1;min-width:0}.repo-list-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.repo-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color);word-break:break-word}.repo-name:hover{color:var(--accent)}.repo-source{font-size:.85rem;opacity:.8;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.repo-date{opacity:.7}.repo-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.8rem;opacity:.7}.repo-meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.repo-list-item-actions{flex-shrink:0;padding-top:2px;margin-left:14px}.repo-list-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;opacity:.5;font-size:.95rem;list-style:none;border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color)}.repo-list-empty i{font-size:1.8rem}.type-badge{display:inline-flex;align-items:center;gap:3px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:4px;white-space:nowrap}.type-badge{font-family:var(--font-mono);letter-spacing:.06em;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-bg-alt,transparent)}.type-badge.type-pr,.type-badge.type-repo{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.dark-mode .type-badge.type-pr,.dark-mode .type-badge.type-repo{background:rgba(255,255,255,.06);color:var(--ink-muted);border-color:var(--border-color)}.type-badge.type-coauthor{background:rgba(99,102,241,.12);color:#4f46e5;border-color:rgba(99,102,241,.35);margin-left:6px}.dark-mode .type-badge.type-coauthor{background:rgba(129,140,248,.18);color:#a5b4fc;border-color:rgba(165,180,252,.45)}.btn-group .btn:not(.btn-primary){background:var(--hover-bg-color)}.anonymize-landing{display:flex;align-items:center;justify-content:center;height:100%;padding:20px}.anonymize-landing-inner{width:100%;max-width:600px}.anonymize-landing-inner h2{font-weight:700}.anonymize-workspace{display:flex;flex-direction:column;height:100%;background:var(--canvas-bg-color)}.anonymize-topbar{background:var(--paper-card);border-bottom:1px solid var(--border-color);padding:18px 28px;flex:0 0 auto}.anonymize-topbar-inner{max-width:1400px;margin:0 auto}.anonymize-topbar-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.anonymize-topbar-title{margin:4px 0 0;font-size:clamp(1.8rem,3vw,2.4rem)}.anonymize-split{flex:1 1 auto;display:flex;min-height:0}.anonymize-form-col{flex:0 0 auto;width:100%;min-width:0;background:var(--canvas-bg-color);border-right:1px solid var(--border-color);overflow-y:auto}.anonymize-form-col .paper-settings-main{max-width:720px;padding:28px 32px 40px;margin:0}.anonymize-form-col .paper-settings-section:first-child{padding-top:0}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;background:var(--canvas-bg-color);padding:14px 0 0;border-top:1px solid var(--border-color);margin-top:20px}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{flex:1 1 auto;min-width:0;overflow:auto;background:var(--paper-bg-alt);padding:28px 32px}.anonymize-preview-head{display:flex;align-items:baseline;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color);margin-bottom:20px}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.anonymize-preview-sub{color:var(--ink-soft);font-size:13px}.anonymize-preview-body{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:28px 32px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}@media (max-width:700px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}.paper-optional{font-family:var(--font-sans);font-weight:400;color:var(--ink-muted);text-transform:none;letter-spacing:0;font-size:11px;margin-left:6px}.paper-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.paper-plan-card{position:relative;display:block;padding:18px 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;margin:0}.paper-plan-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.paper-plan-card.selected{border-color:var(--color);box-shadow:0 0 0 2px var(--color) inset}.paper-plan-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-plan-price{font-family:var(--font-serif);font-size:2rem;color:var(--color);margin:6px 0 4px}.paper-plan-price .paper-plan-per{font-family:var(--font-sans);font-size:12px;color:var(--ink-soft)}.paper-plan-desc{font-size:13px;color:var(--ink-soft)}.paper-plan-desc ul{padding-left:18px;margin:0}.paper-settings-copy{color:var(--ink-soft);font-size:13px;margin:0 0 14px}.anonymize-section-title{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin:18px 0 8px 0;padding-bottom:6px;border-bottom:1px solid var(--border-color);opacity:.7}.anonymize-section-title i{margin-right:4px}.anonymize-submit-bar{padding:12px 0 4px 0}.anonymize-submit-bar .btn{font-size:1rem;padding:10px 20px;font-weight:600}.anonymize-page .form-check{padding-top:4px;padding-bottom:4px}.anonymize-page .form-check-label{font-weight:500}.anonymize-preview-col{min-height:0;min-width:0}.pr-diff pre{overflow-x:auto;max-width:100%}@media (min-width:768px){.anonymize-form-col{height:100%;width:520px;flex:0 0 520px}.anonymize-preview-col{height:100%;flex:1}}@media (max-width:767px){.anonymize-workspace{height:auto;min-height:100%}.anonymize-topbar{padding:14px 16px}.anonymize-topbar-title{font-size:1.6rem;margin-top:2px}.anonymize-split{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.anonymize-form-col{width:100%!important;flex:0 0 auto!important;height:auto!important;border-right:none;border-bottom:1px solid var(--border-color);overflow:visible}.anonymize-form-col .paper-settings-main{padding:18px 16px 24px;max-width:none}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;margin:20px -16px 0;padding:12px 16px;background:var(--canvas-bg-color);border-top:1px solid var(--border-color);z-index:10}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{width:100%;flex:0 0 auto;height:auto!important;max-height:none;padding:18px 16px 24px;overflow:visible}.anonymize-preview-body{padding:16px;border-radius:8px}.anonymize-preview-body .pr-diff pre,.anonymize-preview-body pre{overflow-x:auto;max-width:100%}.anonymize-landing-inner{padding:16px}}@media (min-width:1280px){.anonymize-form-col{width:620px;flex:0 0 620px}}@media (max-width:767px){.btn{min-height:38px;padding:6px 14px;font-size:14px}.btn-sm{min-height:34px;padding:5px 10px}.navbar .nav-link{padding:8px 12px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:24px;line-height:32px}.container.page{padding-left:15px;padding-right:15px;max-width:100%}h1{font-size:1.6rem}h2{font-size:1.35rem}h3{font-size:1.15rem}.repo-list-item{flex-direction:column}.repo-list-item-actions{align-self:flex-start}.quota-row{flex-direction:column;gap:10px;padding:10px 12px}.dropdown-menu{position:absolute;right:0;left:auto}.form-group{margin-bottom:12px}.form-control{font-size:16px}.status-bar{gap:6px;padding:8px 10px}.status-bar .btn{font-size:12px;padding:4px 10px;min-height:32px}.status-bar .paths{font-size:11.5px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch}.status-bar .paths::-webkit-scrollbar{display:none}.status-bar-actions{flex-shrink:0;gap:4px}#home .display-4{font-size:1.8rem}#home h4.subtext-header{font-size:1rem}.progress:not(.quota-progress){min-width:120px!important}.badge{font-size:70%}.col-2.input-group{width:100%!important;max-width:100%;flex:0 0 100%}.color-text-secondary span{display:inline-block;margin-bottom:2px}.floatingchat-container-wrap{display:none!important}.anonymize-landing{align-items:flex-start;padding-top:60px}.anonymize-page .container-fluid>.row{height:auto!important;min-height:100%}.anonymize-form-col{width:100%!important;flex:0 0 100%!important;border-right:none;border-top:1px solid var(--border-color)}.anonymize-preview-col{height:auto!important;max-height:none}.anonymize-section-title{font-size:.8rem;margin:12px 0 8px 0}.anonymize-submit-bar{position:sticky;bottom:0;background:var(--sidebar-bg-color);padding:10px 0;margin:0 -12px;padding-left:12px;padding-right:12px;border-top:1px solid var(--border-color);z-index:10}.anonymize-submit-bar .btn{font-size:1rem;padding:12px 20px}.anonymize-page .form-check{padding-top:6px;padding-bottom:6px;min-height:36px}.anonymize-page .form-check-label{font-size:.95rem}.anonymize-page .card-body{padding:12px}.pr-title{font-size:1.15rem}.pr-diff pre{font-size:.75rem}.pr-comment .mb-1 h5{font-size:1rem}.nav-tabs .nav-link{padding:8px 12px;font-size:.9rem}}@media (min-width:768px) and (max-width:991px){.container.page{max-width:100%;padding-left:15px;padding-right:15px}.leftCol{flex:0 0 250px;width:250px}}.explorer-page{display:flex;height:100%;width:100%;background:var(--canvas-bg-color);position:relative}.explorer-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas-bg-color)}.explorer-content{flex:1 1 auto;min-height:0;width:100%;overflow:auto}.leftCol-close,.leftCol-head{display:none}.leftCol-body{flex:1 1 auto;min-height:0;overflow:auto}.leftCol-foot{padding:8px 12px;border-top:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-foot .last-update{border-top:none;padding:0}.leftCol-backdrop{display:none}.paper-inline-warning{display:flex;align-items:flex-start;gap:8px;margin:8px;padding:10px 12px;background:rgba(138,107,30,.08);border:1px solid rgba(138,107,30,.35);border-radius:8px;color:var(--color);font-size:12.5px;line-height:1.4}.paper-inline-warning i{color:#8a6b1e;margin-top:2px;flex-shrink:0}.dark-mode .paper-inline-warning i{color:#ffd37a}@media (min-width:768px){.leftCol-body{padding:8px 4px}}.sidebar-toggle{display:none;align-items:center;gap:8px;position:fixed;bottom:18px;right:18px;z-index:1100;padding:10px 14px;background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);border-radius:999px;font-family:var(--font-sans);font-size:13px;font-weight:500;box-shadow:0 6px 20px rgba(0,0,0,.15);cursor:pointer;outline:0}.sidebar-toggle:hover{background:var(--primary-hover-bg)}.sidebar-toggle:focus,.sidebar-toggle:focus-visible{outline:0;box-shadow:0 6px 20px rgba(0,0,0,.15)}@media (max-width:991px){.sidebar-toggle{display:inline-flex}.floatingchat-container-wrap{left:3px!important;right:auto!important}.floating-chat-kofi-popup-iframe{left:10px!important;right:auto!important}.leftCol{position:fixed;top:0;left:0;bottom:0;width:min(86vw,340px);max-width:340px;z-index:1200;border:none;border-right:1px solid var(--border-color);transform:translateX(0);transition:transform .22s ease;box-shadow:4px 0 24px rgba(0,0,0,.18);background:var(--sidebar-bg-color)}.leftCol.collapsed{transform:translateX(-105%);box-shadow:none;pointer-events:none}.leftCol-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.leftCol-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:0 0;border:1px solid var(--border-color);border-radius:8px;color:var(--ink-muted);cursor:pointer}.leftCol-close:hover{color:var(--color);border-color:var(--color)}.leftCol-foot{display:block}.leftCol-body{padding:4px 0}.leftCol-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:1150;backdrop-filter:blur(2px)}.dark-mode .leftCol-backdrop{background:rgba(0,0,0,.5)}}.admin-nav{display:flex;gap:4px;padding:4px;margin:8px 0 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;flex-wrap:wrap}.admin-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:7px;color:var(--ink-muted);text-decoration:none;font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:background-color .15s,color .15s;white-space:nowrap}.admin-nav a:hover{background:var(--paper-bg-alt);color:var(--color)}.admin-nav a.active{background:var(--color);color:var(--paper-card)}.admin-nav a i{font-size:12px;width:14px;text-align:center}@media (max-width:767px){.admin-nav{flex-direction:column}.admin-nav a{justify-content:flex-start}}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:16px}.admin-stat-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px}.admin-stat-card .stat-value{font-family:var(--font-serif);font-size:1.4rem;font-weight:400;line-height:1.1;color:var(--color)}.admin-stat-card .stat-label{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 12px}.admin-toolbar .form-control{max-width:320px}@media (max-width:767px){.admin-toolbar .form-control{max-width:100%;width:100%}}.pagination-compact{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pagination-compact input{width:60px;text-align:center;flex-shrink:0}.pagination-compact .btn{padding:4px 10px;min-height:34px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);flex-shrink:0}.pagination-compact>span{white-space:nowrap}.admin-list-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color)}.admin-list-item:last-child{border-bottom:none}.admin-list-item .item-main{flex:1;min-width:0}.admin-list-item .item-title{font-size:1rem;font-weight:600;margin-bottom:4px;word-break:break-word}.admin-list-item .item-meta{font-size:.85rem;opacity:.8}.admin-list-item .item-meta span{margin-right:12px;display:inline-block;margin-bottom:2px}.admin-list-item .item-actions{flex-shrink:0}@media (max-width:767px){.admin-list-item{flex-direction:column;gap:8px}.admin-list-item .item-actions{align-self:flex-start}}.status-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}.status-badge{font-family:var(--font-sans);font-weight:500;letter-spacing:.02em;border:1px solid transparent;text-transform:none;font-size:11.5px;padding:1px 9px 2px;border-radius:999px}.status-badge.status-ready{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.status-badge.status-error{background:#fbe7e7;color:#b42318;border-color:#f3c7c7}.status-badge.status-download,.status-badge.status-preparing{background:#eef0ff;color:#3b4ad6;border-color:#d4d8fa}.status-badge.status-expired,.status-badge.status-expiring,.status-badge.status-removed,.status-badge.status-removing{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.status-badge.status-active{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.queue-job-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 18px;margin-bottom:10px}.queue-job-card .job-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.queue-job-card .job-id{font-family:var(--font-mono);font-size:.95rem;color:var(--color);word-break:break-all;display:flex;align-items:center;gap:10px}.queue-job-card .job-timestamps{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:14px}.queue-job-card .job-actions{display:flex;gap:8px;margin-top:10px}.queue-job-card .job-actions .btn{font-size:12px;padding:4px 12px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.admin-section-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.admin-section-header h2{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.admin-section-header h2 i{margin-right:6px;color:var(--ink-muted)}.admin-section-header .section-count{background:var(--paper-bg-alt);color:var(--ink-muted);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;padding:1px 10px;border-radius:999px}.user-detail-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:22px;margin-bottom:24px}.user-detail-card .user-header{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.user-detail-card .user-header img{border-radius:50%}.user-detail-card .user-header h1{margin:0;font-family:var(--font-serif);font-weight:400;font-size:1.6rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;font-size:.92rem}.user-detail-grid .detail-label{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.user-detail-grid .detail-value{word-break:break-all;color:var(--color)}@media (max-width:767px){.user-detail-grid{grid-template-columns:1fr}.user-detail-grid .detail-label{margin-top:8px;border-top:1px solid var(--border-color);padding-top:8px}.user-detail-grid .detail-label:first-child{border-top:none;margin-top:0;padding-top:0}}.paper-empty{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 24px}.paper-empty-inner{max-width:560px;text-align:left}.paper-empty-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:18px 0 20px;color:var(--color)}.paper-empty-title em{color:var(--accent);font-style:italic}.paper-empty-lede{font-size:17px;line-height:1.55;color:var(--ink-soft);text-wrap:pretty}.paper-empty-cta{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}.paper-page{max-width:1100px;margin:0 auto;padding:32px 32px 80px}@media (max-width:991px){.paper-page,.paper-page.container,.paper-page.container-fluid{padding:20px 18px 60px!important}.paper-page .row{margin-left:0;margin-right:0}.paper-page .row>.w-100,.paper-page .row>[class*=col]{padding-left:0;padding-right:0}.navbar.navbar-expand-lg{padding:10px 18px!important}.navbar .navbar-collapse{margin:10px -18px 0;padding:12px 18px 16px;border-top:1px solid var(--border-color);background:var(--header-bg-color)}.navbar .navbar-nav{align-items:stretch!important;gap:2px}.navbar .navbar-nav .nav-item,.navbar .navbar-nav .nav-link{width:100%}.navbar .nav-link{display:flex!important;align-items:center;justify-content:flex-start;margin:0!important;padding:12px 4px!important;border-bottom:1px solid var(--border-color)!important;border-radius:0;font-size:14px;line-height:1.2;gap:0;min-height:44px;box-sizing:border-box}.navbar .nav-link:not(.btn-signin):not(.user-chip){color:var(--color)!important}.navbar .nav-link .fa,.navbar .nav-link .fab,.navbar .nav-link .fas,.navbar .nav-link i{display:inline-flex!important;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:16px;line-height:1;margin:0 10px 0 0!important}.navbar .navbar-nav .nav-item:last-child .nav-link,.navbar .navbar-nav>.nav-link:last-child{border-bottom-color:transparent!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--border-color)!important}.navbar .nav-item>.nav-link:not(.btn-signin):not(.user-chip)::before{content:'';display:inline-block;width:28px;margin-right:10px;flex-shrink:0}.navbar .nav-link.nav-icon::before,.navbar .nav-link:has(>i)::before{display:none!important}.navbar .nav-link.nav-icon{width:100%!important;height:auto!important;justify-content:flex-start!important;padding:12px 4px!important}.navbar .nav-link.nav-icon::after{content:attr(title);font-family:var(--font-sans);font-size:14px;color:var(--color)}.navbar .btn-signin{display:inline-flex!important;width:auto!important;align-self:flex-start;justify-content:center;height:40px;padding:0 18px!important;margin:14px 0 0!important;border-radius:8px;border-bottom:none!important}.navbar .btn-signin i{margin:0 8px 0 0!important;width:auto!important}.navbar .user-chip-wrap{width:100%}.navbar .user-chip{display:flex!important;width:100%;margin:0!important;padding:10px 4px!important;background:0 0!important;border:none!important;border-bottom:1px solid var(--border-color)!important;border-radius:0!important;justify-content:flex-start;gap:0;min-height:44px}.navbar .user-chip::before{display:none!important}.navbar .user-chip img{width:28px!important;height:28px!important;margin-right:10px!important;flex-shrink:0}.navbar .user-chip .user-chip-name{font-size:14px;font-weight:500;color:var(--color)!important}.navbar .user-chip.dropdown-toggle::after{margin-left:auto;color:var(--ink-muted)}.navbar .user-chip-wrap .dropdown-menu{position:static!important;float:none;width:100%;margin:0!important;padding:0!important;background:0 0!important;border:none!important;box-shadow:none!important;transform:none!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item{padding:10px 4px 10px 42px!important;font-size:13.5px;color:var(--ink-muted)!important;background:0 0!important;border-bottom:1px solid var(--border-color);text-align:left!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item:last-child{border-bottom:none}.navbar .user-chip-wrap .dropdown-divider{display:none}.navbar-brand{border-right:none!important;padding-right:0!important;margin-right:0!important}.dark-mode .navbar .navbar-collapse{background:var(--header-bg-color);border-top-color:var(--border-color)}.dark-mode .navbar .nav-link{border-bottom-color:var(--border-color)!important}.dark-mode .navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--paper-bg-alt);border:1px solid var(--border-color);color:var(--ink-soft);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}.paper-progress{position:relative;height:auto;background:0 0;margin:18px 0 8px}.paper-progress::before{content:"";display:block;height:8px;background:var(--paper-bg-alt);border-radius:999px}.paper-progress .paper-progress-bar{position:absolute;top:0;left:0;height:8px;background:var(--color);border-radius:999px;transition:width .4s ease;min-width:4px}.paper-progress .paper-progress-label{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.paper-progress .paper-progress-pct{color:var(--color)}.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--color)}.paper-error-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid #c53030;border-radius:10px;color:var(--color)}.dark-mode .paper-error-card{border-left-color:#ff8b7b}.paper-ratelimit-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid #d69e2e;border-radius:10px;color:var(--color)}.dark-mode .paper-ratelimit-card{border-left-color:#f6e05e}.paper-ratelimit-head{display:flex;align-items:flex-start;gap:14px}.paper-ratelimit-head>i{font-size:18px;color:#d69e2e;margin-top:4px;flex-shrink:0}.dark-mode .paper-ratelimit-head>i{color:#f6e05e}.paper-ratelimit-card strong{color:var(--color)}.status-pill-ratelimit{border-color:#d69e2e;color:#d69e2e}.dark-mode .status-pill-ratelimit{border-color:#f6e05e;color:#f6e05e}.status-ratelimit{background:#d69e2e}.dark-mode .status-ratelimit{background:#f6e05e}.paper-error-head{display:flex;align-items:flex-start;gap:14px}.paper-error-head>i{font-size:18px;color:#c53030;margin-top:4px;flex-shrink:0}.dark-mode .paper-error-head>i{color:#ff8b7b}.paper-error-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-error-title{font-family:var(--font-serif);font-size:1.4rem;line-height:1.2;margin-top:2px;color:var(--color)}.paper-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft);font-family:var(--font-mono);word-break:break-word;white-space:pre-wrap}.paper-error-hints{margin:14px 0 0;padding-left:18px;color:var(--ink-soft);font-size:13.5px;line-height:1.6}.paper-error-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.paper-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;margin-top:18px;font-size:.92rem}.paper-detail-grid .detail-label{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.paper-detail-grid .detail-value{word-break:break-all;color:var(--color)}.paper-detail-grid .detail-value a{color:var(--color);border-bottom:1px solid var(--border-color)}.paper-detail-grid .detail-value a:hover{border-bottom-color:var(--color)}@media (max-width:700px){.paper-detail-grid{grid-template-columns:1fr;gap:4px 0}.paper-detail-grid .detail-label{padding-top:8px}}.paper-support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0 28px}.paper-support-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;color:var(--color);text-decoration:none;transition:border-color .15s ease,transform .15s ease}.paper-support-card:hover{border-color:var(--color);text-decoration:none;color:var(--color)}.paper-support-card .paper-support-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:8px}.paper-support-card p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.paper-support-card .paper-support-cta{margin-top:auto;font-size:13px;font-weight:500;color:var(--color);display:inline-flex;align-items:center;gap:6px}.paper-support-card:hover .paper-support-cta i{transform:translateX(2px)}.paper-support-card .paper-support-cta i{transition:transform .15s ease}.paper-kofi-wrap{border:1px solid var(--border-color);border-radius:10px;overflow:hidden;background:var(--paper-card)}.paper-kofi-wrap iframe{border:0;width:100%;height:650px;display:block}.dark-mode .paper-kofi-wrap iframe{filter:invert(.88) hue-rotate(180deg) sepia(.15) saturate(1.2) brightness(1.1) contrast(.85)}@media (max-width:700px){.paper-kofi-wrap iframe{height:720px}}.pr-page{min-height:100%;background:var(--canvas-bg-color)}.pr-page-inner{padding-top:24px;padding-bottom:60px}.pr-header{margin:6px 0 18px}.pr-title{margin:4px 0 10px;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;word-break:break-word}.pr-header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pr-header-meta .pr-meta-item{display:inline-flex;align-items:center;gap:6px}.pr-header-meta .pr-meta-item i{color:var(--ink-muted)}.pr-body-card{margin:18px 0 24px;padding:20px 22px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-body-card .paper-section-eyebrow{margin-bottom:12px}.paper-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border-color);margin:18px 0 0}.paper-tabs .paper-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:0 0;border:0;border-bottom:2px solid transparent;font-family:var(--font-sans);font-size:13.5px;font-weight:500;color:var(--ink-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.paper-tabs .paper-tab:hover{color:var(--color)}.paper-tabs .paper-tab.active{color:var(--color);border-bottom-color:var(--color)}.paper-tabs .paper-tab i{color:inherit;opacity:.85}.paper-tabs .paper-tab:active,.paper-tabs .paper-tab:focus,.paper-tabs .paper-tab:focus-visible{outline:0;box-shadow:none}.paper-tabs .paper-tab:focus-visible{color:var(--color);background:var(--hover-bg-color);border-radius:6px 6px 0 0}.pr-diff{margin:16px 0 28px;display:flex;flex-direction:column;gap:16px}.diff-file-block{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.diff-file-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper-bg-alt);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:12.5px;color:var(--color)}.diff-file-icon{color:var(--ink-muted);flex-shrink:0}.diff-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.diff-file-status{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border-color);color:var(--ink-muted);background:var(--paper-card)}.diff-file-status-added{color:#2f6b3e;border-color:rgba(47,107,62,.35);background:rgba(47,107,62,.08)}.diff-file-status-deleted{color:#a13a2e;border-color:rgba(161,58,46,.35);background:rgba(161,58,46,.08)}.diff-file-status-renamed{color:#8a6b1e;border-color:rgba(138,107,30,.35);background:rgba(138,107,30,.08)}.dark-mode .diff-file-status-added{color:#a7e2a7;border-color:rgba(167,226,167,.35);background:rgba(167,226,167,.08)}.dark-mode .diff-file-status-deleted{color:#ff8b7b;border-color:rgba(255,139,123,.35);background:rgba(255,139,123,.08)}.dark-mode .diff-file-status-renamed{color:#ffd37a;border-color:rgba(255,211,122,.35);background:rgba(255,211,122,.08)}.diff-file-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:12.5px;line-height:1.55;table-layout:fixed}.diff-file-table tr.diff-row{vertical-align:top}.diff-file-table .diff-gutter{width:48px;padding:0 10px;text-align:right;color:var(--ink-muted);background:var(--paper-bg-alt);border-right:1px solid var(--border-color);user-select:none;font-variant-numeric:tabular-nums;vertical-align:top;white-space:nowrap}.diff-file-table .diff-gutter-new{border-right:1px solid var(--border-color)}.diff-file-table .diff-sign{width:18px;padding:0 6px;text-align:center;color:var(--ink-muted);background:var(--paper-bg-alt);user-select:none;vertical-align:top}.diff-file-table .diff-code{padding:1px 12px;white-space:pre-wrap;word-break:break-word;color:var(--color)}.diff-row-hunk td{background:var(--paper-bg-alt)!important;color:var(--ink-muted);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-size:12px;letter-spacing:.02em;padding-top:6px;padding-bottom:6px}.diff-row-hunk .diff-code{color:var(--ink-muted)}.diff-row-add .diff-code{background:rgba(47,107,62,.1);color:#1f4a2a}.diff-row-add .diff-gutter,.diff-row-add .diff-sign{background:rgba(47,107,62,.06);color:#2f6b3e}.diff-row-remove .diff-code{background:rgba(161,58,46,.1);color:#6e1f1a}.diff-row-remove .diff-gutter,.diff-row-remove .diff-sign{background:rgba(161,58,46,.06);color:#a13a2e}.dark-mode .diff-row-add .diff-code{background:rgba(167,226,167,.1);color:#c9f0c9}.dark-mode .diff-row-add .diff-gutter,.dark-mode .diff-row-add .diff-sign{background:rgba(167,226,167,.06);color:#a7e2a7}.dark-mode .diff-row-remove .diff-code{background:rgba(255,139,123,.1);color:#ffc9c0}.dark-mode .diff-row-remove .diff-gutter,.dark-mode .diff-row-remove .diff-sign{background:rgba(255,139,123,.06);color:#ff8b7b}@media (max-width:700px){.diff-file-table{font-size:11.5px}.diff-file-table .diff-gutter{width:36px;padding:0 6px}.diff-file-table .diff-sign{width:14px;padding:0 4px}.diff-file-table .diff-code{padding:1px 8px}}.pr-comments{list-style:none;margin:16px 0 28px;padding:0;display:flex;flex-direction:column;gap:12px}.pr-comment{padding:16px 18px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-comment-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border-color)}.pr-comment-author{font-weight:600;color:var(--color);font-size:14px;display:inline-flex;align-items:center;gap:6px}.pr-comment-author i{color:var(--ink-muted);font-size:12px}.pr-comment-date{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-muted);letter-spacing:.02em}.pr-comment-body{color:var(--color);font-size:14px;line-height:1.6}.pr-comment-body :last-child{margin-bottom:0}@media (max-width:700px){.pr-page-inner{padding-top:14px;padding-bottom:40px}.pr-body-card{padding:14px 14px;border-radius:8px}.pr-comment{padding:12px 14px}.paper-tabs .paper-tab{padding:10px 12px;font-size:13px}.pr-diff pre{font-size:11.5px;padding:12px}}.toast{background-color:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(0,0,0,.08);backdrop-filter:none;min-width:280px;max-width:calc(100vw - 24px)}.toast .toast-header{background:0 0!important;color:var(--color)!important;border-bottom:1px solid var(--border-color)!important;font-family:var(--font-sans);padding:10px 12px}.toast .toast-header strong{font-weight:600;color:var(--color);letter-spacing:.01em}.toast .toast-header .close{color:var(--ink-muted)!important;text-shadow:none;opacity:.9;font-size:1.2rem}.toast .toast-header .close:hover{color:var(--color)!important;opacity:1}.toast .toast-body{color:var(--color)!important;padding:12px;font-size:14px;line-height:1.45}.dark-mode .toast{box-shadow:0 8px 24px rgba(0,0,0,.5)}.paper-crumbs{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.02em}.paper-crumbs .here,.paper-crumbs a{color:var(--color);text-decoration:none}.paper-page-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.05;letter-spacing:-.02em;margin:10px 0 6px;color:var(--color)}.paper-page-title em{color:var(--accent);font-style:italic}.paper-page-lede{color:var(--ink-soft);font-size:16px;max-width:640px;line-height:1.55}.paper-meta-rule{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:22px 0 18px;padding:12px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:11.5px;color:var(--ink-muted);letter-spacing:.02em}.paper-meta-rule b{color:var(--color);font-weight:500}.paper-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:10px;padding:20px 22px}.dark-mode .paper-card{background:var(--admin-stat-bg)}.paper-section-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:10px;display:block}.paper-section-title{font-family:var(--font-serif);font-weight:400;font-size:22px;letter-spacing:-.01em;margin:0 0 8px}.paper-kbd{display:inline-block;font-family:var(--font-mono);font-size:10.5px;padding:1px 6px;border:1px solid var(--border-color);border-bottom-width:2px;border-radius:3px;background:var(--paper-card,#fff);color:var(--color)}.paper-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;padding:2px 8px;border:1px solid var(--border-color);border-radius:999px;color:var(--ink-soft);background:var(--paper-card,#fff);letter-spacing:.04em}.paper-pill.accent{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.paper-pill.good{border-color:#2f6b3e;color:#2f6b3e}.paper-pill.warn{border-color:#8a6b1e;color:#8a6b1e}.paper-pill.bad{border-color:#a13a2e;color:#a13a2e}.paper-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--border-color)}.paper-row:first-child{border-top:1px solid var(--border-color)}.paper-row .row-title{font-family:var(--font-serif);font-size:20px;letter-spacing:-.01em;line-height:1.2}.paper-row .row-title a{color:var(--color)}.paper-row .row-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.03em;margin-top:6px;display:flex;flex-wrap:wrap;gap:14px}.paper-row .row-actions{display:flex;gap:6px;flex-shrink:0}.paper-form-step{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--border-color)}.paper-form-step:first-child{border-top:1px solid var(--border-color)}.paper-form-step .step-num{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-muted);padding-top:4px;letter-spacing:.02em}.paper-form-step .step-title{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;line-height:1.2;margin-bottom:4px}.paper-form-step .step-sub{color:var(--ink-soft);font-size:13.5px;margin-bottom:14px;text-wrap:pretty}.paper-field-label{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:6px}.paper-switch-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:16px}.paper-switch-row+.paper-switch-row{border-top:1px dashed var(--border-soft)}.paper-switch-row .sw-label{font-weight:500}.paper-switch-row .sw-sub{display:block;font-size:12.5px;color:var(--ink-muted);margin-top:2px}.paper-page .custom-select,.paper-page .form-control{border-radius:6px;border-color:var(--border-color);font-size:14px;padding:8px 12px;height:auto;background:var(--input-bg);color:var(--input-color)}.paper-page .custom-select:focus,.paper-page .form-control:focus{color:var(--input-color);background:var(--input-bg);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.custom-select:focus,.form-control:focus,input:focus,select:focus,textarea:focus{color:var(--input-color)!important;background-color:var(--input-bg)!important}.form-control::selection,input::selection,textarea::selection{background:var(--accent-soft);color:var(--input-color)}.dark-mode .form-control::selection,.dark-mode input::selection,.dark-mode textarea::selection{background:rgba(167,178,255,.3);color:var(--input-color)}.btn.btn-ink{background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);font-weight:500;border-radius:6px;padding:8px 14px}.btn.btn-ink:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color);border-color:var(--primary-hover-bg)}.btn.btn-accent{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:500;border-radius:6px}.btn.btn-accent:hover{background:#2e3bb8;border-color:#2e3bb8;color:#fff}.paper-page .dashboard-filter-row{display:flex;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin:18px 0 0;flex-wrap:wrap}.paper-page .dashboard-filter-row .form-control{height:38px;background:var(--paper-card)}.paper-page .dashboard-filter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.paper-page .dashboard-filter-row .btn-group .btn,.paper-page .dashboard-filter-row .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);height:38px;padding:0 14px;font-size:14px;font-weight:500;border-radius:var(--radius-control,6px);display:inline-flex;align-items:center;gap:6px;line-height:1}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label{color:var(--ink-muted);font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label::after{content:"·";margin-left:6px;color:var(--ink-faint)}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-value{font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .fas{font-size:11px;color:var(--ink-muted)}.paper-page .dashboard-filter-row .btn-group .btn:hover,.paper-page .dashboard-filter-row .dropdown-toggle:hover{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.paper-page .dashboard-filter-row .btn-group{gap:0}.paper-page .dashboard-filter-row .btn-group .btn{border-radius:0;border-right-width:0}.paper-page .dashboard-filter-row .btn-group .btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.paper-page .dashboard-filter-row .btn-group .btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px;border-right-width:1px}.paper-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--color);color:var(--canvas-bg-color);border-color:var(--color)}.paper-page .dashboard-filter-row .search-wrap{flex:1 1 280px;min-width:220px}.paper-page .quota-row{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:24px 0 0;padding:0;background:0 0;border:none;border-radius:0}.paper-page .quota-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);opacity:1}.paper-page .quota-value{font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;color:var(--color)}.paper-page .quota-value .quota-unlimited-tag{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);margin-left:4px}.paper-page .quota-track{height:6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;width:100%;min-width:0}.paper-page .quota-track .quota-fill{height:100%;min-width:2px;border-radius:999px;background:var(--color);transition:width .3s ease}.paper-page .quota-track.quota-warn .quota-fill{background:var(--status-progress)}.paper-page .quota-track.quota-danger .quota-fill{background:var(--status-error)}.paper-page .quota-track.quota-unlimited{background:repeating-linear-gradient(-45deg,var(--paper-bg-alt) 0 4px,var(--border-soft,var(--border-color)) 4px 6px)}.paper-page .repo-list{margin-top:8px}.paper-page .repo-list-item{padding:20px 0;gap:16px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-page .repo-list-item:first-child{border-top:none}.paper-page .repo-list-item-header{gap:10px;margin-bottom:6px}.paper-page .repo-name{font-family:var(--font-mono);font-size:15px;color:var(--color)}.paper-page .repo-source{font-size:13px;color:var(--ink-soft);opacity:1;gap:10px}.paper-page .repo-source a{color:var(--ink-soft);border-bottom:1px dotted var(--border-color)}.paper-page .repo-source a:hover{color:var(--color)}.paper-page .repo-meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);opacity:1;gap:16px;margin-top:10px}.paper-page .type-badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;letter-spacing:.1em}.paper-page .repo-list-item-actions .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;font-size:13px;padding:6px 12px;height:auto}.paper-settings{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.paper-settings .paper-page-title{max-width:14em}.paper-settings-body{display:grid;grid-template-columns:220px 1fr;gap:60px;margin-top:32px;border-top:1px solid var(--border-color);padding-top:28px}.paper-settings-toc{position:sticky;top:32px;align-self:start}.paper-settings-toc-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:12px}.paper-settings-toc nav{display:flex;flex-direction:column;gap:2px}.paper-settings-toc nav a{padding:8px 0 8px 14px;border-left:2px solid transparent;color:var(--ink-soft);font-size:14px;text-decoration:none}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.paper-settings-main{min-width:0;max-width:720px}.paper-settings-section{padding:28px 0;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section:first-child{padding-top:0}.paper-settings-section:last-of-type{border-bottom:none}.paper-settings-section .form-group{margin-bottom:18px}.paper-settings-section .form-check{padding:10px 0 10px 28px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section .form-check:last-child{border-bottom:none}.paper-settings-section .form-check-label{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color);cursor:pointer}.paper-settings-section .form-check-input{cursor:pointer;width:16px;height:16px;margin-top:3px;margin-left:-28px;accent-color:var(--color)}.paper-settings-section .form-text{color:var(--ink-soft);font-size:13px;margin-top:4px;max-width:48em}.paper-settings-section .paper-section-copy{margin:-4px 0 14px}.paper-settings-footer{padding-top:24px;display:flex;flex-direction:column;gap:14px}.paper-settings-footer .btn-ink{align-self:flex-start}.paper-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.paper-settings-hint{font-size:13px;color:var(--ink-muted)}.paper-inline-alert{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-control,6px);border:1px solid var(--border-color);background:var(--paper-bg-alt);font-size:13px;color:var(--color)}.paper-inline-alert i{margin-top:2px;color:var(--ink-muted)}.paper-inline-alert-error{border-color:var(--status-error);background:var(--status-error-soft)}.paper-inline-alert-error i{color:var(--status-error)}.paper-account-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);background:var(--paper-card);margin-bottom:20px}.paper-account-card img{flex-shrink:0}.paper-account-identity{flex:1 1 auto;min-width:0}.paper-account-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color)}.paper-account-meta{font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-danger-zone{padding:16px;border:1px solid var(--status-error);border-radius:var(--radius-surface,10px);background:var(--status-error-soft)}.paper-danger-head{font-weight:600;font-size:14px;color:var(--status-error);margin-bottom:6px}.paper-danger-copy{font-size:13px;color:var(--ink-soft);max-width:52em;margin-bottom:12px}.paper-danger-zone .paper-inline-alert{margin-bottom:12px}.btn.btn-outline-danger{background:0 0;color:var(--status-error);border:1px solid var(--status-error);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-danger:hover{background:var(--status-error);color:#fff;border-color:var(--status-error)}.navbar .user-menu{min-width:260px}.navbar .user-menu .dropdown-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px!important}.navbar .user-menu .dropdown-item i{width:16px;margin-top:3px;font-size:13px;color:var(--ink-muted);text-align:center}.navbar .user-menu .dropdown-item span{display:flex;flex-direction:column;line-height:1.3}.navbar .user-menu .dropdown-item small{font-size:12px;color:var(--ink-muted)}.navbar .user-menu .dropdown-header{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px}.paper-field-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px;display:block}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:24px}.paper-settings-toc{position:static}.paper-settings-toc nav{flex-direction:row;flex-wrap:wrap;gap:8px}.paper-settings-toc nav a{border-left:none;border-bottom:2px solid transparent;padding:4px 0}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--color);border-left:none}}.paper-table{display:block;margin-top:20px;background:0 0;border:none;border-top:1px solid var(--border-color);border-radius:0;overflow:visible}.paper-table .paper-table-head,.paper-table .paper-table-row{display:grid;grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 140px 90px 140px 52px;align-items:center;gap:18px;padding:12px 4px}.paper-table.paper-table-conferences .paper-table-head,.paper-table.paper-table-conferences .paper-table-row{grid-template-columns:minmax(280px,2.4fr) 140px 90px 220px 52px}.paper-table.paper-table-repos .paper-table-head,.paper-table.paper-table-repos .paper-table-row{grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px}.paper-table.paper-table-repos.has-bulk .paper-table-head,.paper-table.paper-table-repos.has-bulk .paper-table-row{grid-template-columns:28px minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px;gap:12px}.paper-table .admin-users-row{grid-template-columns:28px minmax(280px,2.4fr) 90px 120px 100px 52px!important;gap:12px!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(320px,3fr) 190px 90px 170px 52px;gap:20px;padding:8px 4px}.paper-table.paper-table-dashboard .cell-anon .anon-text{gap:2px}.paper-table.paper-table-dashboard .cell-anon .repo-name{padding:0}.paper-table .paper-table-head{background:0 0;border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-top:8px;padding-bottom:8px}.paper-table .paper-table-head .sortable{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;padding:2px 0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border-radius:4px}.paper-table .paper-table-head .sortable:hover{color:var(--color)}.paper-table .paper-table-head .sortable.active{color:var(--color)}.paper-table .paper-table-head .sortable i{font-size:10px}.paper-table .paper-table-head .num,.paper-table .paper-table-row .num{text-align:right}.paper-table .paper-table-head .num .sortable{flex-direction:row-reverse}.paper-table .paper-table-row{border-top:1px solid var(--border-soft,var(--border-color));font-size:14px;transition:background-color .12s ease}.paper-table .paper-table-row:hover{background:var(--hover-bg-color)}.paper-table .paper-table-row.row-clickable{cursor:pointer}.paper-table .paper-table-row.repo-inactive>:not(.cell-actions){opacity:.55}.paper-table .paper-table-row.repo-error{background:var(--status-error-soft);border-left:2px solid var(--status-error);padding-left:6px}.paper-table .paper-table-row.repo-error:hover{background:var(--status-error-soft-hover)}.cell-status .status-sub.status-sub-error,.paper-table .cell-status .status-sub-error{color:var(--status-error)}.paper-table .cell-status .status-sub-warn{color:var(--status-progress)}.paper-table .cell-anon{display:flex;align-items:center;gap:12px;min-width:0}.paper-table .cell-anon .type-badge{flex-shrink:0;min-width:52px;justify-content:center}.paper-table .cell-anon .anon-text{min-width:0;display:flex;flex-direction:column;gap:3px}.paper-table .cell-anon .anon-title{display:flex;align-items:center;gap:8px;min-width:0}.paper-table .cell-anon .anon-title .type-badge{margin-left:0}.paper-table .cell-anon .repo-name{font-family:var(--font-mono);font-size:14px;color:var(--color);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;padding:2px 0}.paper-table .cell-anon .repo-name-static{color:var(--ink-muted);font-style:italic}.paper-table .cell-anon .anon-sub{font-family:var(--font-sans);font-size:13px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:10px;min-width:0}.paper-table .cell-anon .anon-sub .anon-source{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-anon .anon-sub .conf-tag{flex:0 1 auto;min-width:72px;max-width:50%}.paper-table .cell-anon .anon-sub a{color:var(--ink-muted);border-bottom:1px dotted var(--border-color);padding:4px 0;margin:-4px 0}.paper-table .cell-anon .anon-sub a:hover{color:var(--color)}.paper-table .cell-anon .anon-sub .commit-hash{font-family:var(--font-mono);font-size:12px}.paper-table .cell-conf{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-conf span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:14px;color:var(--color);min-width:0}.paper-table .cell-status .status-line{display:inline-flex;align-items:center;gap:8px}.paper-table .cell-status .status-sub{flex-basis:100%;font-family:var(--font-sans);font-size:13px;line-height:1.3;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.paper-table .cell-expires{font-family:var(--font-sans);font-size:13px;color:var(--ink-soft)}.paper-table .cell-expires .expires-never{color:var(--ink-muted)}.paper-table .cell-expires .expires-past{color:var(--ink-muted)}.paper-table .empty-dash{color:var(--ink-faint)}.paper-table .cell-actions{display:flex;justify-content:flex-end}.status-dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0;background:var(--status-inactive)}.status-dot.status-ready{background:var(--status-ready)}.status-dot.status-error{background:var(--status-error)}.status-dot.status-preparing,.status-dot.status-progress{background:var(--status-progress)}.status-dot.status-expired,.status-dot.status-removed{background:var(--status-inactive)}.dashboard-page{padding-bottom:96px}.dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;font-size:13px;color:var(--ink-muted)}.dashboard-meta .dashboard-count{font-variant-numeric:tabular-nums}.btn-link-inline{background:0 0;border:none;padding:2px 4px;margin:-2px 0;font:inherit;color:var(--link-color);cursor:pointer;border-radius:4px}.btn-link-inline:hover{color:var(--link-hover-color);text-decoration:underline}.btn.btn-outline-ink{background:0 0;color:var(--color);border:1px solid var(--border-color);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-ink:hover{background:var(--hover-bg-color);color:var(--color);border-color:var(--color)}.paper-page .dropdown-menu .dropdown-item-danger,.paper-page .dropdown-menu .dropdown-item-danger i{color:var(--status-error)}.paper-page .dropdown-menu .dropdown-item-danger:focus,.paper-page .dropdown-menu .dropdown-item-danger:hover{background:var(--status-error-soft-hover);color:var(--status-error)}.paper-page .dropdown-menu button.dropdown-item{width:100%;text-align:left;background:0 0;border:none}.paper-page .dropdown-menu .dropdown-divider{border-top-color:var(--border-soft,var(--border-color));margin:4px 0}.paper-table .paper-table-skeleton{pointer-events:none}.skeleton{display:block;background:var(--paper-bg-alt);border-radius:4px;position:relative;overflow:hidden}.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--hover-bg-color),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton-line{height:12px}.skeleton-line+.skeleton-line{margin-top:8px}.skeleton-line-sm{height:10px}.skeleton-badge{width:52px;height:22px;border-radius:999px;flex-shrink:0}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none}}.paper-table .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 20px;color:var(--ink-muted);text-align:center;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table .paper-table-empty>i{font-size:1.6rem;color:var(--ink-faint)}.paper-table .paper-table-empty-actions{display:flex;gap:8px;margin-top:8px}.bulk-bar{display:flex;align-items:center;gap:8px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;margin:8px 0}.paper-page.admin-page .paper-page-title{font-size:1.6rem;margin:4px 0}.paper-page.admin-page .paper-page-lede{display:none}.paper-page.admin-page .paper-crumbs{margin-bottom:4px}.paper-page.admin-page .admin-nav{margin:6px 0 12px}.admin-filter-toolbar{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px;position:sticky;top:0;z-index:4;background:var(--canvas-bg-color);padding:6px 0;border-bottom:1px solid var(--border-soft,var(--border-color));box-shadow:0 1px 0 var(--canvas-bg-color)}@media (max-width:900px){.admin-filter-toolbar{position:static;box-shadow:none}}.admin-filter-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-filter-row .search-wrap{flex:1;min-width:220px}.admin-filter-row .search-wrap .form-control{height:34px}.admin-filter-inline{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.admin-filter-inline>label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0;white-space:nowrap}.admin-filter-inline .form-control-sm{height:28px;padding:2px 8px;font-size:12px}.admin-filter-inline input[type=search].form-control-sm,.admin-filter-inline input[type=text].form-control-sm{width:130px}.admin-filter-inline input[type=date].form-control-sm{width:130px}.admin-filter-inline select.form-control-sm{width:auto;min-width:88px}.admin-filter-inline .arrow{color:var(--ink-muted);font-size:11px}.admin-filter-spacer{flex:1}.admin-active-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--ink-muted)}.admin-active-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--hover-bg-color);font-size:12px;color:var(--color)}.admin-active-chip .key{color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.admin-active-chip button{background:0 0;border:none;cursor:pointer;padding:0 4px;color:var(--ink-muted);font-size:12px;border-radius:50%}.admin-active-chip button:hover{color:#b42318}.admin-search-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);pointer-events:none;border:1px solid var(--border-color);border-radius:4px;padding:1px 5px;background:var(--paper-card)}.admin-filter-row .search-wrap{position:relative}.admin-filter-row .search-wrap .form-control{padding-right:40px}.paper-table-row.row-selected{background:rgba(47,122,68,.06)}.queue-state-pills{display:inline-flex;gap:6px;margin-left:8px;flex-wrap:wrap}.queue-state-pills .pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted)}.queue-state-pills .pill-active{color:#c48a2e;border-color:rgba(196,138,46,.4)}.queue-state-pills .pill-failed{color:#b42318;border-color:rgba(180,35,24,.4)}.queue-state-pills .pill-completed{color:#2f7a44;border-color:rgba(47,122,68,.3)}.queue-state-pills .pill-waiting{color:var(--ink-soft)}.queue-state-pills .pill-delayed{color:var(--ink-muted)}.admin-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 12px;font-size:13px}.admin-summary .summary-total{font-family:var(--font-serif);font-size:1.05rem;color:var(--color);margin-right:8px}.admin-summary .summary-meta{color:var(--ink-muted);font-size:12px;margin-right:8px}.admin-summary .summary-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);cursor:pointer;font-size:12px;user-select:none;transition:background-color .1s,border-color .1s}.admin-summary .summary-pill:hover{background:var(--hover-bg-color)}.admin-summary .summary-pill .count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.admin-summary .summary-pill.active{background:var(--primary-bg);color:var(--primary-color);border-color:var(--primary-bg)}.admin-summary .summary-pill.active .count{color:inherit}.admin-summary .summary-pill.error .count{color:#b42318}.admin-summary .summary-pill.warn .count{color:#c48a2e}.admin-summary .summary-pill.ok .count{color:#2f7a44}.dark-mode .admin-summary .summary-pill.error .count{color:#f08a82}.dark-mode .admin-summary .summary-pill.warn .count{color:#e8b970}.dark-mode .admin-summary .summary-pill.ok .count{color:#7dc894}.dark-mode .queue-state-pills .pill-active{color:#e8b970;border-color:rgba(232,185,112,.4)}.dark-mode .queue-state-pills .pill-failed{color:#f08a82;border-color:rgba(240,138,130,.4)}.dark-mode .queue-state-pills .pill-completed{color:#7dc894;border-color:rgba(125,200,148,.3)}.job-progress{flex:1;height:6px;background:var(--border-soft,var(--border-color));border-radius:999px;overflow:hidden;margin-left:12px;max-width:200px}.job-progress-bar{height:100%;background:#2f7a44;transition:width .3s}.paper-table-empty{padding:48px 4px;text-align:center;color:var(--ink-muted);display:flex;flex-direction:column;align-items:center;gap:8px;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table-empty>i{font-size:1.6rem}.q-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:4px}.q-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-range-btns{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.q-range-btns .btn{border:none;border-radius:0;padding:5px 14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);background:var(--paper-card)}.q-range-btns .btn+.btn{border-left:1px solid var(--border-color)}.q-range-btns .btn.active{background:var(--color);color:var(--paper-card)}.btn-dark{background:var(--color)!important;color:var(--paper-card)!important;border-color:var(--color)!important;border-radius:999px;padding:5px 18px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em}.q-cards{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap}.q-card{flex:1;min-width:140px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.q-card:hover{border-color:var(--ink-muted)}.q-card.selected{border-color:var(--color);box-shadow:0 0 0 1px var(--color)}.q-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.q-dot{width:8px;height:8px;border-radius:50%;background:#2f7a44;flex-shrink:0}.q-dot-red{background:#b42318}.dark-mode .q-dot{background:#7dc894}.dark-mode .q-dot-red{background:#f08a82}.q-card-name{font-family:var(--font-mono);font-size:11.5px;font-weight:500;color:var(--ink-muted);letter-spacing:.04em}.q-card-count{font-family:var(--font-serif);font-size:2rem;font-weight:400;line-height:1.1;color:var(--color);margin-bottom:6px}.q-card-sub{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted);letter-spacing:.04em}.q-card-bar{height:4px;background:var(--border-color);border-radius:2px;overflow:hidden;margin-top:6px}.q-card-bar-fill{height:100%;background:#3b4ad6;border-radius:2px;transition:width .3s}.dark-mode .q-card-bar-fill{background:#a7b2ff}.q-detail{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-bottom:20px}.q-throughput{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-chart-wrap{position:relative}.q-throughput canvas{width:100%;display:block}.q-chart-tooltip{position:absolute;pointer-events:none;background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;font-family:var(--font-mono);font-size:11px;line-height:1.6;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.q-chart-tooltip .q-tip-time{color:var(--ink-muted);margin-bottom:2px}.q-chart-tooltip .q-tip-completed{color:#3b4ad6}.q-chart-tooltip .q-tip-failed{color:#b42318}.dark-mode .q-chart-tooltip .q-tip-completed{color:#a7b2ff}.dark-mode .q-chart-tooltip .q-tip-failed{color:#f08a82}.q-chart-crosshair{position:absolute;top:0;width:1px;height:100%;background:var(--ink-muted);opacity:.3;pointer-events:none;z-index:9}.q-stats-panel{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px;display:flex;flex-direction:column}.q-section-label{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:lowercase;letter-spacing:.04em;margin-bottom:14px}.q-section-right{float:right;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.q-legend-completed{color:#3b4ad6}.q-legend-failed{color:#b42318;margin-left:8px}.q-legend-exec{color:#b8860b;margin-left:8px;letter-spacing:2px}.dark-mode .q-legend-completed{color:#a7b2ff}.dark-mode .q-legend-failed{color:#f08a82}.dark-mode .q-legend-exec{color:#f5c842}.q-chart-tooltip .q-tip-exec{color:#b8860b}.dark-mode .q-chart-tooltip .q-tip-exec{color:#f5c842}.q-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;flex:1}.q-stat-label{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.q-stat-value{font-family:var(--font-serif);font-size:1.3rem;font-weight:400;color:var(--color);line-height:1.2}.q-stats-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-color)}.q-stats-actions .btn{font-family:var(--font-mono);font-size:11px;padding:6px 14px;border-radius:8px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.q-jobs{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-jobs-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.q-state-filters{display:inline-flex;gap:6px;flex-wrap:wrap}.q-state-toggle{cursor:pointer;display:inline-flex;align-items:center}.q-state-toggle input{display:none}.q-state-chip{font-family:var(--font-mono);font-size:11px;padding:3px 10px;border-radius:10px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);transition:opacity .15s,background .15s;text-transform:capitalize}.q-state-toggle input:checked+.q-state-chip{opacity:1}.q-state-toggle input:not(:checked)+.q-state-chip{opacity:.4;text-decoration:line-through}.q-state-badge,.q-state-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.q-state-badge{display:inline-block;padding:2px 8px;border-radius:8px}.q-state-active{background:#dbeafe;color:#1d4ed8}.q-state-waiting{background:#fef3c7;color:#92400e}.q-state-delayed{background:#e0e7ff;color:#4338ca}.q-state-failed{background:#fee2e2;color:#b91c1c}.q-state-completed{background:#dcfce7;color:#166534}.dark-mode .q-state-active{background:rgba(59,130,246,.2);color:#93bbfd}.dark-mode .q-state-waiting{background:rgba(251,191,36,.15);color:#fbbf24}.dark-mode .q-state-delayed{background:rgba(99,102,241,.2);color:#a5b4fc}.dark-mode .q-state-failed{background:rgba(239,68,68,.2);color:#fca5a5}.dark-mode .q-state-completed{background:rgba(34,197,94,.15);color:#86efac}.q-cell-state{width:120px}.q-delay-hint{display:block;font-size:10px;color:var(--ink-muted);margin-top:2px;font-family:var(--font-mono)}.q-search-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.q-search-row .form-control{max-width:320px;height:34px}.q-auto-refresh{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.q-table{width:100%;border-collapse:collapse}.q-table thead th{font-family:var(--font-mono);font-size:9.5px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;border-bottom:1px solid var(--border-color);text-align:left;white-space:nowrap}.q-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .1s}.q-table tbody tr:hover{background:var(--paper-bg-alt)}.q-table tbody tr:last-child{border-bottom:none}.q-table tbody td{padding:10px 10px;font-size:.88rem;vertical-align:middle}.q-cell-id{font-family:var(--font-mono);font-size:12px;white-space:nowrap}.q-cell-id{display:flex;align-items:center;gap:8px}.q-chevron{font-size:9px;color:var(--ink-muted);transition:transform .15s;flex-shrink:0}.q-chevron-open{transform:rotate(90deg)}.q-cell-id a{color:var(--color)}.q-cell-payload{font-family:var(--font-mono);font-size:12px;color:var(--color)}.q-payload-detail{color:var(--ink-muted)}.q-cell-num{font-family:var(--font-mono);font-size:12px;text-align:center;white-space:nowrap}.q-cell-progress{min-width:120px}.q-progress-wrap{display:flex;align-items:center;gap:8px}.q-progress-bar{flex:1;height:6px;border-radius:3px;overflow:hidden;background-image:linear-gradient(to right,#3b4ad6 var(--pct,0),var(--border-color) var(--pct,0))}.dark-mode .q-progress-bar{background-image:linear-gradient(to right,#a7b2ff var(--pct,0),var(--border-color) var(--pct,0))}.q-progress-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap;min-width:32px;text-align:right}.q-cell-actions{text-align:right;white-space:nowrap}.q-cell-actions .btn{padding:3px 8px;font-size:11px;background:0 0;border:1px solid var(--border-color);color:var(--ink-muted)}.q-cell-actions .btn:hover{color:var(--color)}.q-row-failed{background:rgba(180,35,24,.04)}.dark-mode .q-row-failed{background:rgba(240,138,130,.06)}.q-error-detail{padding:4px 10px 12px;font-size:12px}.q-error-reason{color:#b42318;font-size:.82rem;margin-bottom:4px}.dark-mode .q-error-reason{color:#f08a82}.q-toast-error{background:#fbe7e7;color:#b42318;border:1px solid #f3c7c7;border-radius:8px;padding:10px 16px;margin-bottom:12px;font-family:var(--font-mono);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px}.dark-mode .q-toast-error{background:rgba(240,138,130,.1);color:#f08a82;border-color:rgba(240,138,130,.25)}.q-error-stack{font-size:.78rem;max-height:120px;overflow:auto;margin:4px 0 0;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px}.q-row-expanded>td{border-bottom-color:transparent}.q-detail-row>td{padding:0 10px 14px!important;border-bottom:1px solid var(--border-color)}.q-job-detail{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:8px;padding:14px 16px}.q-job-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 20px;margin-bottom:10px}.q-job-detail-item{display:flex;flex-direction:column;gap:2px}.q-job-detail-label{font-family:var(--font-mono);font-size:9px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.q-job-detail-value{font-family:var(--font-mono);font-size:12px;color:var(--color);word-break:break-all}.q-job-detail-value a{color:var(--color)}.q-job-detail-error{margin:8px 0}.q-job-detail-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color)}.q-job-detail-actions .btn{font-family:var(--font-mono);font-size:11px;padding:5px 12px;border-radius:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}@media (max-width:900px){.q-detail{grid-template-columns:1fr}.q-cards{flex-direction:column}.q-card{min-width:100%}.q-jobs-header{flex-direction:column;align-items:flex-start}.q-tabs{flex-wrap:wrap}.q-search-row{flex-wrap:wrap}.q-search-row .form-control{max-width:100%;flex:1}.q-table{font-size:12px}.q-header{flex-direction:column}.q-job-detail-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.paper-table .paper-table-head{display:none}.paper-table .admin-users-row,.paper-table .paper-table-row,.paper-table.paper-table-conferences .paper-table-row,.paper-table.paper-table-repos .paper-table-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:14px 0;grid-template-columns:none!important}.paper-table .cell-anon{flex:1 1 calc(100% - 52px);min-width:0;order:1}.paper-table .cell-actions{flex:0 0 auto;order:2;align-self:center}.paper-table .cell-conf,.paper-table .cell-expires,.paper-table .cell-status,.paper-table .cell-views{order:3;font-size:13px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;text-align:left}.paper-table .cell-status{flex-wrap:nowrap;gap:6px;min-width:0}.paper-table .cell-status .status-sub{flex-basis:auto;font-size:13px;line-height:inherit}.paper-table .cell-status .status-sub::before{content:"·";margin-right:6px;color:var(--ink-faint)}.paper-table .cell-conf{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views.num{text-align:left}.paper-table .paper-table-skeleton .cell-expires,.paper-table .paper-table-skeleton .cell-status,.paper-table .paper-table-skeleton .cell-views{flex:1 1 30%}.paper-table .cell-views::before{content:'\f06e';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table .cell-expires::before{content:'\f017';font-family:'Font Awesome 5 Free';font-weight:400;font-size:10px;color:var(--ink-muted)}.paper-table .cell-conf::before{content:'\f51c';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table-dashboard .cell-conf::before{content:none}.paper-table .cell-conf:has(.empty-dash),.paper-table .cell-expires:has(.empty-dash){display:none}.paper-table .cell-expires::before,.paper-table .cell-views::before{color:var(--ink-faint)}}.paper-page .dropdown-menu{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);box-shadow:0 12px 28px rgba(26,24,21,.08);padding:6px;min-width:220px;font-family:var(--font-sans);font-size:14px;color:var(--color);margin-top:6px}.paper-page .dropdown-menu .dropdown-header{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px;font-weight:500}.paper-page .dropdown-menu .dropdown-item{border-radius:6px;padding:8px 10px;color:var(--color);font-size:14px;display:flex;align-items:center;gap:8px}.paper-page .dropdown-menu .dropdown-item:focus,.paper-page .dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .dropdown-menu .dropdown-item i{width:16px;font-size:13px;color:var(--ink-muted)}.paper-page .dropdown-menu .form-check.dropdown-item{padding:8px 10px 8px 36px!important;position:relative}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-input{position:absolute;left:12px;top:50%;transform:translateY(-50%);margin:0;width:16px;height:16px;accent-color:var(--color);cursor:pointer}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-label{font-family:var(--font-sans);font-size:14px;color:var(--color);font-weight:400;margin:0;cursor:pointer}.btn.btn-icon-dots{width:32px;height:32px;padding:0;border:1px solid transparent;background:0 0;color:var(--ink-muted);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn.btn-icon-dots:focus,.btn.btn-icon-dots:hover,.btn.btn-icon-dots[aria-expanded=true]{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.btn.btn-icon-dots::after{display:none}.btn.btn-icon-dots i{font-size:15px}.paper-page .repo-list-empty{border-top:none;padding:56px 20px;color:var(--ink-muted)}.paper-page .filter-chip{background:var(--paper-bg-alt);color:var(--color);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}@media (max-width:768px){.paper-page .paper-page-title{font-size:clamp(1.4rem,6vw,1.9rem);margin:4px 0 2px}.paper-page .paper-page-lede{font-size:13px;line-height:1.4;margin-bottom:0}.paper-page .btn-ink{padding:6px 12px;font-size:13px}.paper-page .quota-row{grid-template-columns:1fr;gap:12px;padding:0;margin:16px 0 0}.paper-page .dashboard-filter-row{padding:10px 0;margin-top:12px;gap:8px}.paper-page .quota-header{flex-direction:row;align-items:baseline;gap:8px}.paper-page .quota-value{white-space:nowrap}.paper-page .dashboard-filter-controls{width:100%}.paper-page .dashboard-filter-controls .btn-group{flex:1 1 100%;display:flex}.paper-page .dashboard-filter-controls .btn-group .btn{flex:1;justify-content:center}.paper-page .dashboard-filter-controls .dropdown{flex:1 1 0;min-width:0}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{width:100%;justify-content:space-between}.paper-page .dashboard-filter-controls .dropdown .filter-btn-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:480px){.paper-page .paper-page-lede{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.empty-state{text-align:center;padding:40px 20px;opacity:.6}.empty-state i{font-size:2rem;margin-bottom:10px;display:block}.paper-page .progress{height:10px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;margin-bottom:20px}.paper-page .progress .progress-bar{background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:10px;line-height:10px}.paper-page .progress .progress-bar.bg-success{background:var(--status-ready)!important}.paper-page .progress .progress-bar.bg-warning{background:var(--status-progress)!important;color:#fff}.paper-page .progress .progress-bar.bg-danger{background:var(--status-error)!important}.paper-page .progress .progress-bar.bg-dark{background:var(--ink-faint)!important}.paper-page .form>h5,.paper-page form>h5,.paper-page>h5{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:24px 0 8px}.paper-page .accordion .card{background:var(--paper-card,var(--sidebar-bg-color));border:1px solid var(--border-color);border-radius:8px!important;margin-bottom:8px;overflow:hidden}.paper-page .accordion .card+.card{border-top:1px solid var(--border-color)}.paper-page .accordion .card-header{background:0 0;border:none;padding:0}.paper-page .accordion .card-header .btn{color:var(--color)!important;font-family:var(--font-sans);font-weight:500;font-size:14px;padding:14px 18px!important;background:0 0!important;border:none!important;position:relative}.paper-page .accordion .card-header .btn::after{content:"+";position:absolute;right:18px;font-family:var(--font-serif);font-size:20px;color:var(--ink-muted)}.paper-page .accordion .card-header .btn:not(.collapsed)::after{content:"–"}.paper-page .accordion .card-body{padding:6px 18px 18px!important;border-top:1px solid var(--border-soft)}.paper-page .accordion .form-check-label{color:var(--color);font-weight:500;font-size:13.5px}.paper-page .accordion .form-text{color:var(--ink-muted);font-size:12px;margin-top:2px}.faq-section .panel-body code{font-family:var(--font-mono);font-size:13px;padding:1px 6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:3px;color:var(--color)}.faq-section .panel-body a{color:var(--accent)}@media (max-width:820px){.paper-faq-body{grid-template-columns:1fr;gap:24px}.paper-faq-toc{position:static}}.paper-footer{margin-top:80px;padding:56px max(20px,calc((100vw - 1200px)/ 2)) 28px;border-top:1px solid var(--border-color);background:var(--canvas-bg-color);font-family:var(--font-sans)}.paper-footer-inner{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}.paper-footer-brand .paper-footer-mark{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--color)}.paper-footer-brand .paper-footer-mark em{font-style:italic;font-weight:400}.paper-footer-tag{margin-top:10px;color:var(--ink-soft);font-size:13.5px;line-height:1.55;max-width:340px}.paper-footer-head{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.paper-footer-col a{display:block;color:var(--color);font-size:13.5px;padding:4px 0;text-decoration:none}.paper-footer-col a:hover{color:var(--accent)}.paper-footer-rule{height:1px;background:var(--border-color);margin:40px 0 16px}.paper-footer-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.02em}.paper-footer-foot .paper-footer-meta{font-family:var(--font-serif);font-style:italic;font-size:13.5px;letter-spacing:0;color:var(--ink-soft)}@media (max-width:768px){.paper-footer-inner{grid-template-columns:1fr 1fr}}.file.folder.truncated .truncated-warning{color:#d39e00;margin-left:4px;font-size:.85em;flex-shrink:0}.file.folder.truncated>a{color:#d39e00}body{--bucket-error-bg:#FCEDED;--bucket-error-fg:#8A1F1F;--bucket-error-bd:#F0C4C4;--bucket-error-dot:#B53737;--bucket-warn-bg:#FFF3DF;--bucket-warn-fg:#7A4D00;--bucket-warn-bd:#F0D8A0;--bucket-warn-dot:#B07A2F;--bucket-info-bg:#EAF2EC;--bucket-info-fg:#2C5D3A;--bucket-info-bd:#C5DCCD;--bucket-info-dot:#5B8D6B;--card-shadow:0 1px 2px rgba(26, 24, 21, 0.04),0 4px 14px rgba(26, 24, 21, 0.05);--card-shadow-hover:0 1px 2px rgba(26, 24, 21, 0.06),0 8px 24px rgba(26, 24, 21, 0.08)}.dark-mode{--bucket-error-bg:rgba(255, 139, 123, 0.10);--bucket-error-fg:#FF8B7B;--bucket-error-bd:rgba(255, 139, 123, 0.28);--bucket-error-dot:#FF8B7B;--bucket-warn-bg:rgba(255, 211, 122, 0.10);--bucket-warn-fg:#FFD37A;--bucket-warn-bd:rgba(255, 211, 122, 0.28);--bucket-warn-dot:#FFD37A;--bucket-info-bg:rgba(152, 200, 168, 0.10);--bucket-info-fg:#98C8A8;--bucket-info-bd:rgba(152, 200, 168, 0.28);--bucket-info-dot:#98C8A8;--card-shadow:0 1px 2px rgba(0, 0, 0, 0.35),0 6px 18px rgba(0, 0, 0, 0.30);--card-shadow-hover:0 2px 4px rgba(0, 0, 0, 0.45),0 12px 28px rgba(0, 0, 0, 0.40)}.errors-page .errors-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 8px}.errors-page .errors-actions{display:flex;gap:6px}.errors-page .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:14px 0 18px}.errors-page .kpi-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease,transform 160ms ease}.errors-page .kpi-card:hover{box-shadow:var(--card-shadow-hover)}.errors-page .kpi-label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.errors-page .kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.errors-page .kpi-card.kpi-error .kpi-value{color:var(--bucket-error-fg)}.errors-page .kpi-card.kpi-warn .kpi-value{color:var(--bucket-warn-fg)}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--bucket-info-fg)}.errors-page .kpi-sub{font-size:.78rem;color:var(--ink-muted);font-style:italic}.errors-page .kpi-sub.up{color:var(--bucket-error-fg);font-style:normal}.errors-page .kpi-sub.down{color:var(--bucket-info-fg);font-style:normal}.errors-page .dropped-warn{color:var(--bucket-error-fg);font-weight:600;font-style:normal}.errors-page .volume-chart{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;margin-bottom:18px;box-shadow:var(--card-shadow)}.errors-page .volume-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.7rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.errors-page .volume-legend{display:flex;gap:14px;align-items:center;text-transform:none;letter-spacing:0;font-family:var(--font-sans)}.errors-page .volume-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}.errors-page .dot.dot-error{background:var(--bucket-error-dot)}.errors-page .dot.dot-warn{background:var(--bucket-warn-dot)}.errors-page .dot.dot-info{background:var(--bucket-info-dot)}.errors-page .volume-bars{display:flex;align-items:flex-end;gap:4px;height:80px}.errors-page .volume-bar{display:flex;flex-direction:column-reverse;flex:1 1 0;min-width:6px;height:100%}.errors-page .volume-bar .seg{display:block;width:100%}.errors-page .seg.seg-error{background:var(--bucket-error-dot)}.errors-page .seg.seg-warn{background:var(--bucket-warn-dot)}.errors-page .seg.seg-info{background:var(--bucket-info-dot);opacity:.7}.errors-page .errors-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.errors-page .seg-tabs{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--paper-card)}.errors-page .seg-tabs button{background:0 0;border:none;padding:6px 14px;font-size:.85rem;cursor:pointer;color:var(--color);font-family:var(--font-sans)}.errors-page .seg-tabs button+button{border-left:1px solid var(--border-color)}.errors-page .seg-tabs button.active{background:var(--primary-bg);color:var(--primary-color)}.errors-page .errors-toolbar .search-wrap{position:relative;flex:1 1 320px;min-width:220px}.errors-page .errors-toolbar .search-wrap input{width:100%;padding:6px 10px 6px 32px;border:1px solid var(--border-color);border-radius:8px;font-family:var(--font-mono);font-size:.82rem;background:var(--input-bg);color:var(--input-color)}.errors-page .errors-toolbar .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-muted);font-size:.85rem}.errors-page .errors-toolbar .filter-count{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.72rem;color:var(--ink-muted)}.errors-page .errors-toolbar .select-wrap{display:inline-flex;align-items:center;gap:6px}.errors-page .errors-toolbar .select-wrap label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin:0}.errors-page .errors-toolbar .select-wrap select{background:var(--input-bg);color:var(--input-color);border:1px solid var(--border-color);border-radius:8px}.errors-page .errors-toolbar .autoref{display:inline-flex;gap:6px;align-items:center;font-size:.82rem;color:var(--color);cursor:pointer;margin:0}.errors-page .btn-icon{width:32px;padding:4px 0}.errors-page .errors-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;box-shadow:var(--card-shadow)}.errors-page .errors-list-head,.errors-page .errors-row-main{display:grid;grid-template-columns:110px 100px 100px 1fr 60px 70px;gap:16px;padding:18px 20px;align-items:start}.errors-page .errors-list-head{padding:12px 20px;align-items:center}.errors-page .errors-list-head{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.errors-page .errors-row{border-bottom:1px solid var(--border-soft)}.errors-page .errors-row:last-child{border-bottom:none}.errors-page .errors-row.open{background:var(--paper-bg-alt)}.errors-page .errors-row-main{cursor:pointer}.errors-page .errors-row-main:hover{background:var(--hover-bg-color)}.errors-page .col-when .when-rel{font-size:.95rem;color:var(--color);font-variant-numeric:tabular-nums}.errors-page .col-when .when-abs{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-top:2px}.errors-page .col-sev{display:flex;align-items:center;gap:8px}.errors-page .sev-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.errors-page .sev-dot.sev-error{background:var(--bucket-error-dot)}.errors-page .sev-dot.sev-warn{background:var(--bucket-warn-dot)}.errors-page .sev-dot.sev-info{background:var(--bucket-info-dot)}.errors-page .sev-label{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;color:var(--color)}.errors-page .pill-module{display:inline-block;font-family:var(--font-mono);font-size:.78rem;background:var(--paper-bg-alt);color:var(--ink-soft);border:1px solid var(--border-color);padding:3px 10px;border-radius:6px}.errors-page .col-msg .msg-code{font-family:var(--font-mono);font-size:1rem;color:var(--color);font-weight:600}.errors-page .col-msg .msg-context{color:var(--ink-muted);font-style:italic;font-size:.88rem;margin-left:10px}.errors-page .col-msg .msg-detail{color:var(--ink-soft);font-family:var(--font-mono);font-size:.82rem;margin-left:10px}.errors-page .col-msg .msg-url{color:var(--ink-muted);font-family:var(--font-mono);font-size:.8rem;margin-top:6px;word-break:break-all}.errors-page .count-pill{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--primary-bg);color:var(--primary-color);font-family:var(--font-mono);font-size:.78rem;font-variant-numeric:tabular-nums}.errors-page .count-pill.count-pill-muted{background:0 0;color:var(--ink-muted);border:1px solid var(--border-color)}.errors-page .status-pill{display:inline-block;padding:2px 10px;border-radius:4px;font-family:var(--font-mono);font-size:.8rem;font-variant-numeric:tabular-nums;border:1px solid transparent}.errors-page .status-pill.status-error{background:var(--bucket-error-bg);color:var(--bucket-error-fg);border-color:var(--bucket-error-bd)}.errors-page .status-pill.status-warn{background:var(--bucket-warn-bg);color:var(--bucket-warn-fg);border-color:var(--bucket-warn-bd)}.errors-page .status-pill.status-info{background:var(--bucket-info-bg);color:var(--bucket-info-fg);border-color:var(--bucket-info-bd)}.errors-page .errors-row-detail{padding:0 16px 16px}.errors-page .detail-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color);margin-bottom:12px}.errors-page .detail-tabs button{background:0 0;border:0;border-bottom:2px solid transparent;padding:8px 12px;font-size:.85rem;cursor:pointer;color:var(--ink-muted);font-family:var(--font-sans)}.errors-page .detail-tabs button.active{color:var(--color);border-bottom-color:var(--color)}.errors-page .detail-body{display:grid;grid-template-columns:1fr 260px;gap:20px}.errors-page .detail-main pre{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;font-family:var(--font-mono);font-size:.85rem;line-height:1.7;color:var(--color);max-height:26em;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;box-shadow:var(--card-shadow)}.errors-page .related-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;max-height:22em;overflow:auto;box-shadow:var(--card-shadow)}.errors-page .stack-pre{line-height:1.45;white-space:pre;overflow-x:auto}.errors-page .related-row{display:flex;gap:10px;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border-soft);font-size:.8rem}.errors-page .related-row:last-child{border-bottom:none}.errors-page .detail-actions{display:flex;gap:6px;align-items:center;margin-top:10px}.errors-page .copy-hint{font-size:.78rem;color:var(--bucket-info-fg)}.errors-page .detail-aside{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px;box-shadow:var(--card-shadow)}.errors-page .aside-block+.aside-block{margin-top:16px}.errors-page .aside-label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:4px}.errors-page .aside-value{font-family:var(--font-serif);font-size:1.05rem;color:var(--color);word-break:break-word;line-height:1.3}.errors-page .aside-value.mono{font-family:var(--font-mono);font-size:.82rem}.errors-page .aside-sub{color:var(--ink-muted);font-style:italic;font-size:.8rem;font-family:var(--font-sans)}.errors-page .errors-pager{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:var(--ink-muted);font-size:.85rem}@media (max-width:720px){.errors-page .errors-list-head,.errors-page .errors-row-main{grid-template-columns:80px 80px 1fr 60px}.errors-page .errors-list-head .col-mod,.errors-page .errors-list-head .col-sev,.errors-page .errors-row-main .col-mod,.errors-page .errors-row-main .col-sev{display:none}.errors-page .detail-body{grid-template-columns:1fr}}.overview-page .ov-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:2px}.overview-page .ov-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;vertical-align:middle}.overview-page .ov-dot-ok{background:#2f7a44}.overview-page .ov-dot-warn{background:#c48a2e}.overview-page .ov-dot-idle{background:var(--ink-muted)}.dark-mode .overview-page .ov-dot-ok{background:#7dc894}.dark-mode .overview-page .ov-dot-warn{background:#e8b970}.overview-page .ov-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:16px 0 22px}.overview-page .ov-kpi-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease}.overview-page .ov-kpi-card:hover{box-shadow:var(--card-shadow-hover)}.overview-page .ov-kpi-label{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.overview-page .ov-kpi-value.ov-val-warn{color:#b42318}.dark-mode .overview-page .ov-kpi-value.ov-val-warn{color:#f08a82}.overview-page .ov-kpi-sub{font-size:.76rem;color:var(--ink-muted);margin-top:2px}.overview-page .ov-daily-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:-4px 0 22px}.overview-page .ov-daily-card{background:var(--primary-bg);border:1px solid var(--border-color);border-radius:12px;padding:16px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-daily-label{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-daily-value{font-family:var(--font-serif);font-size:2.35rem;font-weight:400;line-height:1;color:var(--accent,#3b4ad6);margin-top:6px}.overview-page .ov-daily-sub{font-size:.76rem;color:var(--ink-muted);margin-top:5px}.dark-mode .overview-page .ov-daily-card{background:var(--paper-card)}.dark-mode .overview-page .ov-daily-value{color:#a7b2ff}.overview-page .ov-chart-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.overview-page .ov-chart-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px 14px;box-shadow:var(--card-shadow)}.overview-page .ov-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.overview-page .ov-chart-title{font-family:var(--font-serif);font-size:1.05rem}.overview-page .ov-chart-legend{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-muted);display:flex;align-items:center;gap:5px}.overview-page .ov-dot-legend{display:inline-block;width:8px;height:8px;border-radius:50%}.overview-page .ov-dot-accent{background:var(--accent,#3b4ad6)}.overview-page .ov-dot-ok-fill{background:#2f7a44}.overview-page .ov-dot-user-fill{background:#8b5e2e}.overview-page .ov-dot-new-user-fill{background:#c48a2e}.dark-mode .overview-page .ov-dot-ok-fill{background:#7dc894}.dark-mode .overview-page .ov-dot-user-fill{background:#d0a15f}.dark-mode .overview-page .ov-dot-new-user-fill{background:#e8b970}.overview-page .ov-spark-bars{display:flex;align-items:flex-end;gap:3px;height:140px}.overview-page .ov-spark-col{flex:1;display:flex;align-items:flex-end;height:100%;position:relative}.overview-page .ov-spark-fill{width:100%;background:var(--accent,#3b4ad6);border-radius:2px 2px 0 0;transition:height .3s ease;opacity:.55}.overview-page .ov-spark-fill-alt{background:#2f7a44}.overview-page .ov-spark-fill-user{background:#8b5e2e}.overview-page .ov-spark-fill-new-user{background:#c48a2e}.dark-mode .overview-page .ov-spark-fill-alt{background:#7dc894}.dark-mode .overview-page .ov-spark-fill-user{background:#d0a15f}.dark-mode .overview-page .ov-spark-fill-new-user{background:#e8b970}.overview-page .ov-spark-col:hover .ov-spark-fill{opacity:1}.overview-page .ov-spark-col.has-tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);z-index:10;padding:6px 8px;border-radius:6px;background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:.68rem;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) translateY(4px);z-index:10;border:5px solid transparent;border-top-color:var(--color);opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip:hover::after,.overview-page .ov-spark-col.has-tip:hover::before{opacity:1;transform:translateX(-50%) translateY(0)}.overview-page .ov-spark-x{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.66rem;color:var(--ink-muted);margin-top:6px}.overview-page .ov-triple-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:18px}.overview-page .ov-panel-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.overview-page .ov-panel-title{font-family:var(--font-serif);font-size:1.05rem}.overview-page .ov-panel-meta{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.overview-page .ov-panel-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color);font-size:.82rem}.overview-page .ov-panel-foot a{color:var(--link-color);text-decoration:none}.overview-page .ov-panel-foot a:hover{text-decoration:underline}.overview-page .ov-stacked-bar{display:flex;height:18px;border-radius:6px;overflow:hidden;margin-bottom:14px}.overview-page .ov-bar-seg{min-width:2px;transition:width .4s ease}.overview-page .ov-bar-ready{background:#2f7a44}.overview-page .ov-bar-preparing{background:#c48a2e}.overview-page .ov-bar-error{background:#b42318}.overview-page .ov-bar-expired{background:#8a857c}.overview-page .ov-bar-removed{background:#b5afa2}.dark-mode .overview-page .ov-bar-ready{background:#7dc894}.dark-mode .overview-page .ov-bar-preparing{background:#e8b970}.dark-mode .overview-page .ov-bar-error{background:#f08a82}.dark-mode .overview-page .ov-bar-expired{background:#6b665e}.dark-mode .overview-page .ov-bar-removed{background:#4a453e}.overview-page .ov-bar-legend{display:flex;flex-direction:column;gap:6px}.overview-page .ov-legend-item{display:flex;align-items:center;gap:8px;font-size:.82rem;text-decoration:none;color:inherit}.overview-page .ov-legend-item:hover{text-decoration:none;color:inherit}.overview-page .ov-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.overview-page .ov-legend-n{margin-left:auto;font-family:var(--font-mono);font-size:.8rem;font-weight:600}.overview-page .ov-error-bars{display:flex;flex-direction:column;gap:12px}.overview-page .ov-ebar-row{display:flex;align-items:center;gap:10px}.overview-page .ov-ebar-label{width:30px;flex-shrink:0;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--ink-muted)}.overview-page .ov-ebar-track{flex:1;height:10px;background:var(--hover-bg-color);border-radius:5px;overflow:hidden}.overview-page .ov-ebar-fill{height:100%;border-radius:5px;transition:width .4s ease}.overview-page .ov-ebar-error{background:#b42318}.overview-page .ov-ebar-warn{background:#c48a2e}.overview-page .ov-ebar-info{background:var(--accent,#3b4ad6)}.dark-mode .overview-page .ov-ebar-error{background:#f08a82}.dark-mode .overview-page .ov-ebar-warn{background:#e8b970}.overview-page .ov-ebar-n{width:36px;text-align:right;font-family:var(--font-mono);font-size:.82rem;font-weight:600;flex-shrink:0}.overview-page .ov-routes-table{display:flex;flex-direction:column}.overview-page .ov-route-row{display:grid;grid-template-columns:1fr 60px 60px 60px;padding:8px 0;border-bottom:1px solid var(--border-soft,var(--border-color));text-decoration:none;color:inherit;font-size:.85rem;align-items:center}.overview-page .ov-route-row:last-child{border-bottom:none}.overview-page .ov-route-row:hover{background:var(--hover-bg-color);text-decoration:none;color:inherit}.overview-page .ov-route-head{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);border-bottom:1px solid var(--border-color)}.overview-page .ov-route-head:hover{background:0 0}.overview-page .ov-route-name{font-family:var(--font-mono);font-size:.84rem}.overview-page .ov-route-n{text-align:right;font-family:var(--font-mono);font-size:.84rem}.overview-page .ov-route-lat{color:var(--ink-muted)}.overview-page .ov-n-bad{color:#b42318;font-weight:600}.dark-mode .overview-page .ov-n-bad{color:#f08a82}.overview-page .ov-services-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;box-shadow:var(--card-shadow);margin-bottom:18px}.overview-page .ov-services-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.overview-page .ov-services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.overview-page .ov-svc{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border-soft,var(--border-color));border-radius:10px}.overview-page .ov-svc-dot{width:10px;height:10px;border-radius:50%;margin-top:3px;flex-shrink:0}.overview-page .ov-svc-info{display:flex;flex-direction:column;gap:1px;flex:1}.overview-page .ov-svc-name{font-family:var(--font-mono);font-size:.88rem;font-weight:600}.overview-page .ov-svc-meta{font-size:.76rem;color:var(--ink-muted)}.overview-page .ov-svc-detail{font-size:.74rem;color:var(--ink-muted);white-space:nowrap}@media (max-width:900px){.overview-page .ov-kpi-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-daily-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-triple-row{grid-template-columns:1fr}}@media (max-width:720px){.overview-page .ov-kpi-row{grid-template-columns:repeat(2,1fr)}.overview-page .ov-daily-row{grid-template-columns:1fr}.overview-page .ov-chart-row{grid-template-columns:1fr}.overview-page .ov-header{flex-direction:column;gap:8px}}@media (max-width:480px){.overview-page .ov-kpi-row{grid-template-columns:1fr 1fr}.overview-page .ov-services-grid{grid-template-columns:1fr 1fr}}.dashboard-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-bottom:12px}.dashboard-heading-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.dashboard-connections-link{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:var(--ink-muted);font-size:12px;line-height:1.5}.dashboard-connections-link:hover{color:var(--accent);text-decoration:none}.dashboard-connections-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (max-width:767px){.dashboard-heading-actions{align-items:flex-start;padding-bottom:0;gap:4px}.dashboard-connections-link{min-height:44px}}.paper-settings-connection-link{display:flex;align-items:center;gap:12px;padding:18px 0;color:var(--color);font-size:14px}.paper-settings-connection-link>i{color:var(--ink-muted);font-size:18px}.paper-settings-connection-link>span:first-of-type{flex:1}.paper-settings-connection-link small{display:block;margin-top:4px;color:var(--ink-muted);font-size:12px}.paper-settings-connection-link:hover{color:var(--accent);text-decoration:none}.paper-settings-connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.connections-heading{margin-bottom:36px}.connections-heading .paper-page-title{font-size:clamp(38px,4.5vw,56px);margin-bottom:12px}.connections-heading .paper-page-lede{font-size:15px}.connections-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start;border-top:1px solid var(--border-color);padding-top:28px}.connections-grid>section{min-width:0}.connection-title,.connection-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.connection-top{margin-bottom:24px;min-height:28px}.connection-top>i{color:var(--ink-muted);font-size:24px}.connection-top>.fa-key{font-size:18px}.connection-title{margin-bottom:10px}.connections-page h2{font-family:inherit;font-size:21px;font-weight:600;letter-spacing:-.5px;margin:0}.connections-page p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.connection-badge{background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;border-radius:5px;padding:4px 8px;white-space:nowrap}.connection-badge-muted{background:var(--paper-bg-alt);color:var(--ink-muted)}.connection-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-muted)}.connection-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.connection-status.is-connected{color:var(--status-ready)}.connection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:22px 0 16px}.connections-page .btn{font-size:13px;padding:9px 13px;white-space:normal}.connection-revoke p,.connections-page .connection-help{font-size:12px}.connection-link{display:inline-flex;align-items:center;gap:8px;border:0;padding:0;background:0 0;color:var(--accent);font-size:13px;line-height:1.6;font-weight:500;text-align:left;cursor:pointer}.connection-link:hover{color:var(--link-hover-color);text-decoration:underline}.connection-link:disabled{color:var(--ink-muted);opacity:.65;cursor:not-allowed;text-decoration:none}.connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.connection-installations{list-style:none;padding:0;margin:18px 0;border-top:1px solid var(--border-soft)}.connection-installations li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0;font-size:12px;border-bottom:1px solid var(--border-soft)}.connection-revoke{border-top:1px solid var(--border-soft);padding-top:18px;margin-top:24px}.connection-danger{color:var(--status-error)}.connection-resources{margin-top:36px;padding-top:28px;border-top:1px solid var(--border-color)}.connection-count{color:var(--ink-muted);font-size:12px}.connection-empty{display:flex;align-items:center;gap:18px;padding:20px 0;margin:22px 0}.connection-empty>i{font-size:22px;color:var(--ink-muted)}.connection-empty h3{font-size:14px;font-weight:600;margin:0 0 5px}.connection-empty p{font-size:12px;margin:0}.connection-empty>a{margin-left:auto;flex-shrink:0}.connection-resource{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--border-color)}.connection-resource-name{flex:1;min-width:180px;overflow-wrap:anywhere;font-size:14px}.connection-resource-name small{display:block;color:var(--ink-muted);font-size:11px;margin-top:5px}.connection-resource-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.connection-resource-actions .connection-help{flex-basis:100%}.connections-page .connection-footnote{display:flex;align-items:baseline;gap:10px;margin-top:22px;font-size:12px}@media (max-width:767px){.connections-grid{grid-template-columns:1fr;gap:28px}.connections-grid>section+section{border-top:1px solid var(--border-color);padding-top:28px}.connection-empty{flex-wrap:wrap}.connection-empty>div{flex:1;min-width:180px}.connection-empty>a{margin-left:40px}.connection-resource-actions{flex-basis:100%}}.paper-table-empty-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.paper-table-empty-actions .btn>i{font-size:1em;line-height:1;color:inherit;margin-right:0!important}.auth-back{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-muted);margin-bottom:48px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.auth-intro,.auth-options{padding-top:28px}.auth-title-mobile{display:none}.auth-intro .paper-page-title{font-size:clamp(48px,5vw,76px);line-height:1.06;margin:18px 0 24px}.auth-intro .paper-page-lede{max-width:330px}.auth-options{display:grid;gap:28px}.auth-options h2{font-family:inherit;font-size:21px;font-weight:600;margin:0 0 10px}.auth-options p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.auth-options .auth-existing{font-size:12px;border-left:2px solid var(--accent);padding-left:14px;margin:0}.auth-permissions{padding:6px 0 12px;list-style:none;font-size:13px;line-height:1.6}.auth-permissions li{display:flex;gap:10px;margin:12px 0}.auth-permissions i{color:var(--status-ready);margin-top:4px}.auth-continue{display:flex!important;align-items:center;justify-content:space-between;min-height:48px;padding:12px 16px!important}.auth-options small{display:block;font-size:12px;text-align:center;color:var(--ink-muted);margin-top:12px}.auth-legacy{border-top:1px solid var(--border-color);padding-top:24px}.auth-legacy h2{font-size:16px;margin:0}.auth-legacy p{font-size:13px}.repo-access{max-width:1036px;margin:24px auto 0;border-bottom:1px solid var(--border-color);flex-shrink:0}.repo-access-main{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;flex-wrap:wrap}.repo-access-heading{display:flex;align-items:center;gap:12px}.repo-access-heading>i{font-size:22px;color:var(--ink-muted)}.repo-access-heading h2{font-family:inherit;font-size:13px;font-weight:600;margin:0 0 4px}.repo-access-heading p{font-size:12px;color:var(--ink-muted);margin:0}.repo-access-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.repo-access-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--border-color);border-radius:7px;flex-wrap:wrap}.repo-access-switch button{border:0;border-radius:4px;background:0 0;color:var(--ink-muted);padding:7px 10px;font:inherit;font-size:12px;cursor:pointer}.repo-access-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);opacity:1;cursor:default;font-weight:600}.repo-access-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.repo-access .btn{font-size:12px;padding:8px 12px}.repo-access-note{display:flex;gap:6px 16px;flex-wrap:wrap;padding:0 0 14px;color:var(--ink-muted);font-size:11px;line-height:1.6}@media (max-width:1100px){.repo-access{margin-left:24px;margin-right:24px}}@media (max-width:767px){.auth-page{max-width:480px}.auth-back,.auth-intro .paper-eyebrow,.auth-title-desktop{display:none}.auth-title-mobile{display:inline}.auth-layout{grid-template-columns:1fr;gap:24px}.auth-intro,.auth-options{padding-top:0}.auth-intro .paper-page-title{font-size:40px;line-height:1.15;margin:6px 0 12px}.auth-intro .paper-page-lede{max-width:none;font-size:14px;margin:0}.auth-options{gap:24px}.auth-options .connection-top{margin-bottom:16px}.auth-options h2{font-size:18px}.auth-options p{font-size:13px;margin-bottom:12px}.auth-permissions{padding:0;margin:14px 0 20px;font-size:12px}.auth-permissions li{margin:8px 0}.auth-continue{font-size:14px}.auth-legacy{padding-top:20px}.auth-legacy h2{font-size:15px}.auth-legacy .connection-link{min-height:44px}.repo-access{margin:16px 18px 0}.repo-access-controls{width:100%;gap:12px}} \ No newline at end of file + */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.nb-notebook{line-height:1.5}.nb-stderr,.nb-stdout{white-space:pre-wrap;margin:1em 0;padding:.1em .5em}.nb-stderr{background-color:#faa}.nb-cell+.nb-cell{margin-top:.5em}.nb-output table{border:1px solid #000;border-collapse:collapse}.nb-output th{font-weight:700}.nb-output td,.nb-output th{border:1px solid #000;padding:.25em;text-align:left;vertical-align:middle;border-collapse:collapse}.nb-notebook blockquote{border-left:5px solid #ccc;margin-left:0;padding-left:1em}.nb-cell{position:relative}.nb-raw-cell{white-space:pre-wrap;background-color:#f5f2f0;font-family:Consolas,Monaco,'Andale Mono',monospace;padding:1em;margin:.5em 0}.nb-output{min-height:1em;width:100%;overflow-x:scroll;border-right:1px dotted #ccc}.nb-output img{max-width:100%}.nb-input:before,.nb-output:before{position:absolute;font-family:monospace;color:#999;left:-7.5em;width:7em;text-align:right}.nb-input:before{content:"In [" attr(data-prompt-number) "]:"}.nb-output:before{content:"Out [" attr(data-prompt-number) "]:"}// Fix pandas dataframe formatting div[style="max-height:1000px;max-width:1500px;overflow:auto;"]{max-height:none!important}@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.10"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.mermaid{text-align:center;margin:1em 0;overflow:auto}.mermaid svg{max-width:100%;height:auto}.dark-mode .mermaid{filter:invert(1) hue-rotate(180deg)}.dark-mode .mermaid svg{background:0 0}.dark-mode .mermaid .edgeLabel,.dark-mode .mermaid .nodeLabel{filter:invert(1) hue-rotate(180deg)}.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon,.mermaid .node rect{stroke-width:2px}.mermaid .flowchart-link{stroke-width:2px}.mermaid .actor{fill:#f9f9f9;stroke:#333;stroke-width:2px}.mermaid .messageLine0,.mermaid .messageLine1{stroke:#333;stroke-width:1.5px}.mermaid .section0,.mermaid .section1,.mermaid .section2,.mermaid .section3{opacity:.8}.mermaid .pieChart .slice{opacity:.9}.markdown-body .mermaid{background:0 0;border:none;padding:10px}.mermaid .error{color:#d32f2f;font-family:monospace;font-size:12px;padding:10px;border:1px solid #d32f2f;border-radius:4px;background-color:#ffebee}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff')}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.5;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2::before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent;-webkit-text-decoration-skip:objects}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit}.markdown-body strong{font-weight:bolder}.markdown-body h1{font-size:2em;margin:.67em 0}.markdown-body img{border-style:none}.markdown-body svg:not(:root){overflow:hidden}.markdown-body hr{box-sizing:content-box;height:0;overflow:visible}.markdown-body input{font:inherit;margin:0}.markdown-body input{overflow:visible}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:0 0;border:0;border-bottom:1px solid #dfe2e5}.markdown-body hr::before{display:table;content:""}.markdown-body hr::after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:0}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body code{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.dark-mode{--canvas-bg-color:#1B1916;--sidebar-bg-color:#1A1918;--main-bg-color:#1B1916;--header-bg-color:#1A1918;--hover-bg-color:rgba(255, 255, 255, 0.05);--header-color:#FAF9F6;--color:#D6D1C5;--link-color:#A7B2FF;--link-hover-color:#C8CEFF;--border-color:#33302B;--border-soft:#2A2825;--btn-color:#FAF9F6;--input-color:#E6E1D8;--input-bg:#25231F;--primary-bg:#FAF9F6;--primary-hover-bg:#FFFFFF;--primary-color:#1A1815;--primary-active-color:#1A1815;--accent:#A7B2FF;--accent-soft:rgba(167, 178, 255, 0.12);--ink-muted:#A39D92;--ink-faint:#8A857C;--ink-soft:#B5AFA2;--status-ready:#5FB27A;--status-progress:#E0A94A;--status-error:#F08A82;--status-inactive:#8A857C;--status-error-soft:rgba(240, 138, 130, 0.08);--status-error-soft-hover:rgba(240, 138, 130, 0.14);--admin-nav-bg:#1A1918;--admin-nav-active:rgba(167, 178, 255, 0.12);--admin-stat-bg:#25231F;--paper-card:#25231F;--paper-bg-alt:#201E1B;--highlight:#3A341E;background-color:var(--canvas-bg-color);color:var(--color)}body{--canvas-bg-color:#FAF9F6;--sidebar-bg-color:#FFFFFF;--header-bg-color:#FAF9F6;--header-color:#1A1815;--main-bg-color:#FAF9F6;--hover-bg-color:rgba(26, 24, 21, 0.05);--input-color:#1A1815;--color:#1A1815;--link-color:#3B4AD6;--link-hover-color:#2E3BB8;--border-color:#E6E1D8;--border-soft:#EDE9E1;--btn-color:#1A1815;--input-bg:#FFFFFF;--primary-bg:#1A1815;--primary-hover-bg:#000000;--primary-color:#FAF9F6;--primary-active-color:#FAF9F6;--accent:#3B4AD6;--accent-soft:#EEF0FF;--ink-muted:#6F6A61;--ink-faint:#8A857C;--ink-soft:#4A4641;--paper-bg-alt:#F3F1EC;--paper-card:#FFFFFF;--highlight:#FFF3C4;--status-ready:#2F7A44;--status-progress:#946512;--status-error:#B42318;--status-inactive:#8A857C;--status-error-soft:rgba(180, 35, 24, 0.04);--status-error-soft-hover:rgba(180, 35, 24, 0.08);--radius-control:6px;--radius-surface:10px;--font-serif:'Instrument Serif','Iowan Old Style',Georgia,serif;--font-sans:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;--font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;background-color:var(--canvas-bg-color);color:var(--color);font-family:var(--font-sans);font-size:14px;letter-spacing:-.005em;line-height:1.5}.fadeIn{opacity:1;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:.6s}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}.btn:active,.btn:focus{box-shadow:none}:focus:not(:focus-visible){outline:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:focus-visible,.dropdown-item:focus-visible,.form-control:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}input:active,input:hover{box-shadow:none!important}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{border-color:var(--border-color);-webkit-text-fill-color:var(--color);-webkit-box-shadow:none;transition:background-color 1000s ease-in-out 0s}.custom-select,.form-control,input:-internal-autofill-selected{color:var(--input-color);background-color:var(--input-bg)!important;border-color:var(--border-color)}.form-control:focus{border-color:var(--border-color)}body,html{position:relative;height:100%;overflow-x:hidden}body{overflow-y:hidden}#app{flex:1 1 auto;min-height:0}.app-header{flex:0 0 auto}.app-view{display:block;flex:1 1 auto;min-height:0;overflow-x:hidden!important;overflow-y:auto!important;max-width:100%}.markdown-body a,a{color:var(--link-color)}.markdown-body a:hover,a:hover{text-decoration:none;color:var(--link-hover-color)}.dropdown-menu a.dropdown-item{color:var(--color)}.dropdown-menu a.dropdown-item:hover{color:var(--color);text-decoration:none}.markdown-body .emoji{height:1.3em;margin:0;vertical-align:-.1em}.navbar.navbar-expand-lg{background:var(--header-bg-color)!important;border-bottom:1px solid var(--border-color);transition:background-color .5s ease;padding:10px max(20px,calc((100vw - 1200px)/ 2));font-family:var(--font-sans)}.navbar-toggler{border:1px solid var(--border-color)!important;color:var(--color)!important}.navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}.navbar .navbar-nav{align-items:center}.navbar .nav-link{display:inline-flex;align-items:center;font-size:13px;color:var(--ink-muted)!important;padding:6px 0!important;margin:0 12px;border-bottom:1px solid transparent;letter-spacing:-.005em;line-height:1}.navbar .nav-link:hover{color:var(--color)!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--color)}.navbar .nav-link.nav-icon{padding:0!important;margin:0 8px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:15px;line-height:1}.navbar #navbarSupportedContent{align-items:center}.navbar-brand{font-family:var(--font-serif)!important;font-size:20px!important;letter-spacing:-.01em;color:var(--color)!important;padding-right:18px;margin-right:12px;border-right:1px solid var(--border-color)}.navbar-brand em,.navbar-brand i{font-style:italic;font-weight:400}.navbar-dark .navbar-toggler{border-color:var(--border-color);color:var(--color)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar .btn-signin{display:inline-flex;align-items:center;height:32px;padding:0 14px!important;margin-left:6px;border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color)!important;border-radius:6px;font-size:13px;font-weight:500;line-height:1}.navbar .btn-signin:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color)!important}.navbar .user-chip{display:inline-flex!important;align-items:center;gap:8px;padding:4px 12px 4px 6px!important;margin-left:6px;border:1px solid var(--border-color);border-radius:999px;background:var(--sidebar-bg-color);font-size:12.5px;color:var(--color)!important}.navbar .user-chip:hover{background:var(--hover-bg-color)}.navbar .user-chip img{width:22px;height:22px}.navbar .user-chip .user-chip-name{color:var(--color);font-weight:500}.navbar .user-chip::after{color:var(--ink-muted)}#navbarSupportedContent{padding-right:0}.generalMessage{display:block;text-align:center;color:var(--header-color)}.rgba-gradient{background:var(--canvas-bg-color);color:var(--color)}.paper-landing{overflow-x:clip}.paper-wrap{max-width:1140px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}.paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500}.paper-hero{max-width:1140px;margin:0 auto;padding:64px 32px 0;display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}.paper-hero h1.hero-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:14px 0 0;color:var(--color);text-wrap:balance}.paper-hero h1 .accent{color:var(--accent);font-style:italic}.hero-subtitle{margin-top:18px;font-size:17px;line-height:1.55;color:var(--ink-soft);max-width:30em;text-wrap:pretty}.paper-cta-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:26px}.btn-hero{display:inline-flex;align-items:center;font-family:var(--font-sans);border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control);letter-spacing:-.005em;transition:background .15s,border-color .15s,transform .1s}.btn-hero:hover{background:var(--primary-hover-bg);border-color:var(--primary-hover-bg);color:var(--canvas-bg-color);text-decoration:none;transform:translateY(-1px)}.btn-hero-ghost{background:0 0;border:1px solid var(--border-color);color:var(--color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control)}.btn-hero-ghost:hover{background:var(--hover-bg-color);border-color:var(--color);color:var(--color)}.paper-link-arrow{font-size:14px;color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--border-color)}.paper-link-arrow:hover{color:var(--color);text-decoration-color:var(--color)}.paper-reassure{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink-muted)}.paper-reassure li::before{content:"\2713";color:var(--status-ready);margin-right:6px;font-size:11px}.paper-frame{border-radius:var(--radius-surface);background:var(--paper-card);border:1px solid var(--border-color);box-shadow:0 24px 60px rgba(26,24,21,.1),0 2px 6px rgba(26,24,21,.04);overflow:hidden}.dark-mode .paper-frame{box-shadow:0 24px 60px rgba(0,0,0,.45)}.paper-frame-bar{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-bottom:1px solid var(--border-soft);background:var(--paper-bg-alt);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted)}.paper-frame-bar .dots{display:flex;gap:5px}.paper-frame-bar .dots i{width:8px;height:8px;border-radius:50%;background:var(--border-color)}.paper-frame-bar .url{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-frame img{display:block;width:100%;height:auto}.paper-hero-shot .paper-frame{width:112%}.paper-proof{margin-top:64px;padding-top:18px;padding-bottom:18px;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px 30px;align-items:center}.paper-proof-venues{display:flex;gap:22px;align-items:center;font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--ink-soft)}.paper-proof-venues i{font-style:normal;font-family:var(--font-sans);font-size:14px;color:var(--ink-faint)}.paper-stats{margin-top:12px;padding-top:22px;border-top:1px solid var(--border-color)}.paper-stats-meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:14px}.paper-stats-meta-right{display:inline-flex;align-items:center;gap:6px}.paper-stats-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-ready)}.paper-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.paper-stat-card{display:flex;flex-direction:column;padding:22px 26px 20px 0;margin-right:26px;border-right:1px solid var(--border-color);min-width:0}.paper-stat-card:last-child{border-right:0;margin-right:0;padding-right:0}.paper-stat-value{font-size:44px;font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--color);font-variant-numeric:tabular-nums}.paper-stat-label{margin-top:6px;font-size:13px;color:var(--ink-soft)}.paper-stat-bars{display:block;width:100%;height:34px;margin-top:18px;overflow:visible}.paper-stat-bars rect{fill:var(--border-color)}.paper-stat-bars rect.is-latest{fill:var(--accent)}.paper-stat-delta{margin-top:10px;font-family:var(--font-mono);font-size:10.5px;color:var(--status-ready)}.paper-section-head{margin-top:110px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}.paper-qa h2,.paper-section-head h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.05;letter-spacing:-.02em;margin:10px 0 0;color:var(--color);text-wrap:balance}.paper-feature-title em,.paper-qa h2 em,.paper-section-head h2 em{font-style:italic;color:var(--accent)}.paper-section-head p{font-size:15px;color:var(--ink-soft);max-width:32em;margin:0;line-height:1.6}.paper-preview{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.paper-preview .pane{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:hidden;min-width:0}.paper-preview .pane-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft)}.paper-preview .pane-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap}.paper-preview .pane-url{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.paper-preview .pane-body{padding:16px 18px;font-family:var(--font-mono);font-size:12.5px;line-height:1.9;color:var(--ink-soft)}.paper-preview .pane-body strong{color:var(--color);font-weight:600}.paper-preview .tok{color:var(--ink-faint)}.paper-preview .redact{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:0 5px}.paper-features{margin-top:28px;padding-top:28px;border-top:1px solid var(--border-color);display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}.paper-features-list{display:flex;flex-direction:column}.paper-feature{border-left:2px solid var(--border-soft);padding:16px 0 16px 20px;transition:border-color .2s}.paper-feature.is-on{border-left-color:var(--color)}.paper-feature-tab{all:unset;display:block;width:100%;cursor:pointer;color:inherit;border-radius:4px}.paper-feature-tab:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.paper-feature-tab .paper-eyebrow{display:block;margin-bottom:6px}.paper-feature-title{display:block;font-family:var(--font-serif);font-size:24px;line-height:1.15;letter-spacing:-.015em;color:var(--ink-muted);transition:color .2s}.paper-feature-title em{color:inherit}.paper-feature-tab:hover .paper-feature-title,.paper-feature.is-on .paper-feature-title{color:var(--color)}.paper-feature.is-on .paper-feature-title em{color:var(--accent)}.paper-feature-more{display:none}.paper-feature.is-on .paper-feature-more{display:block}.paper-feature-more .paper-feature-title-m{display:none}.paper-feature-more p{font-size:14.5px;color:var(--ink-soft);line-height:1.55;margin:10px 0 12px;max-width:30em}.paper-features-stage{min-width:0}.paper-feature-panel{animation:paper-feature-in .25s ease-out}@keyframes paper-feature-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.paper-feature-panel{animation:none}}.paper-crop{position:relative;height:380px;overflow:hidden;background:var(--paper-card)}.paper-crop img{position:absolute;left:0;top:0;max-width:none;height:auto;display:block}.paper-crop-anonymize img{width:150%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:160%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:150%;transform:translate(-6%,-9%)}.paper-qa{margin-top:110px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}.paper-qa h2{margin-bottom:12px}.paper-qa .q{border-top:1px solid var(--border-color);padding:18px 0}.paper-qa .q:last-child{border-bottom:1px solid var(--border-color)}.paper-qa .q a{display:block;font-weight:500;font-size:15px;color:var(--color);margin-bottom:6px}.paper-qa .q a:hover{color:var(--accent);text-decoration:none}.paper-qa .q p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6}@media (max-width:1100px){.paper-hero-shot .paper-frame{width:100%}}@media (max-width:991px){.paper-hero{grid-template-columns:1fr;gap:36px;padding-top:40px}.paper-qa,.paper-section-head{grid-template-columns:1fr;gap:16px}.paper-stats-grid{grid-template-columns:1fr 1fr}.paper-stat-card:nth-child(2n){border-right:0;margin-right:0;padding-right:0}.paper-stat-card:nth-child(-n+2){border-bottom:1px solid var(--border-color)}}@media (max-width:767px){.paper-hero,.paper-wrap{padding-left:20px;padding-right:20px}.paper-hero h1.hero-title{font-size:clamp(2.4rem,11vw,3.25rem)}.hero-subtitle{font-size:16px}.paper-cta-row .btn-hero{width:100%;justify-content:center}.paper-proof{margin-top:48px}.paper-stat-card{padding:18px 16px 16px 0;margin-right:16px}.paper-stat-value{font-size:36px}.paper-qa,.paper-section-head{margin-top:72px}.paper-preview{grid-template-columns:1fr}.paper-preview .pane-body{font-size:11.5px;line-height:1.8}.paper-features{display:flex;flex-wrap:wrap;gap:0;padding-top:0;border-top:0;margin-top:24px}.paper-feature,.paper-features-list,.paper-features-stage{display:contents}.paper-feature-tab{order:1;flex:1 1 0;width:auto;padding:12px 0 10px;border-bottom:2px solid var(--border-color);border-radius:0;text-align:left}.paper-feature.is-on .paper-feature-tab{border-bottom-color:var(--color)}.paper-feature-tab .paper-eyebrow{margin:0;font-size:10.5px;letter-spacing:.08em}.paper-feature-tab .paper-feature-title{display:none}.paper-feature-panel{order:2;width:100%;margin-top:20px;animation:none}.paper-crop{height:240px}.paper-crop-anonymize img{width:230%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:240%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:220%;transform:translate(-3%,-9%)}.paper-feature-more{order:3;width:100%}.paper-feature.is-on .paper-feature-more{margin-top:18px}.paper-feature-more .paper-feature-title-m{display:block;font-size:26px;line-height:1.1}.paper-feature-more p{max-width:none}.paper-footer-inner>.paper-footer-brand{grid-column:1/-1}.paper-footer-foot{flex-direction:column;gap:6px}}.dropdown-menu{background-color:var(--paper-card,var(--main-bg-color))!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:0 12px 28px rgba(26,24,21,.08),0 2px 6px rgba(26,24,21,.05)!important;padding:6px!important;font-family:var(--font-sans);font-size:13px;min-width:11rem}.dropdown-menu .dropdown-item{color:var(--color)!important;padding:7px 10px!important;border-radius:5px;font-size:13px}.dropdown-menu .dropdown-item:focus,.dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.dropdown-menu .dropdown-divider{border-top-color:var(--border-color)!important;margin:4px 2px}.dropdown-menu .dropdown-header{color:var(--ink-muted);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}.body,.file-content,.markdown-body{background-color:var(--main-bg-color)!important;color:var(--color)!important}.markdown-body table tr{background-color:var(--main-bg-color);border-top:1px solid var(--border-color)}.markdown-body table tr:nth-child(2n){background-color:var(--paper-bg-alt)}.markdown-body table td,.markdown-body table th{border:1px solid var(--border-color)}.file-content{padding:4px 7px;text-align:left;min-height:100%}.badge{font-size:75%;font-weight:500;padding:3px 8px;border-radius:10px;vertical-align:middle}.warning-feedback{width:100%;margin-top:.25rem;font-size:80%;color:#dc8e35}.dropdown-item:focus,.dropdown-item:hover{background-color:var(--hover-bg-color)}.card-header .btn,.card-header .btn:focus,.card-header .btn:hover{border:none!important;background:0 0!important}.btn{color:var(--btn-color);border:1px solid var(--border-color);background:0 0;border-radius:4px;white-space:nowrap}.btn:active,.btn:hover{color:var(--btn-color);border:1px solid var(--border-color);background-color:var(--hover-bg-color);box-shadow:none!important}.btn.btn-primary{color:var(--primary-color);background-color:var(--primary-bg)}.btn.btn-primary:active,.btn.btn-primary:hover{color:var(--primary-active-color);background-color:var(--primary-hover-bg)!important}.btn::placeholder{color:var(--color);opacity:1}.white_border{border:1px solid #fff;color:#fff}.leftCol{display:flex;position:relative;flex:0 0 auto;width:100%;z-index:9;flex-direction:column}.card,.leftCol,.sidePanel{background-color:var(--sidebar-bg-color);border:1px solid var(--border-color)}@media (min-width:768px){.leftCol{flex:0 0 310px;width:310px;height:100%}}.leftCol-search{padding:10px 12px 0}.tree-search-box{display:flex;align-items:center;gap:8px;background:var(--canvas-bg-color);border:1px solid var(--border-color);border-radius:8px;padding:7px 10px;transition:border-color .15s}.tree-search-box:focus-within{border-color:var(--ink-muted)}.tree-search-icon{font-size:12px;color:var(--ink-muted);flex-shrink:0}.tree-search-input{flex:1;border:none;outline:0;background:0 0;font-family:var(--font-sans);font-size:13px;color:var(--color);min-width:0}.tree-search-input::placeholder{color:var(--ink-muted)}.tree-search-kbd{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:4px;padding:1px 6px;line-height:1.4;flex-shrink:0}.tree-search-clear{background:0 0;border:none;color:var(--ink-muted);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.tree-search-clear:hover{color:var(--color)}.leftCol-project-header{display:flex;align-items:baseline;justify-content:space-between;padding:12px 14px 4px;gap:8px}.project-name{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-file-count{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);white-space:nowrap;flex-shrink:0}.files{position:relative;display:block;overflow:auto;height:100%;padding:4px 6px}.files ul{list-style:none;margin:0;padding:0}.files li ul{padding-left:8px;margin-left:7px;border-left:1px solid var(--border-color)}.files .folder>ul{display:none}.files .folder.open>ul{display:block}.files .file,.files .folder{position:relative;color:var(--ink-soft);cursor:pointer;word-break:break-all}.files a{display:flex;align-items:center;gap:4px;padding:1px 8px 1px 2px;font-family:var(--font-sans);font-size:13px;color:var(--ink-soft);border-radius:4px;text-decoration:none;line-height:1.5;position:relative}.files a:hover{background:var(--hover-bg-color);color:var(--color);text-decoration:none}.files:focus{outline:0}.files a.tree-focused{background:var(--hover-bg-color);color:var(--color)}.files .file.active>a{background:rgba(128,128,128,.15);color:var(--color)}.files .file.active>a .tree-icon-file{color:#5b7ba5}.files .file.active>a .tree-count{color:var(--ink-muted)}.tree-icon-file,.tree-icon-folder{display:inline-block;flex-shrink:0}.tree-icon-folder{width:14px;height:12px;color:var(--ink-muted);opacity:.75}.tree-icon-folder svg{display:block;width:100%;height:100%;fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.files .folder.open>a .tree-icon-folder{color:#a07d2e;opacity:.9}.files .folder.open>a .tree-icon-folder svg{fill-opacity:.12}.dark-mode .files .folder.open>a .tree-icon-folder{color:#c9a03a}.tree-icon-file{width:16px;font-size:14px;text-align:center;color:#5b7ba5}.dark-mode .files .file.active>a .tree-icon-file,.dark-mode .tree-icon-file{color:#7ba3d0}.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:10px;height:14px;flex-shrink:0;opacity:.6}.tree-toggle::after{content:"";display:block;width:0;height:0;border-style:solid;border-width:3px 0 3px 4.5px;border-color:transparent transparent transparent var(--ink-muted);transition:transform .12s ease}.files .folder.open>a .tree-toggle::after{transform:rotate(90deg)}.tree-spacer{display:inline-block;width:10px;flex-shrink:0}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-count{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);flex-shrink:0;margin-left:auto;padding-left:8px;opacity:.7}.files .folder>a{color:var(--color)}.files .file::before,.files .folder::before{display:none}.files .folder>a::after{display:none}.tree-search-path{color:var(--ink-muted);font-size:11px}.tree-search-empty{padding:16px 12px;color:var(--ink-muted);font-size:12.5px;font-family:var(--font-sans);text-align:center}.leftCol{background:var(--paper-bg-alt,#f3f1ec);border-right:1px solid var(--border-color)}.dark-mode .leftCol{background:var(--sidebar-bg-color)}.status-bar{background:var(--canvas-bg-color);border-bottom:1px solid var(--border-color);padding:10px 14px}.paths .breadcrumb-item,.paths .breadcrumb-item a{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.paths .breadcrumb-item.active,.paths .breadcrumb-item:last-child{color:var(--color)}.paths .breadcrumb-item+.breadcrumb-item::before{content:'/';color:var(--ink-muted)}.last-update{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted);padding:8px 10px;border-top:1px solid var(--border-color);letter-spacing:.02em}.ace_editor{height:100%}.ace_scroller{cursor:default}.status-bar{display:flex;align-items:center;gap:12px;background-color:var(--canvas-bg-color);padding:10px 14px;margin:0;border-bottom:1px solid var(--border-color);border-radius:0;flex-shrink:0}.status-bar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.status-bar-actions .btn{display:inline-flex;align-items:center;gap:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;padding:4px 10px;font-size:12.5px;min-height:30px}.status-bar-actions .btn:hover{background:var(--hover-bg-color);color:var(--color)}.status-bar-actions .btn.btn-active{border-color:currentColor;font-weight:600}.paths{flex:1 1 auto;min-width:0;padding:0;margin:0;background-color:initial;border:none;border-radius:0;align-items:center;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.paths::-webkit-scrollbar{display:none}.paths a{color:var(--color)}.paths .breadcrumb-item{padding-left:3px}.paths .breadcrumb-item::before{padding-right:3px}.content{height:100%;overflow:scroll;padding-top:42px;background-color:var(--main-bg-color);text-align:center}.image-content{max-width:100%;max-height:100%;text-align:center;padding:4px}.pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:0;background-color:var(--main-bg-color)}.pdf-toolbar{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:4px 8px;border-bottom:1px solid var(--border-color,rgba(0,0,0,.12))}.pdf-toolbar-group{display:inline-flex;align-items:center;gap:4px}.pdf-toolbar-right{margin-left:auto}.pdf-toolbar-btn{border:0;background:0 0;color:inherit;padding:4px 8px;border-radius:4px;font-size:13px;line-height:1.2;cursor:pointer}.pdf-toolbar-btn:hover:not(:disabled){background-color:rgba(128,128,128,.18)}.pdf-toolbar-btn:disabled{opacity:.4;cursor:default}.pdf-toolbar-zoom{min-width:52px;font-variant-numeric:tabular-nums}.pdf-toolbar-page{width:3.5em;text-align:right;padding:2px 4px;font-size:13px;color:inherit;background:0 0;border:1px solid var(--border-color,rgba(0,0,0,.2));border-radius:4px}.pdf-toolbar-count{font-size:13px;opacity:.75;font-variant-numeric:tabular-nums}.pdf-pages{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 0}.pdf-viewer-page{margin:0 auto 12px}.pdf-viewer-page canvas{display:block;box-shadow:0 1px 4px rgba(0,0,0,.25)}.pdf-viewer-error{padding:24px;text-align:center;font-weight:700}.html-doc{display:block;height:100%}.html-doc-frame{display:block;width:100%;height:100%;border:0;background-color:#fff}.file-error{font-weight:700;font-size:50px;text-align:center}pdfviewer{display:block;padding:15px}pdfpageviewer{display:block;width:100%;margin-bottom:10px}notebook{display:block;text-align:left;padding:15px}@media (min-width:768px){notebook{padding-left:100px}}.nb-output td,.nb-output th{border:1px solid var(--border-color)!important}.floatingchat-container-wrap{left:auto!important;top:auto!important;bottom:3px!important;height:47px!important;right:3px!important}.floating-chat-kofi-popup-iframe{left:auto!important;top:auto!important;bottom:55px!important;right:10px!important}.paper-faq{max-width:1180px;margin:0 auto;padding:48px 32px 80px;font-family:var(--font-sans)}.paper-faq-hero{padding-bottom:40px;border-bottom:1px solid var(--border-color);margin-bottom:36px}.paper-faq-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:32px}.paper-faq-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.5vw,4.6rem);line-height:1.03;letter-spacing:-.02em;color:var(--color);margin:0 0 22px;max-width:14em}.paper-faq-title em{font-style:italic;color:var(--color)}.paper-faq-lede{color:var(--ink-soft);font-size:17px;line-height:1.55;max-width:38em;margin:0}.paper-faq-lede a{color:var(--color);border-bottom:1px solid var(--color)}.paper-faq-lede a:hover{color:var(--accent);border-bottom-color:var(--accent)}.paper-faq-body{display:grid;grid-template-columns:220px 1fr;gap:60px;align-items:start}.paper-faq-toc{position:sticky;top:32px;font-size:13.5px}.paper-faq-toc-head{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--border-color)}.paper-faq-toc nav{display:flex;flex-direction:column}.paper-faq-toc nav a{color:var(--ink-soft);padding:8px 0 8px 14px;border-left:2px solid transparent;text-decoration:none;margin-left:-2px}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.faq-section{min-width:0}.faq-section>div{width:100%}.faq-section h4.faq-cat{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.015em;color:var(--color);margin:0 0 6px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.faq-section h4.faq-cat i{display:none}.faq-section .panel-group{margin-bottom:56px}.faq-section .panel-default .panel-title a{display:block;position:relative;padding:22px 0 22px 42px;font-family:var(--font-serif);font-weight:400;font-size:20px;line-height:1.35;letter-spacing:-.005em;color:var(--color);text-decoration:none;cursor:pointer}.faq-section .panel-default .panel-title a:hover{color:var(--accent)}.faq-section .panel-heading{background:0 0;padding:0!important;border:none}.faq-section .panel-default{background:0 0;border:none;border-bottom:1px solid var(--border-soft);border-radius:0;margin-bottom:0!important;box-shadow:none}.faq-section .panel-default .panel-title{margin-bottom:0}.faq-section .panel-default .panel-title a:after{content:"−";position:absolute;left:0;right:auto;top:22px;transform:none;font-family:var(--font-mono);font-size:18px;line-height:1.35;color:var(--ink-muted);float:none;margin:0;font-weight:400}.faq-section .panel-default .panel-title a.collapsed:after{content:"+"}.faq-section .panel-default .panel-body{padding:0 0 22px 42px!important;color:var(--ink-soft);font-size:15px;line-height:1.65;border-top:none;max-width:42em}.table{color:var(--color)}.dropdown-divider,.table td,.table th,hr{border-color:var(--border-color)}.table.repositories td{word-break:break-word}loc{display:block;position:relative;width:100%;height:5px}loc .lang{float:left;height:100%}.rounded-circle.fa{display:inline-block;font-size:75px;height:140px;width:140px;border:4px solid;line-height:140px;text-align:center}.featurette-divider{margin:4.5rem 0;border-color:var(--border-color)}.featurette-heading{font-family:var(--font-serif);font-weight:400;font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:14px;color:var(--color)}.dark-mode .shadow{box-shadow:none}.dark-mode .overflow-auto::-webkit-scrollbar{width:10px}.dark-mode .overflow-auto::-webkit-scrollbar-track{-webkit-box-shadow:none;background:inherit;border-radius:0}.dark-mode .overflow-auto::-webkit-scrollbar-thumb{border-radius:10px;border:1px solid var(--border-color);background-color:var(--hover-bg-color)}.dark-mode .rgba-gradient{background:linear-gradient(135deg,#2a2d4a,#151728)}.section-number{padding-right:10px;font-weight:700;font-style:italic}.org-subscript-child{font-size:85%}.highlighted-line{position:absolute;background:rgba(100,200,100,.5);z-index:20}code,pre{font-family:"Fira Code","Courier New",Courier,monospace;line-height:1.1;color:var(--color)}.diff-file,.diff-index,.diff-lines{background:rgba(172,172,172,.5)}.diff-add{background:rgba(100,200,100,.5)}.diff-remove{background:rgba(200,100,100,.5)}.dashboard-title{font-size:1.4rem;font-weight:600;letter-spacing:-.01em}.quota-row{display:flex;gap:16px;margin-bottom:16px;padding:0}.quota-item{flex:1;min-width:0}.quota-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.quota-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.7}.quota-value{font-size:.8rem;font-weight:500;font-variant-numeric:tabular-nums}.quota-progress{height:6px;border-radius:3px;background:var(--hover-bg-color)}.quota-progress .progress-bar{border-radius:3px}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:.8rem;font-weight:500;background:var(--primary-bg);color:var(--primary-color);border-radius:12px;line-height:1.4}.filter-chip-close{display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;color:inherit;opacity:.7;cursor:pointer;padding:0;min-width:24px;min-height:24px;margin:-6px -6px -6px 0;font-size:1rem;line-height:1;border-radius:999px}.filter-chip-close:hover{opacity:1}.repo-list{list-style:none;padding:0;margin:0}.repo-list-item{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border-color);gap:12px}.repo-list-item:first-child{border-top:1px solid var(--border-color)}.repo-list-item.repo-inactive{opacity:.6}.repo-list-item-content{flex:1;min-width:0}.repo-list-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.repo-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color);word-break:break-word}.repo-name:hover{color:var(--accent)}.repo-source{font-size:.85rem;opacity:.8;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.repo-date{opacity:.7}.repo-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.8rem;opacity:.7}.repo-meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.repo-list-item-actions{flex-shrink:0;padding-top:2px;margin-left:14px}.repo-list-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;opacity:.5;font-size:.95rem;list-style:none;border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color)}.repo-list-empty i{font-size:1.8rem}.type-badge{display:inline-flex;align-items:center;gap:3px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:4px;white-space:nowrap}.type-badge{font-family:var(--font-mono);letter-spacing:.06em;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-bg-alt,transparent)}.type-badge.type-pr,.type-badge.type-repo{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.dark-mode .type-badge.type-pr,.dark-mode .type-badge.type-repo{background:rgba(255,255,255,.06);color:var(--ink-muted);border-color:var(--border-color)}.type-badge.type-coauthor{background:rgba(99,102,241,.12);color:#4f46e5;border-color:rgba(99,102,241,.35);margin-left:6px}.dark-mode .type-badge.type-coauthor{background:rgba(129,140,248,.18);color:#a5b4fc;border-color:rgba(165,180,252,.45)}.btn-group .btn:not(.btn-primary){background:var(--hover-bg-color)}.anonymize-page{display:flex;flex-direction:column;min-height:0}.anonymize-landing{flex:1 1 0;min-height:min-content;display:flex;align-items:center;justify-content:center;padding:20px}.anonymize-landing-inner{width:100%;max-width:600px}.anonymize-landing-inner h2{font-weight:700}.anonymize-workspace{display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:var(--canvas-bg-color)}.anonymize-topbar{background:var(--paper-card);border-bottom:1px solid var(--border-color);padding:18px 28px;flex:0 0 auto}.anonymize-topbar-inner{max-width:1400px;margin:0 auto}.anonymize-topbar-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.anonymize-topbar-title{margin:4px 0 0;font-size:clamp(1.8rem,3vw,2.4rem)}.anonymize-split{flex:1 1 auto;display:flex;min-height:0}.anonymize-form-col{flex:0 0 auto;width:100%;min-width:0;background:var(--canvas-bg-color);border-right:1px solid var(--border-color);overflow-y:auto}.anonymize-form-col .paper-settings-main{max-width:720px;padding:28px 32px 40px;margin:0}.anonymize-form-col .paper-settings-section:first-child{padding-top:0}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;background:var(--canvas-bg-color);padding:14px 0 0;border-top:1px solid var(--border-color);margin-top:20px}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{flex:1 1 auto;min-width:0;overflow:auto;background:var(--paper-bg-alt);padding:28px 32px}.anonymize-preview-head{display:flex;align-items:baseline;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color);margin-bottom:20px}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.anonymize-preview-sub{color:var(--ink-soft);font-size:13px}.anonymize-preview-body{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:28px 32px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}@media (max-width:700px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}.paper-optional{font-family:var(--font-sans);font-weight:400;color:var(--ink-muted);text-transform:none;letter-spacing:0;font-size:11px;margin-left:6px}.paper-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.paper-plan-card{position:relative;display:block;padding:18px 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;margin:0}.paper-plan-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.paper-plan-card.selected{border-color:var(--color);box-shadow:0 0 0 2px var(--color) inset}.paper-plan-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-plan-price{font-family:var(--font-serif);font-size:2rem;color:var(--color);margin:6px 0 4px}.paper-plan-price .paper-plan-per{font-family:var(--font-sans);font-size:12px;color:var(--ink-soft)}.paper-plan-desc{font-size:13px;color:var(--ink-soft)}.paper-plan-desc ul{padding-left:18px;margin:0}.paper-settings-copy{color:var(--ink-soft);font-size:13px;margin:0 0 14px}.anonymize-section-title{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin:18px 0 8px 0;padding-bottom:6px;border-bottom:1px solid var(--border-color);opacity:.7}.anonymize-section-title i{margin-right:4px}.anonymize-submit-bar{padding:12px 0 4px 0}.anonymize-submit-bar .btn{font-size:1rem;padding:10px 20px;font-weight:600}.anonymize-page .form-check{padding-top:4px;padding-bottom:4px}.anonymize-page .form-check-label{font-weight:500}.anonymize-preview-col{min-height:0;min-width:0}.pr-diff pre{overflow-x:auto;max-width:100%}@media (min-width:768px){.anonymize-form-col{height:100%;width:520px;flex:0 0 520px}.anonymize-preview-col{height:100%;flex:1}}@media (max-width:767px){.anonymize-workspace{flex:0 0 auto;min-height:0}.anonymize-topbar{padding:14px 16px}.anonymize-topbar-title{font-size:1.6rem;margin-top:2px}.anonymize-split{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.anonymize-form-col{width:100%!important;flex:0 0 auto!important;height:auto!important;border-right:none;border-bottom:1px solid var(--border-color);overflow:visible}.anonymize-form-col .paper-settings-main{padding:18px 16px 24px;max-width:none}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;margin:20px -16px 0;padding:12px 16px;background:var(--canvas-bg-color);border-top:1px solid var(--border-color);z-index:10}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{width:100%;flex:0 0 auto;height:auto!important;max-height:none;padding:18px 16px 24px;overflow:visible}.anonymize-preview-body{padding:16px;border-radius:8px}.anonymize-preview-body .pr-diff pre,.anonymize-preview-body pre{overflow-x:auto;max-width:100%}.anonymize-landing-inner{padding:16px}}@media (min-width:1280px){.anonymize-form-col{width:620px;flex:0 0 620px}}@media (max-width:767px){.btn{min-height:38px;padding:6px 14px;font-size:14px}.btn-sm{min-height:34px;padding:5px 10px}.navbar .nav-link{padding:8px 12px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:24px;line-height:32px}.container.page{padding-left:15px;padding-right:15px;max-width:100%}h1{font-size:1.6rem}h2{font-size:1.35rem}h3{font-size:1.15rem}.repo-list-item{flex-direction:column}.repo-list-item-actions{align-self:flex-start}.quota-row{flex-direction:column;gap:10px;padding:10px 12px}.dropdown-menu{position:absolute;right:0;left:auto}.form-group{margin-bottom:12px}.form-control{font-size:16px}.status-bar{gap:6px;padding:8px 10px}.status-bar .btn{font-size:12px;padding:4px 10px;min-height:32px}.status-bar .paths{font-size:11.5px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch}.status-bar .paths::-webkit-scrollbar{display:none}.status-bar-actions{flex-shrink:0;gap:4px}#home .display-4{font-size:1.8rem}#home h4.subtext-header{font-size:1rem}.progress:not(.quota-progress){min-width:120px!important}.badge{font-size:70%}.col-2.input-group{width:100%!important;max-width:100%;flex:0 0 100%}.color-text-secondary span{display:inline-block;margin-bottom:2px}.floatingchat-container-wrap{display:none!important}.anonymize-landing{align-items:flex-start;padding-top:60px}.anonymize-page .container-fluid>.row{height:auto!important;min-height:100%}.anonymize-form-col{width:100%!important;flex:0 0 100%!important;border-right:none;border-top:1px solid var(--border-color)}.anonymize-preview-col{height:auto!important;max-height:none}.anonymize-section-title{font-size:.8rem;margin:12px 0 8px 0}.anonymize-submit-bar{position:sticky;bottom:0;background:var(--sidebar-bg-color);padding:10px 0;margin:0 -12px;padding-left:12px;padding-right:12px;border-top:1px solid var(--border-color);z-index:10}.anonymize-submit-bar .btn{font-size:1rem;padding:12px 20px}.anonymize-page .form-check{padding-top:6px;padding-bottom:6px;min-height:36px}.anonymize-page .form-check-label{font-size:.95rem}.anonymize-page .card-body{padding:12px}.pr-title{font-size:1.15rem}.pr-diff pre{font-size:.75rem}.pr-comment .mb-1 h5{font-size:1rem}.nav-tabs .nav-link{padding:8px 12px;font-size:.9rem}}@media (min-width:768px) and (max-width:991px){.container.page{max-width:100%;padding-left:15px;padding-right:15px}.leftCol{flex:0 0 250px;width:250px}}.explorer-page{display:flex;height:100%;width:100%;background:var(--canvas-bg-color);position:relative}.explorer-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas-bg-color)}.explorer-content{flex:1 1 auto;min-height:0;width:100%;overflow:auto}.leftCol-close,.leftCol-head{display:none}.leftCol-body{flex:1 1 auto;min-height:0;overflow:auto}.leftCol-foot{padding:8px 12px;border-top:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-foot .last-update{border-top:none;padding:0}.leftCol-backdrop{display:none}.paper-inline-warning{display:flex;align-items:flex-start;gap:8px;margin:8px;padding:10px 12px;background:rgba(138,107,30,.08);border:1px solid rgba(138,107,30,.35);border-radius:8px;color:var(--color);font-size:12.5px;line-height:1.4}.paper-inline-warning i{color:#8a6b1e;margin-top:2px;flex-shrink:0}.dark-mode .paper-inline-warning i{color:#ffd37a}@media (min-width:768px){.leftCol-body{padding:8px 4px}}.sidebar-toggle{display:none;align-items:center;gap:8px;position:fixed;bottom:18px;right:18px;z-index:1100;padding:10px 14px;background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);border-radius:999px;font-family:var(--font-sans);font-size:13px;font-weight:500;box-shadow:0 6px 20px rgba(0,0,0,.15);cursor:pointer;outline:0}.sidebar-toggle:hover{background:var(--primary-hover-bg)}.sidebar-toggle:focus,.sidebar-toggle:focus-visible{outline:0;box-shadow:0 6px 20px rgba(0,0,0,.15)}@media (max-width:991px){.sidebar-toggle{display:inline-flex}.floatingchat-container-wrap{left:3px!important;right:auto!important}.floating-chat-kofi-popup-iframe{left:10px!important;right:auto!important}.leftCol{position:fixed;top:0;left:0;bottom:0;width:min(86vw,340px);max-width:340px;z-index:1200;border:none;border-right:1px solid var(--border-color);transform:translateX(0);transition:transform .22s ease;box-shadow:4px 0 24px rgba(0,0,0,.18);background:var(--sidebar-bg-color)}.leftCol.collapsed{transform:translateX(-105%);box-shadow:none;pointer-events:none}.leftCol-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.leftCol-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:0 0;border:1px solid var(--border-color);border-radius:8px;color:var(--ink-muted);cursor:pointer}.leftCol-close:hover{color:var(--color);border-color:var(--color)}.leftCol-foot{display:block}.leftCol-body{padding:4px 0}.leftCol-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:1150;backdrop-filter:blur(2px)}.dark-mode .leftCol-backdrop{background:rgba(0,0,0,.5)}}.admin-nav{display:flex;gap:4px;padding:4px;margin:8px 0 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;flex-wrap:wrap}.admin-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:7px;color:var(--ink-muted);text-decoration:none;font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:background-color .15s,color .15s;white-space:nowrap}.admin-nav a:hover{background:var(--paper-bg-alt);color:var(--color)}.admin-nav a.active{background:var(--color);color:var(--paper-card)}.admin-nav a i{font-size:12px;width:14px;text-align:center}@media (max-width:767px){.admin-nav{flex-direction:column}.admin-nav a{justify-content:flex-start}}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:16px}.admin-stat-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px}.admin-stat-card .stat-value{font-family:var(--font-serif);font-size:1.4rem;font-weight:400;line-height:1.1;color:var(--color)}.admin-stat-card .stat-label{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 12px}.admin-toolbar .form-control{max-width:320px}@media (max-width:767px){.admin-toolbar .form-control{max-width:100%;width:100%}}.pagination-compact{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pagination-compact input{width:60px;text-align:center;flex-shrink:0}.pagination-compact .btn{padding:4px 10px;min-height:34px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);flex-shrink:0}.pagination-compact>span{white-space:nowrap}.admin-list-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color)}.admin-list-item:last-child{border-bottom:none}.admin-list-item .item-main{flex:1;min-width:0}.admin-list-item .item-title{font-size:1rem;font-weight:600;margin-bottom:4px;word-break:break-word}.admin-list-item .item-meta{font-size:.85rem;opacity:.8}.admin-list-item .item-meta span{margin-right:12px;display:inline-block;margin-bottom:2px}.admin-list-item .item-actions{flex-shrink:0}@media (max-width:767px){.admin-list-item{flex-direction:column;gap:8px}.admin-list-item .item-actions{align-self:flex-start}}.status-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}.status-badge{font-family:var(--font-sans);font-weight:500;letter-spacing:.02em;border:1px solid transparent;text-transform:none;font-size:11.5px;padding:1px 9px 2px;border-radius:999px}.status-badge.status-ready{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.status-badge.status-error{background:#fbe7e7;color:#b42318;border-color:#f3c7c7}.status-badge.status-download,.status-badge.status-preparing{background:#eef0ff;color:#3b4ad6;border-color:#d4d8fa}.status-badge.status-expired,.status-badge.status-expiring,.status-badge.status-removed,.status-badge.status-removing{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.status-badge.status-active{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.queue-job-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 18px;margin-bottom:10px}.queue-job-card .job-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.queue-job-card .job-id{font-family:var(--font-mono);font-size:.95rem;color:var(--color);word-break:break-all;display:flex;align-items:center;gap:10px}.queue-job-card .job-timestamps{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:14px}.queue-job-card .job-actions{display:flex;gap:8px;margin-top:10px}.queue-job-card .job-actions .btn{font-size:12px;padding:4px 12px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.admin-section-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.admin-section-header h2{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.admin-section-header h2 i{margin-right:6px;color:var(--ink-muted)}.admin-section-header .section-count{background:var(--paper-bg-alt);color:var(--ink-muted);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;padding:1px 10px;border-radius:999px}.user-detail-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:22px;margin-bottom:24px}.user-detail-card .user-header{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.user-detail-card .user-header img{border-radius:50%}.user-detail-card .user-header h1{margin:0;font-family:var(--font-serif);font-weight:400;font-size:1.6rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;font-size:.92rem}.user-detail-grid .detail-label{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.user-detail-grid .detail-value{word-break:break-all;color:var(--color)}@media (max-width:767px){.user-detail-grid{grid-template-columns:1fr}.user-detail-grid .detail-label{margin-top:8px;border-top:1px solid var(--border-color);padding-top:8px}.user-detail-grid .detail-label:first-child{border-top:none;margin-top:0;padding-top:0}}.paper-empty{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 24px}.paper-empty-inner{max-width:560px;text-align:left}.paper-empty-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:18px 0 20px;color:var(--color)}.paper-empty-title em{color:var(--accent);font-style:italic}.paper-empty-lede{font-size:17px;line-height:1.55;color:var(--ink-soft);text-wrap:pretty}.paper-empty-cta{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}.paper-page{max-width:1100px;margin:0 auto;padding:32px 32px 80px}@media (max-width:991px){.paper-page,.paper-page.container,.paper-page.container-fluid{padding:20px 18px 60px!important}.paper-page .row{margin-left:0;margin-right:0}.paper-page .row>.w-100,.paper-page .row>[class*=col]{padding-left:0;padding-right:0}.navbar.navbar-expand-lg{padding:10px 18px!important}.navbar .navbar-collapse{margin:10px -18px 0;padding:12px 18px 16px;border-top:1px solid var(--border-color);background:var(--header-bg-color)}.navbar .navbar-nav{align-items:stretch!important;gap:2px}.navbar .navbar-nav .nav-item,.navbar .navbar-nav .nav-link{width:100%}.navbar .nav-link{display:flex!important;align-items:center;justify-content:flex-start;margin:0!important;padding:12px 4px!important;border-bottom:1px solid var(--border-color)!important;border-radius:0;font-size:14px;line-height:1.2;gap:0;min-height:44px;box-sizing:border-box}.navbar .nav-link:not(.btn-signin):not(.user-chip){color:var(--color)!important}.navbar .nav-link .fa,.navbar .nav-link .fab,.navbar .nav-link .fas,.navbar .nav-link i{display:inline-flex!important;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:16px;line-height:1;margin:0 10px 0 0!important}.navbar .navbar-nav .nav-item:last-child .nav-link,.navbar .navbar-nav>.nav-link:last-child{border-bottom-color:transparent!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--border-color)!important}.navbar .nav-item>.nav-link:not(.btn-signin):not(.user-chip)::before{content:'';display:inline-block;width:28px;margin-right:10px;flex-shrink:0}.navbar .nav-link.nav-icon::before,.navbar .nav-link:has(>i)::before{display:none!important}.navbar .nav-link.nav-icon{width:100%!important;height:auto!important;justify-content:flex-start!important;padding:12px 4px!important}.navbar .nav-link.nav-icon::after{content:attr(title);font-family:var(--font-sans);font-size:14px;color:var(--color)}.navbar .btn-signin{display:inline-flex!important;width:auto!important;align-self:flex-start;justify-content:center;height:40px;padding:0 18px!important;margin:14px 0 0!important;border-radius:8px;border-bottom:none!important}.navbar .btn-signin i{margin:0 8px 0 0!important;width:auto!important}.navbar .user-chip-wrap{width:100%}.navbar .user-chip{display:flex!important;width:100%;margin:0!important;padding:10px 4px!important;background:0 0!important;border:none!important;border-bottom:1px solid var(--border-color)!important;border-radius:0!important;justify-content:flex-start;gap:0;min-height:44px}.navbar .user-chip::before{display:none!important}.navbar .user-chip img{width:28px!important;height:28px!important;margin-right:10px!important;flex-shrink:0}.navbar .user-chip .user-chip-name{font-size:14px;font-weight:500;color:var(--color)!important}.navbar .user-chip.dropdown-toggle::after{margin-left:auto;color:var(--ink-muted)}.navbar .user-chip-wrap .dropdown-menu{position:static!important;float:none;width:100%;margin:0!important;padding:0!important;background:0 0!important;border:none!important;box-shadow:none!important;transform:none!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item{padding:10px 4px 10px 42px!important;font-size:13.5px;color:var(--ink-muted)!important;background:0 0!important;border-bottom:1px solid var(--border-color);text-align:left!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item:last-child{border-bottom:none}.navbar .user-chip-wrap .dropdown-divider{display:none}.navbar-brand{border-right:none!important;padding-right:0!important;margin-right:0!important}.dark-mode .navbar .navbar-collapse{background:var(--header-bg-color);border-top-color:var(--border-color)}.dark-mode .navbar .nav-link{border-bottom-color:var(--border-color)!important}.dark-mode .navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--paper-bg-alt);border:1px solid var(--border-color);color:var(--ink-soft);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}.paper-progress{position:relative;height:auto;background:0 0;margin:18px 0 8px}.paper-progress::before{content:"";display:block;height:8px;background:var(--paper-bg-alt);border-radius:999px}.paper-progress .paper-progress-bar{position:absolute;top:0;left:0;height:8px;background:var(--color);border-radius:999px;transition:width .4s ease;min-width:4px}.paper-progress .paper-progress-label{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.paper-progress .paper-progress-pct{color:var(--color)}.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--color)}.paper-error-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid #c53030;border-radius:10px;color:var(--color)}.dark-mode .paper-error-card{border-left-color:#ff8b7b}.paper-ratelimit-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid #d69e2e;border-radius:10px;color:var(--color)}.dark-mode .paper-ratelimit-card{border-left-color:#f6e05e}.paper-ratelimit-head{display:flex;align-items:flex-start;gap:14px}.paper-ratelimit-head>i{font-size:18px;color:#d69e2e;margin-top:4px;flex-shrink:0}.dark-mode .paper-ratelimit-head>i{color:#f6e05e}.paper-ratelimit-card strong{color:var(--color)}.status-pill-ratelimit{border-color:#d69e2e;color:#d69e2e}.dark-mode .status-pill-ratelimit{border-color:#f6e05e;color:#f6e05e}.status-ratelimit{background:#d69e2e}.dark-mode .status-ratelimit{background:#f6e05e}.paper-error-head{display:flex;align-items:flex-start;gap:14px}.paper-error-head>i{font-size:18px;color:#c53030;margin-top:4px;flex-shrink:0}.dark-mode .paper-error-head>i{color:#ff8b7b}.paper-error-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-error-title{font-family:var(--font-serif);font-size:1.4rem;line-height:1.2;margin-top:2px;color:var(--color)}.paper-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft);font-family:var(--font-mono);word-break:break-word;white-space:pre-wrap}.paper-error-hints{margin:14px 0 0;padding-left:18px;color:var(--ink-soft);font-size:13.5px;line-height:1.6}.paper-error-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.paper-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;margin-top:18px;font-size:.92rem}.paper-detail-grid .detail-label{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.paper-detail-grid .detail-value{word-break:break-all;color:var(--color)}.paper-detail-grid .detail-value a{color:var(--color);border-bottom:1px solid var(--border-color)}.paper-detail-grid .detail-value a:hover{border-bottom-color:var(--color)}@media (max-width:700px){.paper-detail-grid{grid-template-columns:1fr;gap:4px 0}.paper-detail-grid .detail-label{padding-top:8px}}.paper-support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0 28px}.paper-support-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;color:var(--color);text-decoration:none;transition:border-color .15s ease,transform .15s ease}.paper-support-card:hover{border-color:var(--color);text-decoration:none;color:var(--color)}.paper-support-card .paper-support-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:8px}.paper-support-card p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.paper-support-card .paper-support-cta{margin-top:auto;font-size:13px;font-weight:500;color:var(--color);display:inline-flex;align-items:center;gap:6px}.paper-support-card:hover .paper-support-cta i{transform:translateX(2px)}.paper-support-card .paper-support-cta i{transition:transform .15s ease}.paper-kofi-wrap{border:1px solid var(--border-color);border-radius:10px;overflow:hidden;background:var(--paper-card)}.paper-kofi-wrap iframe{border:0;width:100%;height:650px;display:block}.dark-mode .paper-kofi-wrap iframe{filter:invert(.88) hue-rotate(180deg) sepia(.15) saturate(1.2) brightness(1.1) contrast(.85)}@media (max-width:700px){.paper-kofi-wrap iframe{height:720px}}.pr-page{min-height:100%;background:var(--canvas-bg-color)}.pr-page-inner{padding-top:24px;padding-bottom:60px}.pr-header{margin:6px 0 18px}.pr-title{margin:4px 0 10px;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;word-break:break-word}.pr-header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pr-header-meta .pr-meta-item{display:inline-flex;align-items:center;gap:6px}.pr-header-meta .pr-meta-item i{color:var(--ink-muted)}.pr-body-card{margin:18px 0 24px;padding:20px 22px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-body-card .paper-section-eyebrow{margin-bottom:12px}.paper-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border-color);margin:18px 0 0}.paper-tabs .paper-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:0 0;border:0;border-bottom:2px solid transparent;font-family:var(--font-sans);font-size:13.5px;font-weight:500;color:var(--ink-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.paper-tabs .paper-tab:hover{color:var(--color)}.paper-tabs .paper-tab.active{color:var(--color);border-bottom-color:var(--color)}.paper-tabs .paper-tab i{color:inherit;opacity:.85}.paper-tabs .paper-tab:active,.paper-tabs .paper-tab:focus,.paper-tabs .paper-tab:focus-visible{outline:0;box-shadow:none}.paper-tabs .paper-tab:focus-visible{color:var(--color);background:var(--hover-bg-color);border-radius:6px 6px 0 0}.pr-diff{margin:16px 0 28px;display:flex;flex-direction:column;gap:16px}.diff-file-block{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.diff-file-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper-bg-alt);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:12.5px;color:var(--color)}.diff-file-icon{color:var(--ink-muted);flex-shrink:0}.diff-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.diff-file-status{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border-color);color:var(--ink-muted);background:var(--paper-card)}.diff-file-status-added{color:#2f6b3e;border-color:rgba(47,107,62,.35);background:rgba(47,107,62,.08)}.diff-file-status-deleted{color:#a13a2e;border-color:rgba(161,58,46,.35);background:rgba(161,58,46,.08)}.diff-file-status-renamed{color:#8a6b1e;border-color:rgba(138,107,30,.35);background:rgba(138,107,30,.08)}.dark-mode .diff-file-status-added{color:#a7e2a7;border-color:rgba(167,226,167,.35);background:rgba(167,226,167,.08)}.dark-mode .diff-file-status-deleted{color:#ff8b7b;border-color:rgba(255,139,123,.35);background:rgba(255,139,123,.08)}.dark-mode .diff-file-status-renamed{color:#ffd37a;border-color:rgba(255,211,122,.35);background:rgba(255,211,122,.08)}.diff-file-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:12.5px;line-height:1.55;table-layout:fixed}.diff-file-table tr.diff-row{vertical-align:top}.diff-file-table .diff-gutter{width:48px;padding:0 10px;text-align:right;color:var(--ink-muted);background:var(--paper-bg-alt);border-right:1px solid var(--border-color);user-select:none;font-variant-numeric:tabular-nums;vertical-align:top;white-space:nowrap}.diff-file-table .diff-gutter-new{border-right:1px solid var(--border-color)}.diff-file-table .diff-sign{width:18px;padding:0 6px;text-align:center;color:var(--ink-muted);background:var(--paper-bg-alt);user-select:none;vertical-align:top}.diff-file-table .diff-code{padding:1px 12px;white-space:pre-wrap;word-break:break-word;color:var(--color)}.diff-row-hunk td{background:var(--paper-bg-alt)!important;color:var(--ink-muted);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-size:12px;letter-spacing:.02em;padding-top:6px;padding-bottom:6px}.diff-row-hunk .diff-code{color:var(--ink-muted)}.diff-row-add .diff-code{background:rgba(47,107,62,.1);color:#1f4a2a}.diff-row-add .diff-gutter,.diff-row-add .diff-sign{background:rgba(47,107,62,.06);color:#2f6b3e}.diff-row-remove .diff-code{background:rgba(161,58,46,.1);color:#6e1f1a}.diff-row-remove .diff-gutter,.diff-row-remove .diff-sign{background:rgba(161,58,46,.06);color:#a13a2e}.dark-mode .diff-row-add .diff-code{background:rgba(167,226,167,.1);color:#c9f0c9}.dark-mode .diff-row-add .diff-gutter,.dark-mode .diff-row-add .diff-sign{background:rgba(167,226,167,.06);color:#a7e2a7}.dark-mode .diff-row-remove .diff-code{background:rgba(255,139,123,.1);color:#ffc9c0}.dark-mode .diff-row-remove .diff-gutter,.dark-mode .diff-row-remove .diff-sign{background:rgba(255,139,123,.06);color:#ff8b7b}@media (max-width:700px){.diff-file-table{font-size:11.5px}.diff-file-table .diff-gutter{width:36px;padding:0 6px}.diff-file-table .diff-sign{width:14px;padding:0 4px}.diff-file-table .diff-code{padding:1px 8px}}.pr-comments{list-style:none;margin:16px 0 28px;padding:0;display:flex;flex-direction:column;gap:12px}.pr-comment{padding:16px 18px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-comment-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border-color)}.pr-comment-author{font-weight:600;color:var(--color);font-size:14px;display:inline-flex;align-items:center;gap:6px}.pr-comment-author i{color:var(--ink-muted);font-size:12px}.pr-comment-date{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-muted);letter-spacing:.02em}.pr-comment-body{color:var(--color);font-size:14px;line-height:1.6}.pr-comment-body :last-child{margin-bottom:0}@media (max-width:700px){.pr-page-inner{padding-top:14px;padding-bottom:40px}.pr-body-card{padding:14px 14px;border-radius:8px}.pr-comment{padding:12px 14px}.paper-tabs .paper-tab{padding:10px 12px;font-size:13px}.pr-diff pre{font-size:11.5px;padding:12px}}.toast{background-color:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(0,0,0,.08);backdrop-filter:none;min-width:280px;max-width:calc(100vw - 24px)}.toast .toast-header{background:0 0!important;color:var(--color)!important;border-bottom:1px solid var(--border-color)!important;font-family:var(--font-sans);padding:10px 12px}.toast .toast-header strong{font-weight:600;color:var(--color);letter-spacing:.01em}.toast .toast-header .close{color:var(--ink-muted)!important;text-shadow:none;opacity:.9;font-size:1.2rem}.toast .toast-header .close:hover{color:var(--color)!important;opacity:1}.toast .toast-body{color:var(--color)!important;padding:12px;font-size:14px;line-height:1.45}.dark-mode .toast{box-shadow:0 8px 24px rgba(0,0,0,.5)}.paper-crumbs{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.02em}.paper-crumbs .here,.paper-crumbs a{color:var(--color);text-decoration:none}.paper-page-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.05;letter-spacing:-.02em;margin:10px 0 6px;color:var(--color)}.paper-page-title em{color:var(--accent);font-style:italic}.paper-page-lede{color:var(--ink-soft);font-size:16px;max-width:640px;line-height:1.55}.paper-meta-rule{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:22px 0 18px;padding:12px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:11.5px;color:var(--ink-muted);letter-spacing:.02em}.paper-meta-rule b{color:var(--color);font-weight:500}.paper-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:10px;padding:20px 22px}.dark-mode .paper-card{background:var(--admin-stat-bg)}.paper-section-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:10px;display:block}.paper-section-title{font-family:var(--font-serif);font-weight:400;font-size:22px;letter-spacing:-.01em;margin:0 0 8px}.paper-kbd{display:inline-block;font-family:var(--font-mono);font-size:10.5px;padding:1px 6px;border:1px solid var(--border-color);border-bottom-width:2px;border-radius:3px;background:var(--paper-card,#fff);color:var(--color)}.paper-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;padding:2px 8px;border:1px solid var(--border-color);border-radius:999px;color:var(--ink-soft);background:var(--paper-card,#fff);letter-spacing:.04em}.paper-pill.accent{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.paper-pill.good{border-color:#2f6b3e;color:#2f6b3e}.paper-pill.warn{border-color:#8a6b1e;color:#8a6b1e}.paper-pill.bad{border-color:#a13a2e;color:#a13a2e}.paper-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--border-color)}.paper-row:first-child{border-top:1px solid var(--border-color)}.paper-row .row-title{font-family:var(--font-serif);font-size:20px;letter-spacing:-.01em;line-height:1.2}.paper-row .row-title a{color:var(--color)}.paper-row .row-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.03em;margin-top:6px;display:flex;flex-wrap:wrap;gap:14px}.paper-row .row-actions{display:flex;gap:6px;flex-shrink:0}.paper-form-step{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--border-color)}.paper-form-step:first-child{border-top:1px solid var(--border-color)}.paper-form-step .step-num{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-muted);padding-top:4px;letter-spacing:.02em}.paper-form-step .step-title{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;line-height:1.2;margin-bottom:4px}.paper-form-step .step-sub{color:var(--ink-soft);font-size:13.5px;margin-bottom:14px;text-wrap:pretty}.paper-field-label{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:6px}.paper-switch-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:16px}.paper-switch-row+.paper-switch-row{border-top:1px dashed var(--border-soft)}.paper-switch-row .sw-label{font-weight:500}.paper-switch-row .sw-sub{display:block;font-size:12.5px;color:var(--ink-muted);margin-top:2px}.paper-page .custom-select,.paper-page .form-control{border-radius:6px;border-color:var(--border-color);font-size:14px;padding:8px 12px;height:auto;background:var(--input-bg);color:var(--input-color)}.paper-page .custom-select:focus,.paper-page .form-control:focus{color:var(--input-color);background:var(--input-bg);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.custom-select:focus,.form-control:focus,input:focus,select:focus,textarea:focus{color:var(--input-color)!important;background-color:var(--input-bg)!important}.form-control::selection,input::selection,textarea::selection{background:var(--accent-soft);color:var(--input-color)}.dark-mode .form-control::selection,.dark-mode input::selection,.dark-mode textarea::selection{background:rgba(167,178,255,.3);color:var(--input-color)}.btn.btn-ink{background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);font-weight:500;border-radius:6px;padding:8px 14px}.btn.btn-ink:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color);border-color:var(--primary-hover-bg)}.btn.btn-accent{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:500;border-radius:6px}.btn.btn-accent:hover{background:#2e3bb8;border-color:#2e3bb8;color:#fff}.paper-page .dashboard-filter-row{display:flex;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin:18px 0 0;flex-wrap:wrap}.paper-page .dashboard-filter-row .form-control{height:38px;background:var(--paper-card)}.paper-page .dashboard-filter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.paper-page .dashboard-filter-row .btn-group .btn,.paper-page .dashboard-filter-row .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);height:38px;padding:0 14px;font-size:14px;font-weight:500;border-radius:var(--radius-control,6px);display:inline-flex;align-items:center;gap:6px;line-height:1}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label{color:var(--ink-muted);font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label::after{content:"·";margin-left:6px;color:var(--ink-faint)}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-value{font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .fas{font-size:11px;color:var(--ink-muted)}.paper-page .dashboard-filter-row .btn-group .btn:hover,.paper-page .dashboard-filter-row .dropdown-toggle:hover{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.paper-page .dashboard-filter-row .btn-group{gap:0}.paper-page .dashboard-filter-row .btn-group .btn{border-radius:0;border-right-width:0}.paper-page .dashboard-filter-row .btn-group .btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.paper-page .dashboard-filter-row .btn-group .btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px;border-right-width:1px}.paper-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--color);color:var(--canvas-bg-color);border-color:var(--color)}.paper-page .dashboard-filter-row .search-wrap{flex:1 1 280px;min-width:220px}.paper-page .quota-row{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:24px 0 0;padding:0;background:0 0;border:none;border-radius:0}.paper-page .quota-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);opacity:1}.paper-page .quota-value{font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;color:var(--color)}.paper-page .quota-value .quota-unlimited-tag{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);margin-left:4px}.paper-page .quota-track{height:6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;width:100%;min-width:0}.paper-page .quota-track .quota-fill{height:100%;min-width:2px;border-radius:999px;background:var(--color);transition:width .3s ease}.paper-page .quota-track.quota-warn .quota-fill{background:var(--status-progress)}.paper-page .quota-track.quota-danger .quota-fill{background:var(--status-error)}.paper-page .quota-track.quota-unlimited{background:repeating-linear-gradient(-45deg,var(--paper-bg-alt) 0 4px,var(--border-soft,var(--border-color)) 4px 6px)}.paper-page .repo-list{margin-top:8px}.paper-page .repo-list-item{padding:20px 0;gap:16px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-page .repo-list-item:first-child{border-top:none}.paper-page .repo-list-item-header{gap:10px;margin-bottom:6px}.paper-page .repo-name{font-family:var(--font-mono);font-size:15px;color:var(--color)}.paper-page .repo-source{font-size:13px;color:var(--ink-soft);opacity:1;gap:10px}.paper-page .repo-source a{color:var(--ink-soft);border-bottom:1px dotted var(--border-color)}.paper-page .repo-source a:hover{color:var(--color)}.paper-page .repo-meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);opacity:1;gap:16px;margin-top:10px}.paper-page .type-badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;letter-spacing:.1em}.paper-page .repo-list-item-actions .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;font-size:13px;padding:6px 12px;height:auto}.paper-settings{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.paper-settings .paper-page-title{max-width:14em}.paper-settings-body{display:grid;grid-template-columns:220px 1fr;gap:60px;margin-top:32px;border-top:1px solid var(--border-color);padding-top:28px}.paper-settings-toc{position:sticky;top:32px;align-self:start}.paper-settings-toc-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:12px}.paper-settings-toc nav{display:flex;flex-direction:column;gap:2px}.paper-settings-toc nav a{padding:8px 0 8px 14px;border-left:2px solid transparent;color:var(--ink-soft);font-size:14px;text-decoration:none}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.paper-settings-main{min-width:0;max-width:720px}.paper-settings-section{padding:28px 0;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section:first-child{padding-top:0}.paper-settings-section:last-of-type{border-bottom:none}.paper-settings-section .form-group{margin-bottom:18px}.paper-settings-section .form-check{padding:10px 0 10px 28px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section .form-check:last-child{border-bottom:none}.paper-settings-section .form-check-label{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color);cursor:pointer}.paper-settings-section .form-check-input{cursor:pointer;width:16px;height:16px;margin-top:3px;margin-left:-28px;accent-color:var(--color)}.paper-settings-section .form-text{color:var(--ink-soft);font-size:13px;margin-top:4px;max-width:48em}.paper-settings-section .paper-section-copy{margin:-4px 0 14px}.paper-settings-footer{padding-top:24px;display:flex;flex-direction:column;gap:14px}.paper-settings-footer .btn-ink{align-self:flex-start}.paper-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.paper-settings-hint{font-size:13px;color:var(--ink-muted)}.paper-inline-alert{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-control,6px);border:1px solid var(--border-color);background:var(--paper-bg-alt);font-size:13px;color:var(--color)}.paper-inline-alert i{margin-top:2px;color:var(--ink-muted)}.paper-inline-alert-error{border-color:var(--status-error);background:var(--status-error-soft)}.paper-inline-alert-error i{color:var(--status-error)}.paper-account-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);background:var(--paper-card);margin-bottom:20px}.paper-account-card img{flex-shrink:0}.paper-account-identity{flex:1 1 auto;min-width:0}.paper-account-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color)}.paper-account-meta{font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-danger-zone{padding:16px;border:1px solid var(--status-error);border-radius:var(--radius-surface,10px);background:var(--status-error-soft)}.paper-danger-head{font-weight:600;font-size:14px;color:var(--status-error);margin-bottom:6px}.paper-danger-copy{font-size:13px;color:var(--ink-soft);max-width:52em;margin-bottom:12px}.paper-danger-zone .paper-inline-alert{margin-bottom:12px}.btn.btn-outline-danger{background:0 0;color:var(--status-error);border:1px solid var(--status-error);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-danger:hover{background:var(--status-error);color:#fff;border-color:var(--status-error)}.navbar .user-menu{min-width:260px}.navbar .user-menu .dropdown-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px!important}.navbar .user-menu .dropdown-item i{width:16px;margin-top:3px;font-size:13px;color:var(--ink-muted);text-align:center}.navbar .user-menu .dropdown-item span{display:flex;flex-direction:column;line-height:1.3}.navbar .user-menu .dropdown-item small{font-size:12px;color:var(--ink-muted)}.navbar .user-menu .dropdown-header{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px}.paper-field-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px;display:block}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:24px}.paper-settings-toc{position:static}.paper-settings-toc nav{flex-direction:row;flex-wrap:wrap;gap:8px}.paper-settings-toc nav a{border-left:none;border-bottom:2px solid transparent;padding:4px 0}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--color);border-left:none}}.paper-table{display:block;margin-top:20px;background:0 0;border:none;border-top:1px solid var(--border-color);border-radius:0;overflow:visible}.paper-table .paper-table-head,.paper-table .paper-table-row{display:grid;grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 140px 90px 140px 52px;align-items:center;gap:18px;padding:12px 4px}.paper-table.paper-table-conferences .paper-table-head,.paper-table.paper-table-conferences .paper-table-row{grid-template-columns:minmax(280px,2.4fr) 140px 90px 220px 52px}.paper-table.paper-table-repos .paper-table-head,.paper-table.paper-table-repos .paper-table-row{grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px}.paper-table.paper-table-repos.has-bulk .paper-table-head,.paper-table.paper-table-repos.has-bulk .paper-table-row{grid-template-columns:28px minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px;gap:12px}.paper-table .admin-users-row{grid-template-columns:28px minmax(280px,2.4fr) 90px 120px 100px 52px!important;gap:12px!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(320px,3fr) 190px 90px 170px 52px;gap:20px;padding:8px 4px}.paper-table.paper-table-dashboard .cell-anon .anon-text{gap:2px}.paper-table.paper-table-dashboard .cell-anon .repo-name{padding:0}.paper-table .paper-table-head{background:0 0;border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-top:8px;padding-bottom:8px}.paper-table .paper-table-head .sortable{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;padding:2px 0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border-radius:4px}.paper-table .paper-table-head .sortable:hover{color:var(--color)}.paper-table .paper-table-head .sortable.active{color:var(--color)}.paper-table .paper-table-head .sortable i{font-size:10px}.paper-table .paper-table-head .num,.paper-table .paper-table-row .num{text-align:right}.paper-table .paper-table-head .num .sortable{flex-direction:row-reverse}.paper-table .paper-table-row{border-top:1px solid var(--border-soft,var(--border-color));font-size:14px;transition:background-color .12s ease}.paper-table .paper-table-row:hover{background:var(--hover-bg-color)}.paper-table .paper-table-row.row-clickable{cursor:pointer}.paper-table .paper-table-row.repo-inactive>:not(.cell-actions){opacity:.55}.paper-table .paper-table-row.repo-error{background:var(--status-error-soft);border-left:2px solid var(--status-error);padding-left:6px}.paper-table .paper-table-row.repo-error:hover{background:var(--status-error-soft-hover)}.cell-status .status-sub.status-sub-error,.paper-table .cell-status .status-sub-error{color:var(--status-error)}.paper-table .cell-status .status-sub-warn{color:var(--status-progress)}.paper-table .cell-anon{display:flex;align-items:center;gap:12px;min-width:0}.paper-table .cell-anon .type-badge{flex-shrink:0;min-width:52px;justify-content:center}.paper-table .cell-anon .anon-text{min-width:0;display:flex;flex-direction:column;gap:3px}.paper-table .cell-anon .anon-title{display:flex;align-items:center;gap:8px;min-width:0}.paper-table .cell-anon .anon-title .type-badge{margin-left:0}.paper-table .cell-anon .repo-name{font-family:var(--font-mono);font-size:14px;color:var(--color);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;padding:2px 0}.paper-table .cell-anon .repo-name-static{color:var(--ink-muted);font-style:italic}.paper-table .cell-anon .anon-sub{font-family:var(--font-sans);font-size:13px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:10px;min-width:0}.paper-table .cell-anon .anon-sub .anon-source{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-anon .anon-sub .conf-tag{flex:0 1 auto;min-width:72px;max-width:50%}.paper-table .cell-anon .anon-sub a{color:var(--ink-muted);border-bottom:1px dotted var(--border-color);padding:4px 0;margin:-4px 0}.paper-table .cell-anon .anon-sub a:hover{color:var(--color)}.paper-table .cell-anon .anon-sub .commit-hash{font-family:var(--font-mono);font-size:12px}.paper-table .cell-conf{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-conf span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:14px;color:var(--color);min-width:0}.paper-table .cell-status .status-line{display:inline-flex;align-items:center;gap:8px}.paper-table .cell-status .status-sub{flex-basis:100%;font-family:var(--font-sans);font-size:13px;line-height:1.3;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.paper-table .cell-expires{font-family:var(--font-sans);font-size:13px;color:var(--ink-soft)}.paper-table .cell-expires .expires-never{color:var(--ink-muted)}.paper-table .cell-expires .expires-past{color:var(--ink-muted)}.paper-table .empty-dash{color:var(--ink-faint)}.paper-table .cell-actions{display:flex;justify-content:flex-end}.status-dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0;background:var(--status-inactive)}.status-dot.status-ready{background:var(--status-ready)}.status-dot.status-error{background:var(--status-error)}.status-dot.status-preparing,.status-dot.status-progress{background:var(--status-progress)}.status-dot.status-expired,.status-dot.status-removed{background:var(--status-inactive)}.dashboard-page{padding-bottom:96px}.dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;font-size:13px;color:var(--ink-muted)}.dashboard-meta .dashboard-count{font-variant-numeric:tabular-nums}.btn-link-inline{background:0 0;border:none;padding:2px 4px;margin:-2px 0;font:inherit;color:var(--link-color);cursor:pointer;border-radius:4px}.btn-link-inline:hover{color:var(--link-hover-color);text-decoration:underline}.btn.btn-outline-ink{background:0 0;color:var(--color);border:1px solid var(--border-color);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-ink:hover{background:var(--hover-bg-color);color:var(--color);border-color:var(--color)}.paper-page .dropdown-menu .dropdown-item-danger,.paper-page .dropdown-menu .dropdown-item-danger i{color:var(--status-error)}.paper-page .dropdown-menu .dropdown-item-danger:focus,.paper-page .dropdown-menu .dropdown-item-danger:hover{background:var(--status-error-soft-hover);color:var(--status-error)}.paper-page .dropdown-menu button.dropdown-item{width:100%;text-align:left;background:0 0;border:none}.paper-page .dropdown-menu .dropdown-divider{border-top-color:var(--border-soft,var(--border-color));margin:4px 0}.paper-table .paper-table-skeleton{pointer-events:none}.skeleton{display:block;background:var(--paper-bg-alt);border-radius:4px;position:relative;overflow:hidden}.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--hover-bg-color),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton-line{height:12px}.skeleton-line+.skeleton-line{margin-top:8px}.skeleton-line-sm{height:10px}.skeleton-badge{width:52px;height:22px;border-radius:999px;flex-shrink:0}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none}}.paper-table .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 20px;color:var(--ink-muted);text-align:center;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table .paper-table-empty>i{font-size:1.6rem;color:var(--ink-faint)}.paper-table .paper-table-empty-actions{display:flex;gap:8px;margin-top:8px}.bulk-bar{display:flex;align-items:center;gap:8px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;margin:8px 0}.paper-page.admin-page .paper-page-title{font-size:1.6rem;margin:4px 0}.paper-page.admin-page .paper-page-lede{display:none}.paper-page.admin-page .paper-crumbs{margin-bottom:4px}.paper-page.admin-page .admin-nav{margin:6px 0 12px}.admin-filter-toolbar{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px;position:sticky;top:0;z-index:4;background:var(--canvas-bg-color);padding:6px 0;border-bottom:1px solid var(--border-soft,var(--border-color));box-shadow:0 1px 0 var(--canvas-bg-color)}@media (max-width:900px){.admin-filter-toolbar{position:static;box-shadow:none}}.admin-filter-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-filter-row .search-wrap{flex:1;min-width:220px}.admin-filter-row .search-wrap .form-control{height:34px}.admin-filter-inline{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.admin-filter-inline>label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0;white-space:nowrap}.admin-filter-inline .form-control-sm{height:28px;padding:2px 8px;font-size:12px}.admin-filter-inline input[type=search].form-control-sm,.admin-filter-inline input[type=text].form-control-sm{width:130px}.admin-filter-inline input[type=date].form-control-sm{width:130px}.admin-filter-inline select.form-control-sm{width:auto;min-width:88px}.admin-filter-inline .arrow{color:var(--ink-muted);font-size:11px}.admin-filter-spacer{flex:1}.admin-active-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--ink-muted)}.admin-active-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--hover-bg-color);font-size:12px;color:var(--color)}.admin-active-chip .key{color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.admin-active-chip button{background:0 0;border:none;cursor:pointer;padding:0 4px;color:var(--ink-muted);font-size:12px;border-radius:50%}.admin-active-chip button:hover{color:#b42318}.admin-search-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);pointer-events:none;border:1px solid var(--border-color);border-radius:4px;padding:1px 5px;background:var(--paper-card)}.admin-filter-row .search-wrap{position:relative}.admin-filter-row .search-wrap .form-control{padding-right:40px}.paper-table-row.row-selected{background:rgba(47,122,68,.06)}.queue-state-pills{display:inline-flex;gap:6px;margin-left:8px;flex-wrap:wrap}.queue-state-pills .pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted)}.queue-state-pills .pill-active{color:#c48a2e;border-color:rgba(196,138,46,.4)}.queue-state-pills .pill-failed{color:#b42318;border-color:rgba(180,35,24,.4)}.queue-state-pills .pill-completed{color:#2f7a44;border-color:rgba(47,122,68,.3)}.queue-state-pills .pill-waiting{color:var(--ink-soft)}.queue-state-pills .pill-delayed{color:var(--ink-muted)}.admin-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 12px;font-size:13px}.admin-summary .summary-total{font-family:var(--font-serif);font-size:1.05rem;color:var(--color);margin-right:8px}.admin-summary .summary-meta{color:var(--ink-muted);font-size:12px;margin-right:8px}.admin-summary .summary-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);cursor:pointer;font-size:12px;user-select:none;transition:background-color .1s,border-color .1s}.admin-summary .summary-pill:hover{background:var(--hover-bg-color)}.admin-summary .summary-pill .count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.admin-summary .summary-pill.active{background:var(--primary-bg);color:var(--primary-color);border-color:var(--primary-bg)}.admin-summary .summary-pill.active .count{color:inherit}.admin-summary .summary-pill.error .count{color:#b42318}.admin-summary .summary-pill.warn .count{color:#c48a2e}.admin-summary .summary-pill.ok .count{color:#2f7a44}.dark-mode .admin-summary .summary-pill.error .count{color:#f08a82}.dark-mode .admin-summary .summary-pill.warn .count{color:#e8b970}.dark-mode .admin-summary .summary-pill.ok .count{color:#7dc894}.dark-mode .queue-state-pills .pill-active{color:#e8b970;border-color:rgba(232,185,112,.4)}.dark-mode .queue-state-pills .pill-failed{color:#f08a82;border-color:rgba(240,138,130,.4)}.dark-mode .queue-state-pills .pill-completed{color:#7dc894;border-color:rgba(125,200,148,.3)}.job-progress{flex:1;height:6px;background:var(--border-soft,var(--border-color));border-radius:999px;overflow:hidden;margin-left:12px;max-width:200px}.job-progress-bar{height:100%;background:#2f7a44;transition:width .3s}.paper-table-empty{padding:48px 4px;text-align:center;color:var(--ink-muted);display:flex;flex-direction:column;align-items:center;gap:8px;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table-empty>i{font-size:1.6rem}.q-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:4px}.q-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-range-btns{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.q-range-btns .btn{border:none;border-radius:0;padding:5px 14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);background:var(--paper-card)}.q-range-btns .btn+.btn{border-left:1px solid var(--border-color)}.q-range-btns .btn.active{background:var(--color);color:var(--paper-card)}.btn-dark{background:var(--color)!important;color:var(--paper-card)!important;border-color:var(--color)!important;border-radius:999px;padding:5px 18px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em}.q-cards{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap}.q-card{flex:1;min-width:140px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.q-card:hover{border-color:var(--ink-muted)}.q-card.selected{border-color:var(--color);box-shadow:0 0 0 1px var(--color)}.q-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.q-dot{width:8px;height:8px;border-radius:50%;background:#2f7a44;flex-shrink:0}.q-dot-red{background:#b42318}.dark-mode .q-dot{background:#7dc894}.dark-mode .q-dot-red{background:#f08a82}.q-card-name{font-family:var(--font-mono);font-size:11.5px;font-weight:500;color:var(--ink-muted);letter-spacing:.04em}.q-card-count{font-family:var(--font-serif);font-size:2rem;font-weight:400;line-height:1.1;color:var(--color);margin-bottom:6px}.q-card-sub{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted);letter-spacing:.04em}.q-card-bar{height:4px;background:var(--border-color);border-radius:2px;overflow:hidden;margin-top:6px}.q-card-bar-fill{height:100%;background:#3b4ad6;border-radius:2px;transition:width .3s}.dark-mode .q-card-bar-fill{background:#a7b2ff}.q-detail{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-bottom:20px}.q-throughput{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-chart-wrap{position:relative}.q-throughput canvas{width:100%;display:block}.q-chart-tooltip{position:absolute;pointer-events:none;background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;font-family:var(--font-mono);font-size:11px;line-height:1.6;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.q-chart-tooltip .q-tip-time{color:var(--ink-muted);margin-bottom:2px}.q-chart-tooltip .q-tip-completed{color:#3b4ad6}.q-chart-tooltip .q-tip-failed{color:#b42318}.dark-mode .q-chart-tooltip .q-tip-completed{color:#a7b2ff}.dark-mode .q-chart-tooltip .q-tip-failed{color:#f08a82}.q-chart-crosshair{position:absolute;top:0;width:1px;height:100%;background:var(--ink-muted);opacity:.3;pointer-events:none;z-index:9}.q-stats-panel{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px;display:flex;flex-direction:column}.q-section-label{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:lowercase;letter-spacing:.04em;margin-bottom:14px}.q-section-right{float:right;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.q-legend-completed{color:#3b4ad6}.q-legend-failed{color:#b42318;margin-left:8px}.q-legend-exec{color:#b8860b;margin-left:8px;letter-spacing:2px}.dark-mode .q-legend-completed{color:#a7b2ff}.dark-mode .q-legend-failed{color:#f08a82}.dark-mode .q-legend-exec{color:#f5c842}.q-chart-tooltip .q-tip-exec{color:#b8860b}.dark-mode .q-chart-tooltip .q-tip-exec{color:#f5c842}.q-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;flex:1}.q-stat-label{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.q-stat-value{font-family:var(--font-serif);font-size:1.3rem;font-weight:400;color:var(--color);line-height:1.2}.q-stats-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-color)}.q-stats-actions .btn{font-family:var(--font-mono);font-size:11px;padding:6px 14px;border-radius:8px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.q-jobs{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-jobs-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.q-state-filters{display:inline-flex;gap:6px;flex-wrap:wrap}.q-state-toggle{cursor:pointer;display:inline-flex;align-items:center}.q-state-toggle input{display:none}.q-state-chip{font-family:var(--font-mono);font-size:11px;padding:3px 10px;border-radius:10px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);transition:opacity .15s,background .15s;text-transform:capitalize}.q-state-toggle input:checked+.q-state-chip{opacity:1}.q-state-toggle input:not(:checked)+.q-state-chip{opacity:.4;text-decoration:line-through}.q-state-badge,.q-state-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.q-state-badge{display:inline-block;padding:2px 8px;border-radius:8px}.q-state-active{background:#dbeafe;color:#1d4ed8}.q-state-waiting{background:#fef3c7;color:#92400e}.q-state-delayed{background:#e0e7ff;color:#4338ca}.q-state-failed{background:#fee2e2;color:#b91c1c}.q-state-completed{background:#dcfce7;color:#166534}.dark-mode .q-state-active{background:rgba(59,130,246,.2);color:#93bbfd}.dark-mode .q-state-waiting{background:rgba(251,191,36,.15);color:#fbbf24}.dark-mode .q-state-delayed{background:rgba(99,102,241,.2);color:#a5b4fc}.dark-mode .q-state-failed{background:rgba(239,68,68,.2);color:#fca5a5}.dark-mode .q-state-completed{background:rgba(34,197,94,.15);color:#86efac}.q-cell-state{width:120px}.q-delay-hint{display:block;font-size:10px;color:var(--ink-muted);margin-top:2px;font-family:var(--font-mono)}.q-search-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.q-search-row .form-control{max-width:320px;height:34px}.q-auto-refresh{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.q-table{width:100%;border-collapse:collapse}.q-table thead th{font-family:var(--font-mono);font-size:9.5px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;border-bottom:1px solid var(--border-color);text-align:left;white-space:nowrap}.q-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .1s}.q-table tbody tr:hover{background:var(--paper-bg-alt)}.q-table tbody tr:last-child{border-bottom:none}.q-table tbody td{padding:10px 10px;font-size:.88rem;vertical-align:middle}.q-cell-id{font-family:var(--font-mono);font-size:12px;white-space:nowrap}.q-cell-id{display:flex;align-items:center;gap:8px}.q-chevron{font-size:9px;color:var(--ink-muted);transition:transform .15s;flex-shrink:0}.q-chevron-open{transform:rotate(90deg)}.q-cell-id a{color:var(--color)}.q-cell-payload{font-family:var(--font-mono);font-size:12px;color:var(--color)}.q-payload-detail{color:var(--ink-muted)}.q-cell-num{font-family:var(--font-mono);font-size:12px;text-align:center;white-space:nowrap}.q-cell-progress{min-width:120px}.q-progress-wrap{display:flex;align-items:center;gap:8px}.q-progress-bar{flex:1;height:6px;border-radius:3px;overflow:hidden;background-image:linear-gradient(to right,#3b4ad6 var(--pct,0),var(--border-color) var(--pct,0))}.dark-mode .q-progress-bar{background-image:linear-gradient(to right,#a7b2ff var(--pct,0),var(--border-color) var(--pct,0))}.q-progress-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap;min-width:32px;text-align:right}.q-cell-actions{text-align:right;white-space:nowrap}.q-cell-actions .btn{padding:3px 8px;font-size:11px;background:0 0;border:1px solid var(--border-color);color:var(--ink-muted)}.q-cell-actions .btn:hover{color:var(--color)}.q-row-failed{background:rgba(180,35,24,.04)}.dark-mode .q-row-failed{background:rgba(240,138,130,.06)}.q-error-detail{padding:4px 10px 12px;font-size:12px}.q-error-reason{color:#b42318;font-size:.82rem;margin-bottom:4px}.dark-mode .q-error-reason{color:#f08a82}.q-toast-error{background:#fbe7e7;color:#b42318;border:1px solid #f3c7c7;border-radius:8px;padding:10px 16px;margin-bottom:12px;font-family:var(--font-mono);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px}.dark-mode .q-toast-error{background:rgba(240,138,130,.1);color:#f08a82;border-color:rgba(240,138,130,.25)}.q-error-stack{font-size:.78rem;max-height:120px;overflow:auto;margin:4px 0 0;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px}.q-row-expanded>td{border-bottom-color:transparent}.q-detail-row>td{padding:0 10px 14px!important;border-bottom:1px solid var(--border-color)}.q-job-detail{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:8px;padding:14px 16px}.q-job-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 20px;margin-bottom:10px}.q-job-detail-item{display:flex;flex-direction:column;gap:2px}.q-job-detail-label{font-family:var(--font-mono);font-size:9px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.q-job-detail-value{font-family:var(--font-mono);font-size:12px;color:var(--color);word-break:break-all}.q-job-detail-value a{color:var(--color)}.q-job-detail-error{margin:8px 0}.q-job-detail-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color)}.q-job-detail-actions .btn{font-family:var(--font-mono);font-size:11px;padding:5px 12px;border-radius:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}@media (max-width:900px){.q-detail{grid-template-columns:1fr}.q-cards{flex-direction:column}.q-card{min-width:100%}.q-jobs-header{flex-direction:column;align-items:flex-start}.q-tabs{flex-wrap:wrap}.q-search-row{flex-wrap:wrap}.q-search-row .form-control{max-width:100%;flex:1}.q-table{font-size:12px}.q-header{flex-direction:column}.q-job-detail-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.paper-table .paper-table-head{display:none}.paper-table .admin-users-row,.paper-table .paper-table-row,.paper-table.paper-table-conferences .paper-table-row,.paper-table.paper-table-repos .paper-table-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:14px 0;grid-template-columns:none!important}.paper-table .cell-anon{flex:1 1 calc(100% - 52px);min-width:0;order:1}.paper-table .cell-actions{flex:0 0 auto;order:2;align-self:center}.paper-table .cell-conf,.paper-table .cell-expires,.paper-table .cell-status,.paper-table .cell-views{order:3;font-size:13px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;text-align:left}.paper-table .cell-status{flex-wrap:nowrap;gap:6px;min-width:0}.paper-table .cell-status .status-sub{flex-basis:auto;font-size:13px;line-height:inherit}.paper-table .cell-status .status-sub::before{content:"·";margin-right:6px;color:var(--ink-faint)}.paper-table .cell-conf{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views.num{text-align:left}.paper-table .paper-table-skeleton .cell-expires,.paper-table .paper-table-skeleton .cell-status,.paper-table .paper-table-skeleton .cell-views{flex:1 1 30%}.paper-table .cell-views::before{content:'\f06e';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table .cell-expires::before{content:'\f017';font-family:'Font Awesome 5 Free';font-weight:400;font-size:10px;color:var(--ink-muted)}.paper-table .cell-conf::before{content:'\f51c';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table-dashboard .cell-conf::before{content:none}.paper-table .cell-conf:has(.empty-dash),.paper-table .cell-expires:has(.empty-dash){display:none}.paper-table .cell-expires::before,.paper-table .cell-views::before{color:var(--ink-faint)}}.paper-page .dropdown-menu{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);box-shadow:0 12px 28px rgba(26,24,21,.08);padding:6px;min-width:220px;font-family:var(--font-sans);font-size:14px;color:var(--color);margin-top:6px}.paper-page .dropdown-menu .dropdown-header{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px;font-weight:500}.paper-page .dropdown-menu .dropdown-item{border-radius:6px;padding:8px 10px;color:var(--color);font-size:14px;display:flex;align-items:center;gap:8px}.paper-page .dropdown-menu .dropdown-item:focus,.paper-page .dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .dropdown-menu .dropdown-item i{width:16px;font-size:13px;color:var(--ink-muted)}.paper-page .dropdown-menu .form-check.dropdown-item{padding:8px 10px 8px 36px!important;position:relative}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-input{position:absolute;left:12px;top:50%;transform:translateY(-50%);margin:0;width:16px;height:16px;accent-color:var(--color);cursor:pointer}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-label{font-family:var(--font-sans);font-size:14px;color:var(--color);font-weight:400;margin:0;cursor:pointer}.btn.btn-icon-dots{width:32px;height:32px;padding:0;border:1px solid transparent;background:0 0;color:var(--ink-muted);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn.btn-icon-dots:focus,.btn.btn-icon-dots:hover,.btn.btn-icon-dots[aria-expanded=true]{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.btn.btn-icon-dots::after{display:none}.btn.btn-icon-dots i{font-size:15px}.paper-page .repo-list-empty{border-top:none;padding:56px 20px;color:var(--ink-muted)}.paper-page .filter-chip{background:var(--paper-bg-alt);color:var(--color);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}@media (max-width:768px){.paper-page .paper-page-title{font-size:clamp(1.4rem,6vw,1.9rem);margin:4px 0 2px}.paper-page .paper-page-lede{font-size:13px;line-height:1.4;margin-bottom:0}.paper-page .btn-ink{padding:6px 12px;font-size:13px}.paper-page .quota-row{grid-template-columns:1fr;gap:12px;padding:0;margin:16px 0 0}.paper-page .dashboard-filter-row{padding:10px 0;margin-top:12px;gap:8px}.paper-page .quota-header{flex-direction:row;align-items:baseline;gap:8px}.paper-page .quota-value{white-space:nowrap}.paper-page .dashboard-filter-controls{width:100%}.paper-page .dashboard-filter-controls .btn-group{flex:1 1 100%;display:flex}.paper-page .dashboard-filter-controls .btn-group .btn{flex:1;justify-content:center}.paper-page .dashboard-filter-controls .dropdown{flex:1 1 0;min-width:0}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{width:100%;justify-content:space-between}.paper-page .dashboard-filter-controls .dropdown .filter-btn-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:480px){.paper-page .paper-page-lede{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.empty-state{text-align:center;padding:40px 20px;opacity:.6}.empty-state i{font-size:2rem;margin-bottom:10px;display:block}.paper-page .progress{height:10px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;margin-bottom:20px}.paper-page .progress .progress-bar{background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:10px;line-height:10px}.paper-page .progress .progress-bar.bg-success{background:var(--status-ready)!important}.paper-page .progress .progress-bar.bg-warning{background:var(--status-progress)!important;color:#fff}.paper-page .progress .progress-bar.bg-danger{background:var(--status-error)!important}.paper-page .progress .progress-bar.bg-dark{background:var(--ink-faint)!important}.paper-page .form>h5,.paper-page form>h5,.paper-page>h5{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:24px 0 8px}.paper-page .accordion .card{background:var(--paper-card,var(--sidebar-bg-color));border:1px solid var(--border-color);border-radius:8px!important;margin-bottom:8px;overflow:hidden}.paper-page .accordion .card+.card{border-top:1px solid var(--border-color)}.paper-page .accordion .card-header{background:0 0;border:none;padding:0}.paper-page .accordion .card-header .btn{color:var(--color)!important;font-family:var(--font-sans);font-weight:500;font-size:14px;padding:14px 18px!important;background:0 0!important;border:none!important;position:relative}.paper-page .accordion .card-header .btn::after{content:"+";position:absolute;right:18px;font-family:var(--font-serif);font-size:20px;color:var(--ink-muted)}.paper-page .accordion .card-header .btn:not(.collapsed)::after{content:"–"}.paper-page .accordion .card-body{padding:6px 18px 18px!important;border-top:1px solid var(--border-soft)}.paper-page .accordion .form-check-label{color:var(--color);font-weight:500;font-size:13.5px}.paper-page .accordion .form-text{color:var(--ink-muted);font-size:12px;margin-top:2px}.faq-section .panel-body code{font-family:var(--font-mono);font-size:13px;padding:1px 6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:3px;color:var(--color)}.faq-section .panel-body a{color:var(--accent)}@media (max-width:820px){.paper-faq-body{grid-template-columns:1fr;gap:24px}.paper-faq-toc{position:static}}.paper-footer{margin-top:80px;padding:56px max(20px,calc((100vw - 1200px)/ 2)) 28px;border-top:1px solid var(--border-color);background:var(--canvas-bg-color);font-family:var(--font-sans)}.paper-footer-inner{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}.paper-footer-brand .paper-footer-mark{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--color)}.paper-footer-brand .paper-footer-mark em{font-style:italic;font-weight:400}.paper-footer-tag{margin-top:10px;color:var(--ink-soft);font-size:13.5px;line-height:1.55;max-width:340px}.paper-footer-head{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.paper-footer-col a{display:block;color:var(--color);font-size:13.5px;padding:4px 0;text-decoration:none}.paper-footer-col a:hover{color:var(--accent)}.paper-footer-rule{height:1px;background:var(--border-color);margin:40px 0 16px}.paper-footer-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.02em}.paper-footer-foot .paper-footer-meta{font-family:var(--font-serif);font-style:italic;font-size:13.5px;letter-spacing:0;color:var(--ink-soft)}@media (max-width:768px){.paper-footer-inner{grid-template-columns:1fr 1fr}}.file.folder.truncated .truncated-warning{color:#d39e00;margin-left:4px;font-size:.85em;flex-shrink:0}.file.folder.truncated>a{color:#d39e00}body{--bucket-error-bg:#FCEDED;--bucket-error-fg:#8A1F1F;--bucket-error-bd:#F0C4C4;--bucket-error-dot:#B53737;--bucket-warn-bg:#FFF3DF;--bucket-warn-fg:#7A4D00;--bucket-warn-bd:#F0D8A0;--bucket-warn-dot:#B07A2F;--bucket-info-bg:#EAF2EC;--bucket-info-fg:#2C5D3A;--bucket-info-bd:#C5DCCD;--bucket-info-dot:#5B8D6B;--card-shadow:0 1px 2px rgba(26, 24, 21, 0.04),0 4px 14px rgba(26, 24, 21, 0.05);--card-shadow-hover:0 1px 2px rgba(26, 24, 21, 0.06),0 8px 24px rgba(26, 24, 21, 0.08)}.dark-mode{--bucket-error-bg:rgba(255, 139, 123, 0.10);--bucket-error-fg:#FF8B7B;--bucket-error-bd:rgba(255, 139, 123, 0.28);--bucket-error-dot:#FF8B7B;--bucket-warn-bg:rgba(255, 211, 122, 0.10);--bucket-warn-fg:#FFD37A;--bucket-warn-bd:rgba(255, 211, 122, 0.28);--bucket-warn-dot:#FFD37A;--bucket-info-bg:rgba(152, 200, 168, 0.10);--bucket-info-fg:#98C8A8;--bucket-info-bd:rgba(152, 200, 168, 0.28);--bucket-info-dot:#98C8A8;--card-shadow:0 1px 2px rgba(0, 0, 0, 0.35),0 6px 18px rgba(0, 0, 0, 0.30);--card-shadow-hover:0 2px 4px rgba(0, 0, 0, 0.45),0 12px 28px rgba(0, 0, 0, 0.40)}.errors-page .errors-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 8px}.errors-page .errors-actions{display:flex;gap:6px}.errors-page .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:14px 0 18px}.errors-page .kpi-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease,transform 160ms ease}.errors-page .kpi-card:hover{box-shadow:var(--card-shadow-hover)}.errors-page .kpi-label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.errors-page .kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.errors-page .kpi-card.kpi-error .kpi-value{color:var(--bucket-error-fg)}.errors-page .kpi-card.kpi-warn .kpi-value{color:var(--bucket-warn-fg)}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--bucket-info-fg)}.errors-page .kpi-sub{font-size:.78rem;color:var(--ink-muted);font-style:italic}.errors-page .kpi-sub.up{color:var(--bucket-error-fg);font-style:normal}.errors-page .kpi-sub.down{color:var(--bucket-info-fg);font-style:normal}.errors-page .dropped-warn{color:var(--bucket-error-fg);font-weight:600;font-style:normal}.errors-page .volume-chart{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;margin-bottom:18px;box-shadow:var(--card-shadow)}.errors-page .volume-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.7rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.errors-page .volume-legend{display:flex;gap:14px;align-items:center;text-transform:none;letter-spacing:0;font-family:var(--font-sans)}.errors-page .volume-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}.errors-page .dot.dot-error{background:var(--bucket-error-dot)}.errors-page .dot.dot-warn{background:var(--bucket-warn-dot)}.errors-page .dot.dot-info{background:var(--bucket-info-dot)}.errors-page .volume-bars{display:flex;align-items:flex-end;gap:4px;height:80px}.errors-page .volume-bar{display:flex;flex-direction:column-reverse;flex:1 1 0;min-width:6px;height:100%}.errors-page .volume-bar .seg{display:block;width:100%}.errors-page .seg.seg-error{background:var(--bucket-error-dot)}.errors-page .seg.seg-warn{background:var(--bucket-warn-dot)}.errors-page .seg.seg-info{background:var(--bucket-info-dot);opacity:.7}.errors-page .errors-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.errors-page .seg-tabs{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--paper-card)}.errors-page .seg-tabs button{background:0 0;border:none;padding:6px 14px;font-size:.85rem;cursor:pointer;color:var(--color);font-family:var(--font-sans)}.errors-page .seg-tabs button+button{border-left:1px solid var(--border-color)}.errors-page .seg-tabs button.active{background:var(--primary-bg);color:var(--primary-color)}.errors-page .errors-toolbar .search-wrap{position:relative;flex:1 1 320px;min-width:220px}.errors-page .errors-toolbar .search-wrap input{width:100%;padding:6px 10px 6px 32px;border:1px solid var(--border-color);border-radius:8px;font-family:var(--font-mono);font-size:.82rem;background:var(--input-bg);color:var(--input-color)}.errors-page .errors-toolbar .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-muted);font-size:.85rem}.errors-page .errors-toolbar .filter-count{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.72rem;color:var(--ink-muted)}.errors-page .errors-toolbar .select-wrap{display:inline-flex;align-items:center;gap:6px}.errors-page .errors-toolbar .select-wrap label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin:0}.errors-page .errors-toolbar .select-wrap select{background:var(--input-bg);color:var(--input-color);border:1px solid var(--border-color);border-radius:8px}.errors-page .errors-toolbar .autoref{display:inline-flex;gap:6px;align-items:center;font-size:.82rem;color:var(--color);cursor:pointer;margin:0}.errors-page .btn-icon{width:32px;padding:4px 0}.errors-page .errors-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;box-shadow:var(--card-shadow)}.errors-page .errors-list-head,.errors-page .errors-row-main{display:grid;grid-template-columns:110px 100px 100px 1fr 60px 70px;gap:16px;padding:18px 20px;align-items:start}.errors-page .errors-list-head{padding:12px 20px;align-items:center}.errors-page .errors-list-head{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.errors-page .errors-row{border-bottom:1px solid var(--border-soft)}.errors-page .errors-row:last-child{border-bottom:none}.errors-page .errors-row.open{background:var(--paper-bg-alt)}.errors-page .errors-row-main{cursor:pointer}.errors-page .errors-row-main:hover{background:var(--hover-bg-color)}.errors-page .col-when .when-rel{font-size:.95rem;color:var(--color);font-variant-numeric:tabular-nums}.errors-page .col-when .when-abs{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-top:2px}.errors-page .col-sev{display:flex;align-items:center;gap:8px}.errors-page .sev-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.errors-page .sev-dot.sev-error{background:var(--bucket-error-dot)}.errors-page .sev-dot.sev-warn{background:var(--bucket-warn-dot)}.errors-page .sev-dot.sev-info{background:var(--bucket-info-dot)}.errors-page .sev-label{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;color:var(--color)}.errors-page .pill-module{display:inline-block;font-family:var(--font-mono);font-size:.78rem;background:var(--paper-bg-alt);color:var(--ink-soft);border:1px solid var(--border-color);padding:3px 10px;border-radius:6px}.errors-page .col-msg .msg-code{font-family:var(--font-mono);font-size:1rem;color:var(--color);font-weight:600}.errors-page .col-msg .msg-context{color:var(--ink-muted);font-style:italic;font-size:.88rem;margin-left:10px}.errors-page .col-msg .msg-detail{color:var(--ink-soft);font-family:var(--font-mono);font-size:.82rem;margin-left:10px}.errors-page .col-msg .msg-url{color:var(--ink-muted);font-family:var(--font-mono);font-size:.8rem;margin-top:6px;word-break:break-all}.errors-page .count-pill{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--primary-bg);color:var(--primary-color);font-family:var(--font-mono);font-size:.78rem;font-variant-numeric:tabular-nums}.errors-page .count-pill.count-pill-muted{background:0 0;color:var(--ink-muted);border:1px solid var(--border-color)}.errors-page .status-pill{display:inline-block;padding:2px 10px;border-radius:4px;font-family:var(--font-mono);font-size:.8rem;font-variant-numeric:tabular-nums;border:1px solid transparent}.errors-page .status-pill.status-error{background:var(--bucket-error-bg);color:var(--bucket-error-fg);border-color:var(--bucket-error-bd)}.errors-page .status-pill.status-warn{background:var(--bucket-warn-bg);color:var(--bucket-warn-fg);border-color:var(--bucket-warn-bd)}.errors-page .status-pill.status-info{background:var(--bucket-info-bg);color:var(--bucket-info-fg);border-color:var(--bucket-info-bd)}.errors-page .errors-row-detail{padding:0 16px 16px}.errors-page .detail-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color);margin-bottom:12px}.errors-page .detail-tabs button{background:0 0;border:0;border-bottom:2px solid transparent;padding:8px 12px;font-size:.85rem;cursor:pointer;color:var(--ink-muted);font-family:var(--font-sans)}.errors-page .detail-tabs button.active{color:var(--color);border-bottom-color:var(--color)}.errors-page .detail-body{display:grid;grid-template-columns:1fr 260px;gap:20px}.errors-page .detail-main pre{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;font-family:var(--font-mono);font-size:.85rem;line-height:1.7;color:var(--color);max-height:26em;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;box-shadow:var(--card-shadow)}.errors-page .related-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;max-height:22em;overflow:auto;box-shadow:var(--card-shadow)}.errors-page .stack-pre{line-height:1.45;white-space:pre;overflow-x:auto}.errors-page .related-row{display:flex;gap:10px;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border-soft);font-size:.8rem}.errors-page .related-row:last-child{border-bottom:none}.errors-page .detail-actions{display:flex;gap:6px;align-items:center;margin-top:10px}.errors-page .copy-hint{font-size:.78rem;color:var(--bucket-info-fg)}.errors-page .detail-aside{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px;box-shadow:var(--card-shadow)}.errors-page .aside-block+.aside-block{margin-top:16px}.errors-page .aside-label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:4px}.errors-page .aside-value{font-family:var(--font-serif);font-size:1.05rem;color:var(--color);word-break:break-word;line-height:1.3}.errors-page .aside-value.mono{font-family:var(--font-mono);font-size:.82rem}.errors-page .aside-sub{color:var(--ink-muted);font-style:italic;font-size:.8rem;font-family:var(--font-sans)}.errors-page .errors-pager{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:var(--ink-muted);font-size:.85rem}@media (max-width:720px){.errors-page .errors-list-head,.errors-page .errors-row-main{grid-template-columns:80px 80px 1fr 60px}.errors-page .errors-list-head .col-mod,.errors-page .errors-list-head .col-sev,.errors-page .errors-row-main .col-mod,.errors-page .errors-row-main .col-sev{display:none}.errors-page .detail-body{grid-template-columns:1fr}}.overview-page .ov-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:2px}.overview-page .ov-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;vertical-align:middle}.overview-page .ov-dot-ok{background:#2f7a44}.overview-page .ov-dot-warn{background:#c48a2e}.overview-page .ov-dot-idle{background:var(--ink-muted)}.dark-mode .overview-page .ov-dot-ok{background:#7dc894}.dark-mode .overview-page .ov-dot-warn{background:#e8b970}.overview-page .ov-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:16px 0 22px}.overview-page .ov-kpi-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease}.overview-page .ov-kpi-card:hover{box-shadow:var(--card-shadow-hover)}.overview-page .ov-kpi-label{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.overview-page .ov-kpi-value.ov-val-warn{color:#b42318}.dark-mode .overview-page .ov-kpi-value.ov-val-warn{color:#f08a82}.overview-page .ov-kpi-sub{font-size:.76rem;color:var(--ink-muted);margin-top:2px}.overview-page .ov-daily-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:-4px 0 22px}.overview-page .ov-daily-card{background:var(--primary-bg);border:1px solid var(--border-color);border-radius:12px;padding:16px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-daily-label{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-daily-value{font-family:var(--font-serif);font-size:2.35rem;font-weight:400;line-height:1;color:var(--accent,#3b4ad6);margin-top:6px}.overview-page .ov-daily-sub{font-size:.76rem;color:var(--ink-muted);margin-top:5px}.dark-mode .overview-page .ov-daily-card{background:var(--paper-card)}.dark-mode .overview-page .ov-daily-value{color:#a7b2ff}.overview-page .ov-chart-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.overview-page .ov-chart-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px 14px;box-shadow:var(--card-shadow)}.overview-page .ov-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.overview-page .ov-chart-title{font-family:var(--font-serif);font-size:1.05rem}.overview-page .ov-chart-legend{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-muted);display:flex;align-items:center;gap:5px}.overview-page .ov-dot-legend{display:inline-block;width:8px;height:8px;border-radius:50%}.overview-page .ov-dot-accent{background:var(--accent,#3b4ad6)}.overview-page .ov-dot-ok-fill{background:#2f7a44}.overview-page .ov-dot-user-fill{background:#8b5e2e}.overview-page .ov-dot-new-user-fill{background:#c48a2e}.dark-mode .overview-page .ov-dot-ok-fill{background:#7dc894}.dark-mode .overview-page .ov-dot-user-fill{background:#d0a15f}.dark-mode .overview-page .ov-dot-new-user-fill{background:#e8b970}.overview-page .ov-spark-bars{display:flex;align-items:flex-end;gap:3px;height:140px}.overview-page .ov-spark-col{flex:1;display:flex;align-items:flex-end;height:100%;position:relative}.overview-page .ov-spark-fill{width:100%;background:var(--accent,#3b4ad6);border-radius:2px 2px 0 0;transition:height .3s ease;opacity:.55}.overview-page .ov-spark-fill-alt{background:#2f7a44}.overview-page .ov-spark-fill-user{background:#8b5e2e}.overview-page .ov-spark-fill-new-user{background:#c48a2e}.dark-mode .overview-page .ov-spark-fill-alt{background:#7dc894}.dark-mode .overview-page .ov-spark-fill-user{background:#d0a15f}.dark-mode .overview-page .ov-spark-fill-new-user{background:#e8b970}.overview-page .ov-spark-col:hover .ov-spark-fill{opacity:1}.overview-page .ov-spark-col.has-tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);z-index:10;padding:6px 8px;border-radius:6px;background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:.68rem;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) translateY(4px);z-index:10;border:5px solid transparent;border-top-color:var(--color);opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip:hover::after,.overview-page .ov-spark-col.has-tip:hover::before{opacity:1;transform:translateX(-50%) translateY(0)}.overview-page .ov-spark-x{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.66rem;color:var(--ink-muted);margin-top:6px}.overview-page .ov-triple-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:18px}.overview-page .ov-panel-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.overview-page .ov-panel-title{font-family:var(--font-serif);font-size:1.05rem}.overview-page .ov-panel-meta{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.overview-page .ov-panel-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color);font-size:.82rem}.overview-page .ov-panel-foot a{color:var(--link-color);text-decoration:none}.overview-page .ov-panel-foot a:hover{text-decoration:underline}.overview-page .ov-stacked-bar{display:flex;height:18px;border-radius:6px;overflow:hidden;margin-bottom:14px}.overview-page .ov-bar-seg{min-width:2px;transition:width .4s ease}.overview-page .ov-bar-ready{background:#2f7a44}.overview-page .ov-bar-preparing{background:#c48a2e}.overview-page .ov-bar-error{background:#b42318}.overview-page .ov-bar-expired{background:#8a857c}.overview-page .ov-bar-removed{background:#b5afa2}.dark-mode .overview-page .ov-bar-ready{background:#7dc894}.dark-mode .overview-page .ov-bar-preparing{background:#e8b970}.dark-mode .overview-page .ov-bar-error{background:#f08a82}.dark-mode .overview-page .ov-bar-expired{background:#6b665e}.dark-mode .overview-page .ov-bar-removed{background:#4a453e}.overview-page .ov-bar-legend{display:flex;flex-direction:column;gap:6px}.overview-page .ov-legend-item{display:flex;align-items:center;gap:8px;font-size:.82rem;text-decoration:none;color:inherit}.overview-page .ov-legend-item:hover{text-decoration:none;color:inherit}.overview-page .ov-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.overview-page .ov-legend-n{margin-left:auto;font-family:var(--font-mono);font-size:.8rem;font-weight:600}.overview-page .ov-error-bars{display:flex;flex-direction:column;gap:12px}.overview-page .ov-ebar-row{display:flex;align-items:center;gap:10px}.overview-page .ov-ebar-label{width:30px;flex-shrink:0;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--ink-muted)}.overview-page .ov-ebar-track{flex:1;height:10px;background:var(--hover-bg-color);border-radius:5px;overflow:hidden}.overview-page .ov-ebar-fill{height:100%;border-radius:5px;transition:width .4s ease}.overview-page .ov-ebar-error{background:#b42318}.overview-page .ov-ebar-warn{background:#c48a2e}.overview-page .ov-ebar-info{background:var(--accent,#3b4ad6)}.dark-mode .overview-page .ov-ebar-error{background:#f08a82}.dark-mode .overview-page .ov-ebar-warn{background:#e8b970}.overview-page .ov-ebar-n{width:36px;text-align:right;font-family:var(--font-mono);font-size:.82rem;font-weight:600;flex-shrink:0}.overview-page .ov-routes-table{display:flex;flex-direction:column}.overview-page .ov-route-row{display:grid;grid-template-columns:1fr 60px 60px 60px;padding:8px 0;border-bottom:1px solid var(--border-soft,var(--border-color));text-decoration:none;color:inherit;font-size:.85rem;align-items:center}.overview-page .ov-route-row:last-child{border-bottom:none}.overview-page .ov-route-row:hover{background:var(--hover-bg-color);text-decoration:none;color:inherit}.overview-page .ov-route-head{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);border-bottom:1px solid var(--border-color)}.overview-page .ov-route-head:hover{background:0 0}.overview-page .ov-route-name{font-family:var(--font-mono);font-size:.84rem}.overview-page .ov-route-n{text-align:right;font-family:var(--font-mono);font-size:.84rem}.overview-page .ov-route-lat{color:var(--ink-muted)}.overview-page .ov-n-bad{color:#b42318;font-weight:600}.dark-mode .overview-page .ov-n-bad{color:#f08a82}.overview-page .ov-services-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;box-shadow:var(--card-shadow);margin-bottom:18px}.overview-page .ov-services-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.overview-page .ov-services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.overview-page .ov-svc{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border-soft,var(--border-color));border-radius:10px}.overview-page .ov-svc-dot{width:10px;height:10px;border-radius:50%;margin-top:3px;flex-shrink:0}.overview-page .ov-svc-info{display:flex;flex-direction:column;gap:1px;flex:1}.overview-page .ov-svc-name{font-family:var(--font-mono);font-size:.88rem;font-weight:600}.overview-page .ov-svc-meta{font-size:.76rem;color:var(--ink-muted)}.overview-page .ov-svc-detail{font-size:.74rem;color:var(--ink-muted);white-space:nowrap}@media (max-width:900px){.overview-page .ov-kpi-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-daily-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-triple-row{grid-template-columns:1fr}}@media (max-width:720px){.overview-page .ov-kpi-row{grid-template-columns:repeat(2,1fr)}.overview-page .ov-daily-row{grid-template-columns:1fr}.overview-page .ov-chart-row{grid-template-columns:1fr}.overview-page .ov-header{flex-direction:column;gap:8px}}@media (max-width:480px){.overview-page .ov-kpi-row{grid-template-columns:1fr 1fr}.overview-page .ov-services-grid{grid-template-columns:1fr 1fr}}.dashboard-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-bottom:12px}.dashboard-heading-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.dashboard-connections-link{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:var(--ink-muted);font-size:12px;line-height:1.5}.dashboard-connections-link:hover{color:var(--accent);text-decoration:none}.dashboard-connections-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (max-width:767px){.dashboard-heading-actions{align-items:flex-start;padding-bottom:0;gap:4px}.dashboard-connections-link{min-height:44px}}.paper-settings-connection-link{display:flex;align-items:center;gap:12px;padding:18px 0;color:var(--color);font-size:14px}.paper-settings-connection-link>i{color:var(--ink-muted);font-size:18px}.paper-settings-connection-link>span:first-of-type{flex:1}.paper-settings-connection-link small{display:block;margin-top:4px;color:var(--ink-muted);font-size:12px}.paper-settings-connection-link:hover{color:var(--accent);text-decoration:none}.paper-settings-connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.connections-heading{margin-bottom:36px}.connections-heading .paper-page-title{font-size:clamp(38px,4.5vw,56px);margin-bottom:12px}.connections-heading .paper-page-lede{font-size:15px}.connections-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start;border-top:1px solid var(--border-color);padding-top:28px}.connections-grid>section{min-width:0}.connection-title,.connection-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.connection-top{margin-bottom:24px;min-height:28px}.connection-top>i{color:var(--ink-muted);font-size:24px}.connection-top>.fa-key{font-size:18px}.connection-title{margin-bottom:10px}.connections-page h2{font-family:inherit;font-size:21px;font-weight:600;letter-spacing:-.5px;margin:0}.connections-page p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.connection-badge{background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;border-radius:5px;padding:4px 8px;white-space:nowrap}.connection-badge-muted{background:var(--paper-bg-alt);color:var(--ink-muted)}.connection-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-muted)}.connection-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.connection-status.is-connected{color:var(--status-ready)}.connection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:22px 0 16px}.connections-page .btn{font-size:13px;padding:9px 13px;white-space:normal}.connection-revoke p,.connections-page .connection-help{font-size:12px}.connection-link{display:inline-flex;align-items:center;gap:8px;border:0;padding:0;background:0 0;color:var(--accent);font-size:13px;line-height:1.6;font-weight:500;text-align:left;cursor:pointer}.connection-link:hover{color:var(--link-hover-color);text-decoration:underline}.connection-link:disabled{color:var(--ink-muted);opacity:.65;cursor:not-allowed;text-decoration:none}.connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.connection-installations{list-style:none;padding:0;margin:18px 0;border-top:1px solid var(--border-soft)}.connection-installations li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0;font-size:12px;border-bottom:1px solid var(--border-soft)}.connection-revoke{border-top:1px solid var(--border-soft);padding-top:18px;margin-top:24px}.connection-danger{color:var(--status-error)}.connection-resources{margin-top:36px;padding-top:28px;border-top:1px solid var(--border-color)}.connection-count{color:var(--ink-muted);font-size:12px}.connection-empty{display:flex;align-items:center;gap:18px;padding:20px 0;margin:22px 0}.connection-empty>i{font-size:22px;color:var(--ink-muted)}.connection-empty h3{font-size:14px;font-weight:600;margin:0 0 5px}.connection-empty p{font-size:12px;margin:0}.connection-empty>a{margin-left:auto;flex-shrink:0}.connection-resource{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--border-color)}.connection-resource-name{flex:1;min-width:180px;overflow-wrap:anywhere;font-size:14px}.connection-resource-name small{display:block;color:var(--ink-muted);font-size:11px;margin-top:5px}.connection-resource-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.connection-resource-actions .connection-help{flex-basis:100%}.connections-page .connection-footnote{display:flex;align-items:baseline;gap:10px;margin-top:22px;font-size:12px}@media (max-width:767px){.connections-grid{grid-template-columns:1fr;gap:28px}.connections-grid>section+section{border-top:1px solid var(--border-color);padding-top:28px}.connection-empty{flex-wrap:wrap}.connection-empty>div{flex:1;min-width:180px}.connection-empty>a{margin-left:40px}.connection-resource-actions{flex-basis:100%}}.paper-table-empty-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.paper-table-empty-actions .btn>i{font-size:1em;line-height:1;color:inherit;margin-right:0!important}.auth-back{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-muted);margin-bottom:48px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.auth-intro,.auth-options{padding-top:28px}.auth-title-mobile{display:none}.auth-intro .paper-page-title{font-size:clamp(48px,5vw,76px);line-height:1.06;margin:18px 0 24px}.auth-intro .paper-page-lede{max-width:330px}.auth-options{display:grid;gap:28px}.auth-options h2{font-family:inherit;font-size:21px;font-weight:600;margin:0 0 10px}.auth-options p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.auth-options .auth-existing{font-size:12px;border-left:2px solid var(--accent);padding-left:14px;margin:0}.auth-permissions{padding:6px 0 12px;list-style:none;font-size:13px;line-height:1.6}.auth-permissions li{display:flex;gap:10px;margin:12px 0}.auth-permissions i{color:var(--status-ready);margin-top:4px}.auth-continue{display:flex!important;align-items:center;justify-content:space-between;min-height:48px;padding:12px 16px!important}.auth-options small{display:block;font-size:12px;text-align:center;color:var(--ink-muted);margin-top:12px}.auth-legacy{border-top:1px solid var(--border-color);padding-top:24px}.auth-legacy h2{font-size:16px;margin:0}.auth-legacy p{font-size:13px}.source-url-label-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px}.source-url-label-row>.paper-field-label{margin:0}.repo-access{margin:0}.repo-access-details{margin:12px 0 24px}.source-url-label-row .repo-access-switch{padding:2px}.source-url-label-row .repo-access-switch button{padding:5px 8px;font-size:11px}.repo-access-main{display:flex;align-items:center;gap:10px;padding:0 0 8px;flex-wrap:wrap}.repo-access-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.repo-access-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--border-color);border-radius:7px;flex-wrap:wrap}.repo-access-switch button{border:0;border-radius:4px;background:0 0;color:var(--ink-muted);padding:7px 10px;font:inherit;font-size:12px;cursor:pointer}.repo-access-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);opacity:1;cursor:default;font-weight:600}.repo-access-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.repo-access-details .btn{font-size:12px;padding:8px 12px}.repo-access-note{display:flex;gap:6px 16px;flex-wrap:wrap;padding:0;color:var(--ink-muted);font-size:11px;line-height:1.6}@media (max-width:767px){.auth-page{max-width:480px}.auth-back,.auth-intro .paper-eyebrow,.auth-title-desktop{display:none}.auth-title-mobile{display:inline}.auth-layout{grid-template-columns:1fr;gap:24px}.auth-intro,.auth-options{padding-top:0}.auth-intro .paper-page-title{font-size:40px;line-height:1.15;margin:6px 0 12px}.auth-intro .paper-page-lede{max-width:none;font-size:14px;margin:0}.auth-options{gap:24px}.auth-options .connection-top{margin-bottom:16px}.auth-options h2{font-size:18px}.auth-options p{font-size:13px;margin-bottom:12px}.auth-permissions{padding:0;margin:14px 0 20px;font-size:12px}.auth-permissions li{margin:8px 0}.auth-continue{font-size:14px}.auth-legacy{padding-top:20px}.auth-legacy h2{font-size:15px}.auth-legacy .connection-link{min-height:44px}.repo-access-controls{width:100%;gap:12px}} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css index 6d1b2fc..e704450 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -2353,12 +2353,19 @@ code { /* ===== Anonymize Page Layout ===== */ +.anonymize-page { + display: flex; + flex-direction: column; + min-height: 0; +} + /* Landing state: centered URL input */ .anonymize-landing { + flex: 1 1 0; + min-height: min-content; display: flex; align-items: center; justify-content: center; - height: 100%; padding: 20px; } @@ -2375,7 +2382,8 @@ code { .anonymize-workspace { display: flex; flex-direction: column; - height: 100%; + flex: 1 1 0; + min-height: 0; background: var(--canvas-bg-color); } .anonymize-topbar { @@ -2576,7 +2584,7 @@ code { /* Mobile: stack form above preview, tighten paddings */ @media (max-width: 767px) { - .anonymize-workspace { height: auto; min-height: 100%; } + .anonymize-workspace { flex: 0 0 auto; min-height: 0; } .anonymize-topbar { padding: 14px 16px; } .anonymize-topbar-title { font-size: 1.6rem; margin-top: 2px; } .anonymize-split { @@ -7120,20 +7128,21 @@ body { .auth-legacy { border-top: 1px solid var(--border-color); padding-top: 24px; } .auth-legacy h2 { font-size: 16px; margin: 0; } .auth-legacy p { font-size: 13px; } -.repo-access { max-width: 1036px; margin: 24px auto 0; border-bottom: 1px solid var(--border-color); flex-shrink: 0; } -.repo-access-main { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 0; flex-wrap: wrap; } -.repo-access-heading { display: flex; align-items: center; gap: 12px; } -.repo-access-heading > i { font-size: 22px; color: var(--ink-muted); } -.repo-access-heading h2 { font-family: inherit; font-size: 13px; font-weight: 600; margin: 0 0 4px; } -.repo-access-heading p { font-size: 12px; color: var(--ink-muted); margin: 0; } -.repo-access-controls { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; } +.source-url-label-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 8px; } +.source-url-label-row > .paper-field-label { margin: 0; } +.repo-access { margin: 0; } +.repo-access-details { margin: 12px 0 24px; } +.source-url-label-row .repo-access-switch { padding: 2px; } +.source-url-label-row .repo-access-switch button { padding: 5px 8px; font-size: 11px; } +.repo-access-main { display: flex; align-items: center; gap: 10px; padding: 0 0 8px; flex-wrap: wrap; } +.repo-access-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .repo-access-switch { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid var(--border-color); border-radius: 7px; flex-wrap: wrap; } .repo-access-switch button { border: 0; border-radius: 4px; background: transparent; color: var(--ink-muted); padding: 7px 10px; font: inherit; font-size: 12px; cursor: pointer; } .repo-access-switch button[aria-pressed="true"] { background: var(--accent-soft); color: var(--accent); opacity: 1; cursor: default; font-weight: 600; } .repo-access-switch button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } -.repo-access .btn { font-size: 12px; padding: 8px 12px; } -.repo-access-note { display: flex; gap: 6px 16px; flex-wrap: wrap; padding: 0 0 14px; color: var(--ink-muted); font-size: 11px; line-height: 1.6; } -@media (max-width: 1100px) { .repo-access { margin-left: 24px; margin-right: 24px; } } +.repo-access-details .btn { font-size: 12px; padding: 8px 12px; } +.repo-access-note { display: flex; gap: 6px 16px; flex-wrap: wrap; padding: 0; color: var(--ink-muted); font-size: 11px; line-height: 1.6; } + @media (max-width: 767px) { .auth-page { max-width: 480px; } .auth-back, .auth-intro .paper-eyebrow, .auth-title-desktop { display: none; } @@ -7152,6 +7161,6 @@ body { .auth-legacy { padding-top: 20px; } .auth-legacy h2 { font-size: 15px; } .auth-legacy .connection-link { min-height: 44px; } - .repo-access { margin: 16px 18px 0; } + .repo-access-controls { width: 100%; gap: 12px; } } diff --git a/public/partials/anonymize.htm b/public/partials/anonymize.htm index 0821d96..70a1727 100644 --- a/public/partials/anonymize.htm +++ b/public/partials/anonymize.htm @@ -1,19 +1,4 @@
-
@@ -24,12 +9,30 @@ it, strip every trace of identity, and hand you back a stable link.

- +
+ + +
Repository, pull request (…/pull/42) and gist (gist.github.com/…) URLs are all accepted. +
@@ -62,7 +65,16 @@
Source
- +
+ + +
Please provide a valid GitHub URL. @@ -78,6 +90,16 @@
+ +
diff --git a/public/script/app.js b/public/script/app.js index b000543..b38cdcc 100644 --- a/public/script/app.js +++ b/public/script/app.js @@ -1118,7 +1118,14 @@ export const anonymizeController = function (state, http, html, params, location } }); - http.get("/github/connections").then(res => { state.githubConnections = res.data; }).catch(() => {}); + http.get("/github/connections").then(res => { + state.githubConnections = res.data; + // Preserve saved resources and an explicit or restored draft choice. + if (!params.repoId && !params.pullRequestId && !params.gistId && state.githubConnection === undefined + && res.data.appEnabled && res.data.appConnected) { + state.githubConnection = "github-app"; + } + }).catch(() => {}); // URL change handler - auto-detect type state.urlSelected = async (preserveDraft = false) => { diff --git a/public/script/vendor.min.js b/public/script/vendor.min.js index a1f66e0..af4f93d 100644 --- a/public/script/vendor.min.js +++ b/public/script/vendor.min.js @@ -1,29 +1,29 @@ -"use strict";(()=>{var Ul=Object.defineProperty;var zl=(e,t)=>{for(var o in t)Ul(e,o,{get:t[o],enumerable:!0})};var ye={org:"/script/org.f4e2a3f59f.min.js",editor:"/script/editor.e243722d87.min.js",pdf:"/script/pdf.eaa7573247.min.js",notebook:"/script/notebook.8844e2735f.min.js",markdown:"/script/markdown.ad7b1d71c3.min.js"};var rn=new Map,Bl=ye;function Wt(e){if(!rn.has(e)){let t=document.createElement("script");t.src=Bl[e];let o=new Promise((r,n)=>{t.onload=r,t.onerror=()=>{rn.delete(e),t.remove(),n(new Error(`Unable to load ${e}. Please retry.`))}});rn.set(e,o),document.head.appendChild(t)}return rn.get(e)}async function tr(){await Wt("editor"),ace.config.set("basePath","/script/external/ace/")}function ds(e){let t=Object.create(null);for(let o of e.split(","))t[o]=1;return o=>o in t}var Me={},Kt=[],rt=()=>{},Xn=()=>!1,us=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),cs=e=>e.startsWith("onUpdate:"),Ge=Object.assign,Ss=(e,t)=>{let o=e.indexOf(t);o>-1&&e.splice(o,1)},Gl=Object.prototype.hasOwnProperty,Te=(e,t)=>Gl.call(e,t),Ee=Array.isArray,Pt=e=>Ds(e)==="[object Map]",ls=e=>Ds(e)==="[object Set]",sr=e=>Ds(e)==="[object Date]";var _e=e=>typeof e=="function",Ue=e=>typeof e=="string",ct=e=>typeof e=="symbol",Ae=e=>e!==null&&typeof e=="object",xn=e=>(Ae(e)||_e(e))&&_e(e.then)&&_e(e.catch),rr=Object.prototype.toString,Ds=e=>rr.call(e),Zn=e=>Ds(e).slice(8,-1),an=e=>Ds(e)==="[object Object]",ln=e=>Ue(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ps=ds(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var dn=e=>{let t=Object.create(null);return(o=>t[o]||(t[o]=e(o)))},jl=/-\w/g,Ke=dn(e=>e.replace(jl,t=>t.slice(1).toUpperCase())),Wl=/\B([A-Z])/g,qt=dn(e=>e.replace(Wl,"-$1").toLowerCase()),Yt=dn(e=>e.charAt(0).toUpperCase()+e.slice(1)),Rs=dn(e=>e?`on${Yt(e)}`:""),ht=(e,t)=>!Object.is(e,t),Ts=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:o})},eo=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var nr,Os=()=>nr||(nr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ve(e){if(Ee(e)){let t={};for(let o=0;o{if(o){let r=o.split(Yl);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function O(e){let t="";if(Ue(e))t=e;else if(Ee(e))for(let o=0;o!!(e&&e.__v_isRef===!0),c=e=>Ue(e)?e:e==null?"":Ee(e)||Ae(e)&&(e.toString===rr||!_e(e.toString))?lr(e)?c(e.value):JSON.stringify(e,dr,2):String(e),dr=(e,t)=>lr(t)?dr(e,t.value):Pt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[r,n],i)=>(o[Qn(r,i)+" =>"]=n,o),{})}:ls(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Qn(o))}:ct(t)?Qn(t):Ae(t)&&!Ee(t)&&!an(t)?String(t):t,Qn=(e,t="")=>{var o;return ct(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};function Zl(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Ye,Ps=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ye&&(Ye.active?(this.parent=Ye,this.index=(Ye.scopes||(Ye.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){let r=this.scopes.slice();for(t=0,o=r.length;t0&&--this._on===0){if(Ye===this)Ye=this.prevScope;else{let t=Ye;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,r;for(o=0,r=this.effects.length;o0)return;if(Vs){let t=Vs;for(Vs=void 0;t;){let o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Is;){let t=Is;for(Is=void 0;t;){let o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=o}}if(e)throw e}function hr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function vr(e){let t,o=e.depsTail,r=o;for(;r;){let n=r.prevDep;r.version===-1?(r===o&&(o=n),ho(r),ed(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=n}e.deps=t,e.depsTail=o}function oo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(yr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function yr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===qs)||(e.globalVersion=qs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!oo(e))))return;e.flags|=2;let t=e.dep,o=Fe,r=wt;Fe=e,wt=!0;try{hr(e);let n=e.fn(e._value);(t.version===0||ht(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{Fe=o,wt=r,vr(e),e.flags&=-3}}function ho(e,t=!1){let{dep:o,prevSub:r,nextSub:n}=e;if(r&&(r.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=r,e.nextSub=void 0),o.subs===e&&(o.subs=r,!r&&o.computed)){o.computed.flags&=-5;for(let i=o.computed.deps;i;i=i.nextDep)ho(i,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function ed(e){let{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}var wt=!0,gr=[];function Dt(){gr.push(wt),wt=!1}function Rt(){let e=gr.pop();wt=e===void 0?!0:e}function ur(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let o=Fe;Fe=void 0;try{t()}finally{Fe=o}}}var qs=0,ro=class{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ms=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Fe||!wt||Fe===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==Fe)o=this.activeLink=new ro(Fe,this),Fe.deps?(o.prevDep=Fe.depsTail,Fe.depsTail.nextDep=o,Fe.depsTail=o):Fe.deps=Fe.depsTail=o,br(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){let r=o.nextDep;r.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=r),o.prevDep=Fe.depsTail,o.nextDep=void 0,Fe.depsTail.nextDep=o,Fe.depsTail=o,Fe.deps===o&&(Fe.deps=r)}return o}trigger(t){this.version++,qs++,this.notify(t)}notify(t){fo();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{mo()}}};function br(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)br(r)}let o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}var io=new WeakMap,Qt=Symbol(""),ao=Symbol(""),$s=Symbol("");function Xe(e,t,o){if(wt&&Fe){let r=io.get(e);r||io.set(e,r=new Map);let n=r.get(o);n||(r.set(o,n=new Ms),n.map=r,n.key=o),n.track()}}function Nt(e,t,o,r,n,i){let a=io.get(e);if(!a){qs++;return}let u=p=>{p&&p.trigger()};if(fo(),t==="clear")a.forEach(u);else{let p=Ee(e),h=p&&ln(o);if(p&&o==="length"){let v=Number(r);a.forEach((g,f)=>{(f==="length"||f===$s||!ct(f)&&f>=v)&&u(g)})}else switch((o!==void 0||a.has(void 0))&&u(a.get(o)),h&&u(a.get($s)),t){case"add":p?h&&u(a.get("length")):(u(a.get(Qt)),Pt(e)&&u(a.get(ao)));break;case"delete":p||(u(a.get(Qt)),Pt(e)&&u(a.get(ao)));break;case"set":Pt(e)&&u(a.get(Qt));break}}mo()}function ms(e){let t=Oe(e);return t===e?t:(Xe(t,"iterate",$s),it(e)?t:t.map(vt))}function Fs(e){return Xe(e=Oe(e),"iterate",$s),e}function Ct(e,t){return kt(e)?Xt($t(e)?vt(t):t):vt(t)}var td={__proto__:null,[Symbol.iterator](){return so(this,Symbol.iterator,e=>Ct(this,e))},concat(...e){return ms(this).concat(...e.map(t=>Ee(t)?ms(t):t))},entries(){return so(this,"entries",e=>(e[1]=Ct(this,e[1]),e))},every(e,t){return Mt(this,"every",e,t,void 0,arguments)},filter(e,t){return Mt(this,"filter",e,t,o=>o.map(r=>Ct(this,r)),arguments)},find(e,t){return Mt(this,"find",e,t,o=>Ct(this,o),arguments)},findIndex(e,t){return Mt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Mt(this,"findLast",e,t,o=>Ct(this,o),arguments)},findLastIndex(e,t){return Mt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Mt(this,"forEach",e,t,void 0,arguments)},includes(...e){return no(this,"includes",e)},indexOf(...e){return no(this,"indexOf",e)},join(e){return ms(this).join(e)},lastIndexOf(...e){return no(this,"lastIndexOf",e)},map(e,t){return Mt(this,"map",e,t,void 0,arguments)},pop(){return As(this,"pop")},push(...e){return As(this,"push",e)},reduce(e,...t){return cr(this,"reduce",e,t)},reduceRight(e,...t){return cr(this,"reduceRight",e,t)},shift(){return As(this,"shift")},some(e,t){return Mt(this,"some",e,t,void 0,arguments)},splice(...e){return As(this,"splice",e)},toReversed(){return ms(this).toReversed()},toSorted(e){return ms(this).toSorted(e)},toSpliced(...e){return ms(this).toSpliced(...e)},unshift(...e){return As(this,"unshift",e)},values(){return so(this,"values",e=>Ct(this,e))}};function so(e,t,o){let r=Fs(e),n=r[t]();return r!==e&&!it(e)&&(n._next=n.next,n.next=()=>{let i=n._next();return i.done||(i.value=o(i.value)),i}),n}var sd=Array.prototype;function Mt(e,t,o,r,n,i){let a=Fs(e),u=a!==e&&!it(e),p=a[t];if(p!==sd[t]){let g=p.apply(e,i);return u?vt(g):g}let h=o;a!==e&&(u?h=function(g,f){return o.call(this,Ct(e,g),f,e)}:o.length>2&&(h=function(g,f){return o.call(this,g,f,e)}));let v=p.call(a,h,r);return u&&n?n(v):v}function cr(e,t,o,r){let n=Fs(e),i=n!==e&&!it(e),a=o,u=!1;n!==e&&(i?(u=r.length===0,a=function(h,v,g){return u&&(u=!1,h=Ct(e,h)),o.call(this,h,Ct(e,v),g,e)}):o.length>3&&(a=function(h,v,g){return o.call(this,h,v,g,e)}));let p=n[t](a,...r);return u?Ct(e,p):p}function no(e,t,o){let r=Oe(e);Xe(r,"iterate",$s);let n=r[t](...o);return(n===-1||n===!1)&&zs(o[0])?(o[0]=Oe(o[0]),r[t](...o)):n}function As(e,t,o=[]){Dt(),fo();let r=Oe(e)[t].apply(e,o);return mo(),Rt(),r}var nd=ds("__proto__,__v_isRef,__isVue"),wr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ct));function od(e){ct(e)||(e=String(e));let t=Oe(this);return Xe(t,"has",e),t.hasOwnProperty(e)}var hn=class{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,r){if(o==="__v_skip")return t.__v_skip;let n=this._isReadonly,i=this._isShallow;if(o==="__v_isReactive")return!n;if(o==="__v_isReadonly")return n;if(o==="__v_isShallow")return i;if(o==="__v_raw")return r===(n?i?fd:Er:i?_r:kr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;let a=Ee(t);if(!n){let p;if(a&&(p=td[o]))return p;if(o==="hasOwnProperty")return od}let u=Reflect.get(t,o,Qe(t)?t:r);if((ct(o)?wr.has(o):nd(o))||(n||Xe(t,"get",o),i))return u;if(Qe(u)){let p=a&&ln(o)?u:u.value;return n&&Ae(p)?yn(p):p}return Ae(u)?n?yn(u):ze(u):u}},vn=class extends hn{constructor(t=!1){super(!1,t)}set(t,o,r,n){let i=t[o],a=Ee(t)&&ln(o);if(!this._isShallow){let h=kt(i);if(!it(r)&&!kt(r)&&(i=Oe(i),r=Oe(r)),!a&&Qe(i)&&!Qe(r))return h||(i.value=r),!0}let u=a?Number(o)e,pn=e=>Reflect.getPrototypeOf(e);function ld(e,t,o){return function(...r){let n=this.__v_raw,i=Oe(n),a=Pt(i),u=e==="entries"||e===Symbol.iterator&&a,p=e==="keys"&&a,h=n[e](...r),v=o?uo:t?Xt:vt;return!t&&Xe(i,"iterate",p?ao:Qt),Ge(Object.create(h),{next(){let{value:g,done:f}=h.next();return f?{value:g,done:f}:{value:u?[v(g[0]),v(g[1])]:v(g),done:f}}})}}function fn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function dd(e,t){let o={get(n){let i=this.__v_raw,a=Oe(i),u=Oe(n);e||(ht(n,u)&&Xe(a,"get",n),Xe(a,"get",u));let{has:p}=pn(a),h=t?uo:e?Xt:vt;if(p.call(a,n))return h(i.get(n));if(p.call(a,u))return h(i.get(u));i!==a&&i.get(n)},get size(){let n=this.__v_raw;return!e&&Xe(Oe(n),"iterate",Qt),n.size},has(n){let i=this.__v_raw,a=Oe(i),u=Oe(n);return e||(ht(n,u)&&Xe(a,"has",n),Xe(a,"has",u)),n===u?i.has(n):i.has(n)||i.has(u)},forEach(n,i){let a=this,u=a.__v_raw,p=Oe(u),h=t?uo:e?Xt:vt;return!e&&Xe(p,"iterate",Qt),u.forEach((v,g)=>n.call(i,h(v),h(g),a))}};return Ge(o,e?{add:fn("add"),set:fn("set"),delete:fn("delete"),clear:fn("clear")}:{add(n){let i=Oe(this),a=pn(i),u=Oe(n),p=!t&&!it(n)&&!kt(n)?u:n;return a.has.call(i,p)||ht(n,p)&&a.has.call(i,n)||ht(u,p)&&a.has.call(i,u)||(i.add(p),Nt(i,"add",p,p)),this},set(n,i){!t&&!it(i)&&!kt(i)&&(i=Oe(i));let a=Oe(this),{has:u,get:p}=pn(a),h=u.call(a,n);h||(n=Oe(n),h=u.call(a,n));let v=p.call(a,n);return a.set(n,i),h?ht(i,v)&&Nt(a,"set",n,i,v):Nt(a,"add",n,i),this},delete(n){let i=Oe(this),{has:a,get:u}=pn(i),p=a.call(i,n);p||(n=Oe(n),p=a.call(i,n));let h=u?u.call(i,n):void 0,v=i.delete(n);return p&&Nt(i,"delete",n,void 0,h),v},clear(){let n=Oe(this),i=n.size!==0,a=void 0,u=n.clear();return i&&Nt(n,"clear",void 0,void 0,a),u}}),["keys","values","entries",Symbol.iterator].forEach(n=>{o[n]=ld(n,e,t)}),o}function vo(e,t){let o=dd(e,t);return(r,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?r:Reflect.get(Te(o,n)&&n in r?o:r,n,i)}var ud={get:vo(!1,!1)},cd={get:vo(!1,!0)},pd={get:vo(!0,!1)};var kr=new WeakMap,_r=new WeakMap,Er=new WeakMap,fd=new WeakMap;function md(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ze(e){return kt(e)?e:yo(e,!1,rd,ud,kr)}function Us(e){return yo(e,!1,ad,cd,_r)}function yn(e){return yo(e,!0,id,pd,Er)}function yo(e,t,o,r,n){if(!Ae(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let i=n.get(e);if(i)return i;let a=md(Zn(e));if(a===0)return e;let u=new Proxy(e,a===2?r:o);return n.set(e,u),u}function $t(e){return kt(e)?$t(e.__v_raw):!!(e&&e.__v_isReactive)}function kt(e){return!!(e&&e.__v_isReadonly)}function it(e){return!!(e&&e.__v_isShallow)}function zs(e){return e?!!e.__v_raw:!1}function Oe(e){let t=e&&e.__v_raw;return t?Oe(t):e}function go(e){return!Te(e,"__v_skip")&&Object.isExtensible(e)&&un(e,"__v_skip",!0),e}var vt=e=>Ae(e)?ze(e):e,Xt=e=>Ae(e)?yn(e):e;function Qe(e){return e?e.__v_isRef===!0:!1}function xe(e){return Cr(e,!1)}function bn(e){return Cr(e,!0)}function Cr(e,t){return Qe(e)?e:new co(e,t)}var co=class{constructor(t,o){this.dep=new Ms,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Oe(t),this._value=o?t:vt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){let o=this._rawValue,r=this.__v_isShallow||it(t)||kt(t);t=r?t:Oe(t),ht(t,o)&&(this._rawValue=t,this._value=r?t:vt(t),this.dep.trigger())}};function Lt(e){return Qe(e)?e.value:e}var hd={get:(e,t,o)=>t==="__v_raw"?e:Lt(Reflect.get(e,t,o)),set:(e,t,o,r)=>{let n=e[t];return Qe(n)&&!Qe(o)?(n.value=o,!0):Reflect.set(e,t,o,r)}};function wn(e){return $t(e)?e:new Proxy(e,hd)}var po=class{constructor(t,o,r){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Ms(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=qs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Fe!==this)return mr(this,!0),!0}get value(){let t=this.dep.track();return yr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Nr(e,t,o=!1){let r,n;return _e(e)?r=e:(r=e.get,n=e.set),new po(r,n,o)}var mn={},gn=new WeakMap,Jt;function Sr(e,t=!1,o=Jt){if(o){let r=gn.get(o);r||gn.set(o,r=[]),r.push(e)}}function Dr(e,t,o=Me){let{immediate:r,deep:n,once:i,scheduler:a,augmentJob:u,call:p}=o,h=A=>{(o.onWarn||Zl)("Invalid watch source: ",A,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},v=A=>n?A:it(A)||n===!1||n===0?St(A,1):St(A),g,f,w,k,b=!1,T=!1;if(Qe(e)?(f=()=>e.value,b=it(e)):$t(e)?(f=()=>v(e),b=!0):Ee(e)?(T=!0,b=e.some(A=>$t(A)||it(A)),f=()=>e.map(A=>{if(Qe(A))return A.value;if($t(A))return v(A);if(_e(A))return p?p(A,2):A()})):_e(e)?t?f=p?()=>p(e,2):e:f=()=>{if(w){Dt();try{w()}finally{Rt()}}let A=Jt;Jt=g;try{return p?p(e,3,[k]):e(k)}finally{Jt=A}}:f=rt,t&&n){let A=f,q=n===!0?1/0:n;f=()=>St(A(),q)}let N=pr(),D=()=>{g.stop(),N&&N.active&&Ss(N.effects,g)};if(i&&t){let A=t;t=(...q)=>{let Z=A(...q);return D(),Z}}let I=T?new Array(e.length).fill(mn):mn,C=A=>{if(!(!(g.flags&1)||!g.dirty&&!A))if(t){let q=g.run();if(A||n||b||(T?q.some((Z,X)=>ht(Z,I[X])):ht(q,I))){w&&w();let Z=Jt;Jt=g;try{let X=[q,I===mn?void 0:T&&I[0]===mn?[]:I,k];I=q,p?p(t,3,X):t(...X)}finally{Jt=Z}}}else g.run()};return u&&u(C),g=new hs(f),g.scheduler=a?()=>a(C,!1):C,k=A=>Sr(A,!1,g),w=g.onStop=()=>{let A=gn.get(g);if(A){if(p)p(A,4);else for(let q of A)q();gn.delete(g)}},t?r?C(!0):I=g.run():a?a(C.bind(null,!0),!0):g.run(),D.pause=g.pause.bind(g),D.resume=g.resume.bind(g),D.stop=D,D}function St(e,t=1/0,o){if(t<=0||!Ae(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,Qe(e))St(e.value,t,o);else if(Ee(e))for(let r=0;r{St(r,t,o)});else if(an(e)){for(let r in e)St(e[r],t,o);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&St(e[r],t,o)}return e}function Xs(e,t,o,r){try{return r?e(...r):e()}catch(n){xs(n,t,o)}}function yt(e,t,o,r){if(_e(e)){let n=Xs(e,t,o,r);return n&&xn(n)&&n.catch(i=>{xs(i,t,o)}),n}if(Ee(e)){let n=[];for(let i=0;i>>1,n=nt[r],i=Ys(n);i=Ys(o)?nt.push(e):nt.splice(wd(t),0,e),e.flags|=1,jr()}}function jr(){En||(En=Gr.then(Yr))}function Wr(e){if(!Ee(e))jt&&e.id===-1?jt.splice(vs+1,0,e):e.flags&1||(ys.push(e),e.flags|=1);else for(let t=0;tYs(o)-Ys(r));if(ys.length=0,jt){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Yr(e){let t=rt;try{for(Ot=0;Ot{r._d&&Dn(-1);let i=Cn(t),a=es.length,u;try{u=e(...n)}finally{for(let p=es.length;p>a;p--)Ci();Cn(i),r._d&&Dn(1)}return u};return r._n=!0,r._c=!0,r._d=!0,r}function E(e,t){if(pt===null)return e;let o=$n(pt),r=e.dirs||(e.dirs=[]);for(let n=0;n1)return o&&_e(t)?t.call(r&&r.proxy):t}}var _d=Symbol.for("v-scx"),Ed=()=>{{let e=lt(_d);return e}};function He(e,t,o){return Qr(e,t,o)}function Qr(e,t,o=Me){let{immediate:r,deep:n,flush:i,once:a}=o,u=Ge({},o),p=t&&r||!t&&i!=="post",h;if(ws){if(i==="sync"){let w=Ed();h=w.__watcherHandles||(w.__watcherHandles=[])}else if(!p){let w=()=>{};return w.stop=rt,w.resume=rt,w.pause=rt,w}}let v=Ze;u.call=(w,k,b)=>yt(w,v,k,b);let g=!1;i==="post"?u.scheduler=w=>{at(w,v&&v.suspense)}:i!=="sync"&&(g=!0,u.scheduler=(w,k)=>{k?w():Do(w)}),u.augmentJob=w=>{t&&(w.flags|=4),g&&(w.flags|=2,v&&(w.id=v.uid,w.i=v))};let f=Dr(e,t,u);return ws&&(h?h.push(f):p&&f()),f}function Cd(e,t,o){let r=this.proxy,n=Ue(e)?e.includes(".")?Xr(r,e):()=>r[e]:e.bind(r,r),i;_e(t)?i=t:(i=t.handler,o=t);let a=tn(this),u=Qr(n,i.bind(r),o);return a(),u}function Xr(e,t){let o=t.split(".");return()=>{let r=e;for(let n=0;ne.__isTeleport;var bo=Symbol("_leaveCb");function Sd(e){let t=e[0];if(e.length>1){let o=!1;for(let r of e)if(r.type!==Ut){t=r,o=!0;break}}return t}function xr(e){if(!Vn(e))return An(e.type)&&e.children?Sd(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&_e(o.default))return o.default()}}function In(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let o=e.component.subTree;In(An(o.type)&&xr(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Zs(e,t){return _e(e)?Ge({name:e.name},t,{setup:e}):e}function Ro(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Tr(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}var Nn=new WeakMap;function Gs(e,t,o,r,n=!1){if(Ee(e)){e.forEach((b,T)=>Gs(b,t&&(Ee(t)?t[T]:t),o,r,n));return}if(js(r)&&!n){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Gs(e,t,o,r.component.subTree);return}let i=r.shapeFlag&4?$n(r.component):r.el,a=n?null:i,{i:u,r:p}=e,h=t&&t.r,v=u.refs===Me?u.refs={}:u.refs,g=u.setupState,f=Oe(g),w=g===Me?Xn:b=>Tr(v,b)?!1:Te(f,b),k=(b,T)=>!(T&&Tr(v,T));if(h!=null&&h!==p){if(Or(t),Ue(h))v[h]=null,w(h)&&(g[h]=null);else if(Qe(h)){let b=t;k(h,b.k)&&(h.value=null),b.k&&(v[b.k]=null)}}if(_e(p))Xs(p,u,12,[a,v]);else{let b=Ue(p),T=Qe(p);if(b||T){let N=()=>{if(e.f){let D=b?w(p)?g[p]:v[p]:k(p)||!e.k?p.value:v[e.k];if(n)Ee(D)&&Ss(D,i);else if(Ee(D))D.includes(i)||D.push(i);else if(b)v[p]=[i],w(p)&&(g[p]=v[p]);else{let I=[i];k(p,e.k)&&(p.value=I),e.k&&(v[e.k]=I)}}else b?(v[p]=a,w(p)&&(g[p]=a)):T&&(k(p,e.k)&&(p.value=a),e.k&&(v[e.k]=a))};if(a){let D=()=>{N(),Nn.delete(e)};D.id=-1,Nn.set(e,D),at(D,o)}else Or(e),N()}}}function Or(e){let t=Nn.get(e);t&&(t.flags|=8,Nn.delete(e))}var Ar=e=>e.nodeType===8;var p4=Os().requestIdleCallback||(e=>setTimeout(e,1)),f4=Os().cancelIdleCallback||(e=>clearTimeout(e));function Dd(e,t){if(Ar(e)&&e.data==="["){let o=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Ar(r))if(r.data==="]"){if(--o===0)break}else r.data==="["&&o++;r=r.nextSibling}}else t(e)}var js=e=>!!e.type.__asyncLoader;function Zr(e){_e(e)&&(e={loader:e});let{loader:t,loadingComponent:o,errorComponent:r,delay:n=200,hydrate:i,timeout:a,suspensible:u=!0,onError:p}=e,h=null,v,g=0,f=()=>(g++,h=null,w()),w=()=>{let k;return h||(k=h=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),p)return new Promise((T,N)=>{p(b,()=>T(f()),()=>N(b),g+1)});throw b}).then(b=>k!==h&&h?h:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),v=b,b)))};return Zs({name:"AsyncComponentWrapper",__asyncLoader:w,__asyncHydrate(k,b,T){let N=k.isConnected,D=!1;(b.bu||(b.bu=[])).push(()=>D=!0);let I=()=>{D||!k.parentNode||N&&!k.isConnected||T()},C=i?()=>{let A=i(I,q=>Dd(k,q));A&&(b.bum||(b.bum=[])).push(A)}:I;v?C():w().then(()=>!b.isUnmounted&&C())},get __asyncResolved(){return v},setup(){let k=Ze;if(Ro(k),v)return()=>kn(v,k);let b=A=>{h=null,xs(A,k,13,!r)};if(u&&k.suspense||ws)return w().then(A=>()=>kn(A,k)).catch(A=>(b(A),()=>r?De(r,{error:A}):null));let T=xe(!1),N=xe(),D=xe(!!n),I,C;return en(()=>{I!=null&&clearTimeout(I),C!=null&&clearTimeout(C)}),n&&(C=setTimeout(()=>{k.isUnmounted||(D.value=!1)},n)),a!=null&&(I=setTimeout(()=>{if(!k.isUnmounted&&!T.value&&!N.value){let A=new Error(`Async component timed out after ${a}ms.`);b(A),N.value=A}},a)),w().then(()=>{k.isUnmounted||(T.value=!0,k.parent&&Vn(k.parent.vnode)&&k.parent.update())}).catch(A=>{if(k.isUnmounted){h=null;return}b(A),N.value=A}),()=>{if(T.value&&v)return kn(v,k);if(N.value&&r)return De(r,{error:N.value});if(o&&!D.value)return kn(o,k)}}})}function kn(e,t){let{ref:o,props:r,children:n,ce:i}=t.vnode,a=De(e,r,n);return a.ref=o,a.ce=i,delete t.vnode.ce,a}var Vn=e=>e.type.__isKeepAlive;function ei(e,t){si(e,"a",t)}function ti(e,t){si(e,"da",t)}function si(e,t,o=Ze){let r=e.__wdc||(e.__wdc=()=>{let n=o;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(Pn(t,r,o),o){let n=o.parent;for(;n&&n.parent;)Vn(n.parent.vnode)&&Rd(r,t,o,n),n=n.parent}}function Rd(e,t,o,r){let n=Pn(t,e,r,!0);en(()=>{Ss(r[t],n)},o)}function Pn(e,t,o=Ze,r=!1){if(o){let n=o[e]||(o[e]=[]),i=t.__weh||(t.__weh=(...a)=>{Dt();let u=tn(o),p=yt(t,o,e,a);return u(),Rt(),p});return r?n.unshift(i):n.push(i),i}}var zt=e=>(t,o=Ze)=>{(!ws||e==="sp")&&Pn(e,(...r)=>t(...r),o)},Td=zt("bm"),It=zt("m"),ni=zt("bu"),oi=zt("u"),ss=zt("bum"),en=zt("um"),Od=zt("sp"),Ad=zt("rtg"),Id=zt("rtc");function Vd(e,t=Ze){Pn("ec",e,t)}var ri="components",Pd="directives";function et(e,t){return ii(ri,e,!0,t)||e}var qd=Symbol.for("v-ndc");function we(e){return ii(Pd,e)}function ii(e,t,o=!0,r=!1){let n=pt||Ze;if(n){let i=n.type;if(e===ri){let u=gu(i,!1);if(u&&(u===t||u===Ke(t)||u===Yt(Ke(t))))return i}let a=Ir(n[e]||i[e],t)||Ir(n.appContext[e],t);return!a&&r?i:a}}function Ir(e,t){return e&&(e[t]||e[Ke(t)]||e[Yt(Ke(t))])}function oe(e,t,o,r){let n,i=o&&o[r],a=Ee(e);if(a||Ue(e)){let u=a&&$t(e),p=!1,h=!1;u&&(p=!it(e),h=kt(e),e=Fs(e)),n=new Array(e.length);for(let v=0,g=e.length;vt(u,p,void 0,i&&i[p]));else{let u=Object.keys(e);n=new Array(u.length);for(let p=0,h=u.length;pe?Di(e)?$n(e):Eo(e.parent):null;var Ws=Ge(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Eo(e.parent),$root:e=>Eo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>To(e),$forceUpdate:e=>e.f||(e.f=()=>{Do(e.update)}),$nextTick:e=>e.n||(e.n=_t.bind(e.proxy)),$watch:e=>Cd.bind(e)});var wo=(e,t)=>e!==Me&&!e.__isScriptSetup&&Te(e,t),Md={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:o,setupState:r,data:n,props:i,accessCache:a,type:u,appContext:p}=e;if(t[0]!=="$"){let f=a[t];if(f!==void 0)switch(f){case 1:return r[t];case 2:return n[t];case 4:return o[t];case 3:return i[t]}else{if(wo(r,t))return a[t]=1,r[t];if(n!==Me&&Te(n,t))return a[t]=2,n[t];if(Te(i,t))return a[t]=3,i[t];if(o!==Me&&Te(o,t))return a[t]=4,o[t];Co&&(a[t]=0)}}let h=Ws[t],v,g;if(h)return t==="$attrs"&&Xe(e.attrs,"get",""),h(e);if((v=u.__cssModules)&&(v=v[t]))return v;if(o!==Me&&Te(o,t))return a[t]=4,o[t];if(g=p.config.globalProperties,Te(g,t))return g[t]},set({_:e},t,o){let{data:r,setupState:n,ctx:i}=e;return wo(n,t)?(n[t]=o,!0):r!==Me&&Te(r,t)?(r[t]=o,!0):Te(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:r,appContext:n,props:i,type:a}},u){let p;return!!(o[u]||e!==Me&&u[0]!=="$"&&Te(e,u)||wo(t,u)||Te(i,u)||Te(r,u)||Te(Ws,u)||Te(n.config.globalProperties,u)||(p=a.__cssModules)&&p[u])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Te(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Vr(e){return Ee(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}var Co=!0;function $d(e){let t=To(e),o=e.proxy,r=e.ctx;Co=!1,t.beforeCreate&&Pr(t.beforeCreate,e,"bc");let{data:n,computed:i,methods:a,watch:u,provide:p,inject:h,created:v,beforeMount:g,mounted:f,beforeUpdate:w,updated:k,activated:b,deactivated:T,beforeDestroy:N,beforeUnmount:D,destroyed:I,unmounted:C,render:A,renderTracked:q,renderTriggered:Z,errorCaptured:X,serverPrefetch:K,expose:U,inheritAttrs:ue,components:te,directives:re,filters:pe}=t;if(h&&Ld(h,r,null),a)for(let he in a){let le=a[he];_e(le)&&(r[he]=le.bind(o))}if(n){let he=n.call(o,o);Ae(he)&&(e.data=ze(he))}if(Co=!0,i)for(let he in i){let le=i[he],Ie=_e(le)?le.bind(o,o):_e(le.get)?le.get.bind(o,o):rt,Se=!_e(le)&&_e(le.set)?le.set.bind(o):rt,R=tt({get:Ie,set:Se});Object.defineProperty(r,he,{enumerable:!0,configurable:!0,get:()=>R.value,set:V=>R.value=V})}if(u)for(let he in u)ai(u[he],r,o,he);if(p){let he=_e(p)?p.call(o):p;Reflect.ownKeys(he).forEach(le=>{ts(le,he[le])})}v&&Pr(v,e,"c");function be(he,le){Ee(le)?le.forEach(Ie=>he(Ie.bind(o))):le&&he(le.bind(o))}if(be(Td,g),be(It,f),be(ni,w),be(oi,k),be(ei,b),be(ti,T),be(Vd,X),be(Id,q),be(Ad,Z),be(ss,D),be(en,C),be(Od,K),Ee(U))if(U.length){let he=e.exposed||(e.exposed={});U.forEach(le=>{Object.defineProperty(he,le,{get:()=>o[le],set:Ie=>o[le]=Ie,enumerable:!0})})}else e.exposed||(e.exposed={});A&&e.render===rt&&(e.render=A),ue!=null&&(e.inheritAttrs=ue),te&&(e.components=te),re&&(e.directives=re),K&&Ro(e)}function Ld(e,t,o=rt){Ee(e)&&(e=No(e));for(let r in e){let n=e[r],i;Ae(n)?"default"in n?i=lt(n.from||r,n.default,!0):i=lt(n.from||r):i=lt(n),Qe(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):t[r]=i}}function Pr(e,t,o){yt(Ee(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,o)}function ai(e,t,o,r){let n=r.includes(".")?Xr(o,r):()=>o[r];if(Ue(e)){let i=t[e];_e(i)&&He(n,i)}else if(_e(e))He(n,e.bind(o));else if(Ae(e))if(Ee(e))e.forEach(i=>ai(i,t,o,r));else{let i=_e(e.handler)?e.handler.bind(o):t[e.handler];_e(i)&&He(n,i,e)}}function To(e){let t=e.type,{mixins:o,extends:r}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:a}}=e.appContext,u=i.get(t),p;return u?p=u:!n.length&&!o&&!r?p=t:(p={},n.length&&n.forEach(h=>Sn(p,h,a,!0)),Sn(p,t,a)),Ae(t)&&i.set(t,p),p}function Sn(e,t,o,r=!1){let{mixins:n,extends:i}=t;i&&Sn(e,i,o,!0),n&&n.forEach(a=>Sn(e,a,o,!0));for(let a in t)if(!(r&&a==="expose")){let u=Fd[a]||o&&o[a];e[a]=u?u(e[a],t[a]):t[a]}return e}var Fd={data:qr,props:Mr,emits:Mr,methods:Bs,computed:Bs,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:Bs,directives:Bs,watch:zd,provide:qr,inject:Ud};function qr(e,t){return t?e?function(){return Ge(_e(e)?e.call(this,this):e,_e(t)?t.call(this,this):t)}:t:e}function Ud(e,t){return Bs(No(e),No(t))}function No(e){if(Ee(e)){let t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ke(t)}Modifiers`]||e[`${qt(t)}Modifiers`];function jd(e,t,...o){if(e.isUnmounted)return;let r=e.vnode.props||Me,n=o,i=t.startsWith("update:"),a=i&&Gd(r,t.slice(7));a&&(a.trim&&(n=o.map(v=>Ue(v)?v.trim():v)),a.number&&(n=n.map(eo)));let u,p=r[u=Rs(t)]||r[u=Rs(Ke(t))];!p&&i&&(p=r[u=Rs(qt(t))]),p&&yt(p,e,6,n);let h=r[u+"Once"];if(h){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,yt(h,e,6,n)}}var Wd=new WeakMap;function di(e,t,o=!1){let r=o?Wd:t.emitsCache,n=r.get(e);if(n!==void 0)return n;let i=e.emits,a={},u=!1;if(!_e(e)){let p=h=>{let v=di(h,t,!0);v&&(u=!0,Ge(a,v))};!o&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}return!i&&!u?(Ae(e)&&r.set(e,null),null):(Ee(i)?i.forEach(p=>a[p]=null):Ge(a,i),Ae(e)&&r.set(e,a),a)}function qn(e,t){return!e||!us(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Te(e,t[0].toLowerCase()+t.slice(1))||Te(e,qt(t))||Te(e,t))}function ko(e){let{type:t,vnode:o,proxy:r,withProxy:n,propsOptions:[i],slots:a,attrs:u,emit:p,render:h,renderCache:v,props:g,data:f,setupState:w,ctx:k,inheritAttrs:b}=e,T=Cn(e),N,D;try{if(o.shapeFlag&4){let A=n||r,q=A;N=At(h.call(q,A,v,g,w,f,k)),D=u}else{let A=t;N=At(A.length>1?A(g,{attrs:u,slots:a,emit:p}):A(g,null)),D=t.props?u:Kd(u)}}catch(A){es.length=0,xs(A,e,1),N=De(Ut)}let I=N,C;if(D&&b!==!1){let A=Object.keys(D),{shapeFlag:q}=I;A.length&&q&7&&(i&&A.some(cs)&&(D=Yd(D,i)),I=bs(I,D,!1,!0))}if(o.dirs&&(I=bs(I,null,!1,!0),I.dirs=I.dirs?I.dirs.concat(o.dirs):o.dirs),o.transition){let A=An(I.type)&&xr(I)||I;In(A,o.transition)}return N=I,Cn(T),N}var Kd=e=>{let t;for(let o in e)(o==="class"||o==="style"||us(o))&&((t||(t={}))[o]=e[o]);return t},Yd=(e,t)=>{let o={};for(let r in e)(!cs(r)||!(r.slice(9)in t))&&(o[r]=e[r]);return o};function Jd(e,t,o){let{props:r,children:n,component:i}=e,{props:a,children:u,patchFlag:p}=t,h=i.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&p>=0){if(p&1024)return!0;if(p&16)return r?$r(r,a,h):!!a;if(p&8){let v=t.dynamicProps;for(let g=0;gObject.create(ci),fi=e=>Object.getPrototypeOf(e)===ci;function Xd(e,t,o,r=!1){let n={},i=pi();e.propsDefaults=Object.create(null),mi(e,t,n,i);for(let a in e.propsOptions[0])a in n||(n[a]=void 0);o?e.props=r?n:Us(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function xd(e,t,o,r){let{props:n,attrs:i,vnode:{patchFlag:a}}=e,u=Oe(n),[p]=e.propsOptions,h=!1;if((r||a>0)&&!(a&16)){if(a&8){let v=e.vnode.dynamicProps;for(let g=0;g{p=!0;let[f,w]=hi(g,t,!0);Ge(a,f),w&&u.push(...w)};!o&&t.mixins.length&&t.mixins.forEach(v),e.extends&&v(e.extends),e.mixins&&e.mixins.forEach(v)}if(!i&&!p)return Ae(e)&&r.set(e,Kt),Kt;if(Ee(i))for(let v=0;ve==="_"||e==="_ctx"||e==="$stable",Ao=e=>Ee(e)?e.map(At):[At(e)],eu=(e,t,o)=>{if(t._n)return t;let r=kd((...n)=>Ao(t(...n)),o);return r._c=!1,r},vi=(e,t,o)=>{let r=e._ctx;for(let n in e){if(Oo(n))continue;let i=e[n];if(_e(i))t[n]=eu(n,i,r);else if(i!=null){let a=Ao(i);t[n]=()=>a}}},yi=(e,t)=>{let o=Ao(t);e.slots.default=()=>o},gi=(e,t,o)=>{for(let r in t)(o||!Oo(r))&&(e[r]=t[r])},tu=(e,t,o)=>{let r=e.slots=pi();if(e.vnode.shapeFlag&32){let n=t._;n?(gi(r,t,o),o&&un(r,"_",n,!0)):vi(t,r)}else t&&yi(e,t)},su=(e,t,o)=>{let{vnode:r,slots:n}=e,i=!0,a=Me;if(r.shapeFlag&32){let u=t._;u?o&&u===1?i=!1:gi(n,t,o):(i=!t.$stable,vi(t,n)),a=t}else t&&(yi(e,t),a={default:1});if(i)for(let u in n)!Oo(u)&&a[u]==null&&delete n[u]};function nu(){let e=[]}var at=au;function bi(e){return ou(e)}function ou(e,t){nu();let o=Os();o.__VUE__=!0;let{insert:r,remove:n,patchProp:i,createElement:a,createText:u,createComment:p,setText:h,setElementText:v,parentNode:g,nextSibling:f,setScopeId:w=rt,insertStaticContent:k}=e,b=(_,S,P,z=null,j=null,M=null,J=void 0,x=null,Q=!!S.dynamicChildren)=>{if(_===S)return;_&&!Hs(_,S)&&(z=ne(_),H(_,j,M,!0),_=null),S.patchFlag===-2&&(Q=!1,S.dynamicChildren=null);let{type:B,ref:de,shapeFlag:ee}=S;switch(B){case Mn:T(_,S,P,z);break;case Ut:N(_,S,P,z);break;case Ks:_==null&&D(S,P,z,J);break;case Y:re(_,S,P,z,j,M,J,x,Q);break;default:ee&1?q(_,S,P,z,j,M,J,x,Q):ee&6?pe(_,S,P,z,j,M,J,x,Q):(ee&64||ee&128)&&B.process(_,S,P,z,j,M,J,x,Q,fe)}de!=null&&j?Gs(de,_&&_.ref,M,S||_,!S):de==null&&_&&_.ref!=null&&Gs(_.ref,null,M,_,!0)},T=(_,S,P,z)=>{if(_==null)r(S.el=u(S.children),P,z);else{let j=S.el=_.el;S.children!==_.children&&h(j,S.children)}},N=(_,S,P,z)=>{_==null?r(S.el=p(S.children||""),P,z):S.el=_.el},D=(_,S,P,z)=>{[_.el,_.anchor]=k(_.children,S,P,z,_.el,_.anchor)},I=(_,S,P,z)=>{if(S.children!==_.children){let j=f(_.anchor);A(_),[S.el,S.anchor]=k(S.children,P,j,z)}else S.el=_.el,S.anchor=_.anchor},C=({el:_,anchor:S},P,z)=>{let j;for(;_&&_!==S;)j=f(_),r(_,P,z),_=j;r(S,P,z)},A=({el:_,anchor:S})=>{let P;for(;_&&_!==S;)P=f(_),n(_),_=P;n(S)},q=(_,S,P,z,j,M,J,x,Q)=>{if(S.type==="svg"?J="svg":S.type==="math"&&(J="mathml"),_==null)Z(S,P,z,j,M,J,x,Q);else{let B=_.el&&_.el._isVueCE?_.el:null;try{B&&B._beginPatch(),U(_,S,j,M,J,x,Q)}finally{B&&B._endPatch()}}},Z=(_,S,P,z,j,M,J,x)=>{let Q,B,{props:de,shapeFlag:ee,transition:ae,dirs:ve}=_;if(Q=_.el=a(_.type,M,de&&de.is,de),ee&8?v(Q,_.children):ee&16&&K(_.children,Q,null,z,j,_o(_,M),J,x),ve&&xt(_,null,z,"created"),X(Q,_,_.scopeId,J,z),de){for(let Le in de)Le!=="value"&&!ps(Le)&&i(Q,Le,null,de[Le],M,z);"value"in de&&i(Q,"value",null,de.value,M),(B=de.onVnodeBeforeMount)&&Tt(B,z,_)}ve&&xt(_,null,z,"beforeMount");let Re=ru(j,ae);Re&&ae.beforeEnter(Q),r(Q,S,P),((B=de&&de.onVnodeMounted)||Re||ve)&&at(()=>{let $e;try{B&&Tt(B,z,_),Re&&ae.enter(Q),ve&&xt(_,null,z,"mounted")}finally{}},j)},X=(_,S,P,z,j)=>{if(P&&w(_,P),z)for(let M=0;M{for(let B=Q;B<_.length;B++){let de=_[B]=x?Ft(_[B]):At(_[B]);b(null,de,S,P,z,j,M,J,x)}},U=(_,S,P,z,j,M,J)=>{let x=S.el=_.el,{patchFlag:Q,dynamicChildren:B,dirs:de}=S;Q|=_.patchFlag&16;let ee=_.props||Me,ae=S.props||Me,ve;if(P&&Zt(P,!1),(ve=ae.onVnodeBeforeUpdate)&&Tt(ve,P,S,_),de&&xt(S,_,P,"beforeUpdate"),P&&Zt(P,!0),B&&(!_.dynamicChildren||_.dynamicChildren.length!==B.length)&&(Q=0,J=!1,B=null),(ee.innerHTML&&ae.innerHTML==null||ee.textContent&&ae.textContent==null)&&v(x,""),B?ue(_.dynamicChildren,B,x,P,z,_o(S,j),M):J||Ie(_,S,x,null,P,z,_o(S,j),M,!1),Q>0){if(Q&16)te(x,ee,ae,P,j);else if(Q&2&&ee.class!==ae.class&&i(x,"class",null,ae.class,j),Q&4&&i(x,"style",ee.style,ae.style,j),Q&8){let Re=S.dynamicProps;for(let Le=0;Le{ve&&Tt(ve,P,S,_),de&&xt(S,_,P,"updated")},z)},ue=(_,S,P,z,j,M,J)=>{for(let x=0;x{if(S!==P){if(S!==Me)for(let M in S)!ps(M)&&!(M in P)&&i(_,M,S[M],null,j,z);for(let M in P){if(ps(M))continue;let J=P[M],x=S[M];J!==x&&M!=="value"&&i(_,M,x,J,j,z)}"value"in P&&i(_,"value",S.value,P.value,j)}},re=(_,S,P,z,j,M,J,x,Q)=>{let B=S.el=_?_.el:u(""),de=S.anchor=_?_.anchor:u(""),{patchFlag:ee,dynamicChildren:ae,slotScopeIds:ve}=S;ve&&(x=x?x.concat(ve):ve),_==null?(r(B,P,z),r(de,P,z),K(S.children||[],P,de,j,M,J,x,Q)):ee>0&&ee&64&&ae&&_.dynamicChildren&&_.dynamicChildren.length===ae.length?(ue(_.dynamicChildren,ae,P,j,M,J,x),(S.key!=null||j&&S===j.subTree)&&wi(_,S,!0)):Ie(_,S,P,de,j,M,J,x,Q)},pe=(_,S,P,z,j,M,J,x,Q)=>{S.slotScopeIds=x,_==null?S.shapeFlag&512?j.ctx.activate(S,P,z,J,Q):me(S,P,z,j,M,J,Q):be(_,S,Q)},me=(_,S,P,z,j,M,J)=>{let x=_.component=fu(_,z,j);if(Vn(_)&&(x.ctx.renderer=fe),mu(x,!1,J),x.asyncDep){if(j&&j.registerDep(x,he,J),!_.el){let Q=x.subTree=De(Ut);N(null,Q,S,P),_.placeholder=Q.el}}else he(x,_,S,P,j,M,J)},be=(_,S,P)=>{let z=S.component=_.component;if(Jd(_,S,P))if(z.asyncDep&&!z.asyncResolved){le(z,S,P);return}else z.next=S,z.update();else S.el=_.el,z.vnode=S},he=(_,S,P,z,j,M,J)=>{let x=()=>{if(_.isMounted){let{next:ee,bu:ae,u:ve,parent:Re,vnode:Le}=_;{let dt=ki(_);if(dt){ee&&(ee.el=Le.el,le(_,ee,J)),dt.asyncDep.then(()=>{at(()=>{_.isUnmounted||B()},j)});return}}let $e=ee,je;Zt(_,!1),ee?(ee.el=Le.el,le(_,ee,J)):ee=Le,ae&&Ts(ae),(je=ee.props&&ee.props.onVnodeBeforeUpdate)&&Tt(je,Re,ee,Le),Zt(_,!0);let We=ko(_),bt=_.subTree;_.subTree=We,b(bt,We,g(bt.el),ne(bt),_,j,M),ee.el=We.el,$e===null&&Qd(_,We.el),ve&&at(ve,j),(je=ee.props&&ee.props.onVnodeUpdated)&&at(()=>Tt(je,Re,ee,Le),j)}else{let ee,{el:ae,props:ve}=S,{bm:Re,m:Le,parent:$e,root:je,type:We}=_,bt=js(S);if(Zt(_,!1),Re&&Ts(Re),!bt&&(ee=ve&&ve.onVnodeBeforeMount)&&Tt(ee,$e,S),Zt(_,!0),ae&&ce){let dt=()=>{_.subTree=ko(_),ce(ae,_.subTree,_,j,null)};bt&&We.__asyncHydrate?We.__asyncHydrate(ae,_,dt):dt()}else{je.ce&&je.ce._hasShadowRoot()&&je.ce._injectChildStyle(We,_.parent?_.parent.type:void 0);let dt=_.subTree=ko(_);b(null,dt,P,z,_,j,M),S.el=dt.el}if(Le&&at(Le,j),!bt&&(ee=ve&&ve.onVnodeMounted)){let dt=S;at(()=>Tt(ee,$e,dt),j)}(S.shapeFlag&256||$e&&js($e.vnode)&&$e.vnode.shapeFlag&256)&&_.a&&at(_.a,j),_.isMounted=!0,S=P=z=null}};_.scope.on();let Q=_.effect=new hs(x);_.scope.off();let B=_.update=Q.run.bind(Q),de=_.job=Q.runIfDirty.bind(Q);de.i=_,de.id=_.uid,Q.scheduler=()=>Do(de),Zt(_,!0),B()},le=(_,S,P)=>{S.component=_;let z=_.vnode.props;_.vnode=S,_.next=null,xd(_,S.props,z,P),su(_,S.children,P),Dt(),Rr(_),Rt()},Ie=(_,S,P,z,j,M,J,x,Q=!1)=>{let B=_&&_.children,de=_?_.shapeFlag:0,ee=S.children,{patchFlag:ae,shapeFlag:ve}=S;if(ae>0){if(ae&128){R(B,ee,P,z,j,M,J,x,Q);return}else if(ae&256){Se(B,ee,P,z,j,M,J,x,Q);return}}ve&8?(de&16&&L(B,j,M),ee!==B&&v(P,ee)):de&16?ve&16?R(B,ee,P,z,j,M,J,x,Q):L(B,j,M,!0):(de&8&&v(P,""),ve&16&&K(ee,P,z,j,M,J,x,Q))},Se=(_,S,P,z,j,M,J,x,Q)=>{_=_||Kt,S=S||Kt;let B=_.length,de=S.length,ee=Math.min(B,de),ae;for(ae=0;aede?L(_,j,M,!0,!1,ee):K(S,P,z,j,M,J,x,Q,ee)},R=(_,S,P,z,j,M,J,x,Q)=>{let B=0,de=S.length,ee=_.length-1,ae=de-1;for(;B<=ee&&B<=ae;){let ve=_[B],Re=S[B]=Q?Ft(S[B]):At(S[B]);if(Hs(ve,Re))b(ve,Re,P,null,j,M,J,x,Q);else break;B++}for(;B<=ee&&B<=ae;){let ve=_[ee],Re=S[ae]=Q?Ft(S[ae]):At(S[ae]);if(Hs(ve,Re))b(ve,Re,P,null,j,M,J,x,Q);else break;ee--,ae--}if(B>ee){if(B<=ae){let ve=ae+1,Re=veae)for(;B<=ee;)H(_[B],j,M,!0),B++;else{let ve=B,Re=B,Le=new Map;for(B=Re;B<=ae;B++){let ut=S[B]=Q?Ft(S[B]):At(S[B]);ut.key!=null&&Le.set(ut.key,B)}let $e,je=0,We=ae-Re+1,bt=!1,dt=0,Ns=new Array(We);for(B=0;B=We){H(ut,j,M,!0);continue}let Et;if(ut.key!=null)Et=Le.get(ut.key);else for($e=Re;$e<=ae;$e++)if(Ns[$e-Re]===0&&Hs(ut,S[$e])){Et=$e;break}Et===void 0?H(ut,j,M,!0):(Ns[Et-Re]=B+1,Et>=dt?dt=Et:bt=!0,b(ut,S[Et],P,null,j,M,J,x,Q),je++)}let xo=bt?iu(Ns):Kt;for($e=xo.length-1,B=We-1;B>=0;B--){let ut=Re+B,Et=S[ut],Zo=S[ut+1],er=ut+1{let{el:M,type:J,transition:x,children:Q,shapeFlag:B}=_;if(B&6){V(_.component.subTree,S,P,z);return}if(B&128){_.suspense.move(S,P,z);return}if(B&64){J.move(_,S,P,fe);return}if(J===Y){r(M,S,P);for(let ee=0;eex.enter(M),j));else{let{leave:ee,delayLeave:ae,afterLeave:ve}=x,Re=()=>{_.ctx.isUnmounted?n(M):r(M,S,P)},Le=()=>{let $e=M._isLeaving||!!M[bo];M._isLeaving&&M[bo](!0),x.persisted&&!$e?Re():ee(M,()=>{Re(),ve&&ve()})};ae?ae(M,Re,Le):Le()}else r(M,S,P)},H=(_,S,P,z=!1,j=!1)=>{let{type:M,props:J,ref:x,children:Q,dynamicChildren:B,shapeFlag:de,patchFlag:ee,dirs:ae,cacheIndex:ve,memo:Re}=_;if(ee===-2&&(j=!1),x!=null&&(Dt(),Gs(x,null,P,_,!0),Rt()),ve!=null&&(S.renderCache[ve]=void 0),de&256){S.ctx.deactivate(_);return}let Le=de&1&&ae,$e=!js(_),je;if($e&&(je=J&&J.onVnodeBeforeUnmount)&&Tt(je,S,_),de&6)qe(_.component,P,z);else{if(de&128){_.suspense.unmount(P,z);return}Le&&xt(_,null,S,"beforeUnmount"),de&64?_.type.remove(_,S,P,fe,z):B&&!B.hasOnce&&(M!==Y||ee>0&&ee&64)?L(B,S,P,!1,!0):(M===Y&&ee&384||!j&&de&16)&&L(Q,S,P),z&&se(_)}let We=Re!=null&&ve==null;($e&&(je=J&&J.onVnodeUnmounted)||Le||We)&&at(()=>{je&&Tt(je,S,_),Le&&xt(_,null,S,"unmounted"),We&&(_.el=null)},P)},se=_=>{let{type:S,el:P,anchor:z,transition:j}=_;if(S===Y){ie(P,z);return}if(S===Ks){A(_);return}let M=()=>{n(P),j&&!j.persisted&&j.afterLeave&&j.afterLeave()};if(_.shapeFlag&1&&j&&!j.persisted){let{leave:J,delayLeave:x}=j,Q=()=>J(P,M);x?x(_.el,M,Q):Q()}else M()},ie=(_,S)=>{let P;for(;_!==S;)P=f(_),n(_),_=P;n(S)},qe=(_,S,P)=>{let{bum:z,scope:j,job:M,subTree:J,um:x,m:Q,a:B}=_;Fr(Q),Fr(B),z&&Ts(z),j.stop(),M&&(M.flags|=8,H(J,_,S,P)),x&&at(x,S),at(()=>{_.isUnmounted=!0},S)},L=(_,S,P,z=!1,j=!1,M=0)=>{for(let J=M;J<_.length;J++)H(_[J],S,P,z,j)},ne=_=>{if(_.shapeFlag&6)return ne(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();let S=f(_.anchor||_.el),P=S&&S[Nd];return P?f(P):S},F=!1,W=(_,S,P)=>{let z;_==null?S._vnode&&(H(S._vnode,null,null,!0),z=S._vnode.component):b(S._vnode||null,_,S,null,null,null,P),S._vnode=_,F||(F=!0,Rr(z),Kr(),F=!1)},fe={p:b,um:H,m:V,r:se,mt:me,mc:K,pc:Ie,pbc:ue,n:ne,o:e},Ce,ce;return t&&([Ce,ce]=t(fe)),{render:W,hydrate:Ce,createApp:Bd(W,Ce)}}function _o({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function Zt({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ru(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function wi(e,t,o=!1){let r=e.children,n=t.children;if(Ee(r)&&Ee(n))for(let i=0;i>1,e[o[u]]0&&(t[r]=o[i-1]),o[i]=r)}}for(i=o.length,a=o[i-1];i-- >0;)o[i]=a,a=t[a];return o}function ki(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ki(t)}function Fr(e){if(e)for(let t=0;te.__isSuspense;function au(e,t){t&&t.pendingBranch?Ee(e)?t.effects.push(...e):t.effects.push(e):Wr(e)}var Y=Symbol.for("v-fgt"),Mn=Symbol.for("v-txt"),Ut=Symbol.for("v-cmt"),Ks=Symbol.for("v-stc"),es=[],ft=null;function l(e=!1){es.push(ft=e?null:[])}function Ci(){es.pop(),ft=es[es.length-1]||null}var Js=1;function Dn(e,t=!1){Js+=e,e<0&&ft&&t&&(ft.hasOnce=!0)}function Ni(e){return e.dynamicChildren=Js>0?ft||Kt:null,Ci(),Js>0&&ft&&ft.push(e),e}function d(e,t,o,r,n,i){return Ni(s(e,t,o,r,n,i,!0))}function ks(e,t,o,r,n){return Ni(De(e,t,o,r,n,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function Hs(e,t){return e.type===t.type&&e.key===t.key}var Si=({key:e})=>e??null,_n=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Ue(e)||Qe(e)||_e(e)?{i:pt,r:e,k:t,f:!!o}:e:null);function s(e,t=null,o=null,r=0,n=null,i=e===Y?0:1,a=!1,u=!1){let p={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Si(t),ref:t&&_n(t),scopeId:Jr,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:pt};return u?(Tn(p,o),i&128&&e.normalize(p)):o&&(p.shapeFlag|=Ue(o)?8:16),Js>0&&!a&&ft&&(p.patchFlag>0||i&6)&&p.patchFlag!==32&&ft.push(p),p}var De=lu;function lu(e,t=null,o=null,r=0,n=null,i=!1){if((!e||e===qd)&&(e=Ut),Rn(e)){let u=bs(e,t,!0);return o&&Tn(u,o),Js>0&&!i&&ft&&(u.shapeFlag&6?ft[ft.indexOf(e)]=u:ft.push(u)),u.patchFlag=-2,u}if(bu(e)&&(e=e.__vccOpts),t){t=du(t);let{class:u,style:p}=t;u&&!Ue(u)&&(t.class=O(u)),Ae(p)&&(zs(p)&&!Ee(p)&&(p=Ge({},p)),t.style=Ve(p))}let a=Ue(e)?1:Ei(e)?128:An(e)?64:Ae(e)?4:_e(e)?2:0;return s(e,t,o,r,n,a,i,!0)}function du(e){return e?zs(e)||fi(e)?Ge({},e):e:null}function bs(e,t,o=!1,r=!1){let{props:n,ref:i,patchFlag:a,children:u,transition:p}=e,h=t?uu(n||{},t):n,v={__v_isVNode:!0,__v_skip:!0,type:e.type,props:h,key:h&&Si(h),ref:t&&t.ref?o&&i?Ee(i)?i.concat(_n(t)):[i,_n(t)]:_n(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:u,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Y?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:p,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&bs(e.ssContent),ssFallback:e.ssFallback&&bs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return p&&r&&In(v,p.clone(v)),v}function y(e=" ",t=0){return De(Mn,null,e,t)}function ge(e,t){let o=De(Ks,null,e);return o.staticCount=t,o}function m(e="",t=!1){return t?(l(),ks(Ut,null,e)):De(Ut,null,e)}function At(e){return e==null||typeof e=="boolean"?De(Ut):Ee(e)?De(Y,null,e.slice()):Rn(e)?Ft(e):De(Mn,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:bs(e)}function Tn(e,t){let o=0,{shapeFlag:r}=e;if(t==null)t=null;else if(Ee(t))o=16;else if(typeof t=="object")if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Tn(e,n()),n._c&&(n._d=!0));return}else{o=32;let n=t._;!n&&!fi(t)?t._ctx=pt:n===3&&pt&&(pt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(_e(t)){if(r&65){Tn(e,{default:t});return}t={default:t,_ctx:pt},o=32}else t=String(t),r&64?(o=16,t=[y(t)]):o=8;e.children=t,e.shapeFlag|=o}function uu(...e){let t={};for(let o=0;oZe||pt,On,Qs;{let e=Os(),t=(o,r)=>{let n;return(n=e[o])||(n=e[o]=[]),n.push(r),i=>{n.length>1?n.forEach(a=>a(i)):n[0](i)}};On=t("__VUE_INSTANCE_SETTERS__",o=>Ze=o),Qs=t("__VUE_SSR_SETTERS__",o=>ws=o)}var tn=e=>{let t=Ze;return On(e),e.scope.on(),()=>{e.scope.off(),On(t)}},Ur=()=>{Ze&&Ze.scope.off(),On(null)};function Di(e){return e.vnode.shapeFlag&4}var ws=!1;function mu(e,t=!1,o=!1){t&&Qs(t);let{props:r,children:n}=e.vnode,i=Di(e);Xd(e,r,i,t),tu(e,n,o||t);let a=i?hu(e,t):void 0;return t&&Qs(!1),a}function hu(e,t){let o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Md);let{setup:r}=o;if(r){Dt();let n=e.setupContext=r.length>1?yu(e):null,i=tn(e),a=Xs(r,e,0,[e.props,n]),u=xn(a);if(Rt(),i(),(u||e.sp)&&!js(e)&&Ro(e),u){if(a.then(Ur,Ur),t)return a.then(p=>{Qs(!0);try{zr(e,p,t)}finally{Qs(!1)}}).catch(p=>{xs(p,e,0)});e.asyncDep=a}else zr(e,a,t)}else Ri(e,t)}function zr(e,t,o){_e(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ae(t)&&(e.setupState=wn(t)),Ri(e,o)}var Hr,Br;function Ri(e,t,o){let r=e.type;if(!e.render){if(!t&&Hr&&!r.render){let n=r.template||To(e).template;if(n){let{isCustomElement:i,compilerOptions:a}=e.appContext.config,{delimiters:u,compilerOptions:p}=r,h=Ge(Ge({isCustomElement:i,delimiters:u},a),p);r.render=Hr(n,h)}}e.render=r.render||rt,Br&&Br(e)}{let n=tn(e);Dt();try{$d(e)}finally{Rt(),n()}}}var vu={get(e,t){return Xe(e,"get",""),e[t]}};function yu(e){let t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,vu),slots:e.slots,emit:e.emit,expose:t}}function $n(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(wn(go(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Ws)return Ws[o](e)},has(t,o){return o in t||o in Ws}})):e.proxy}function gu(e,t=!0){return _e(e)?e.displayName||e.name:e.name||t&&e.__name}function bu(e){return _e(e)&&"__vccOpts"in e}var tt=(e,t)=>Nr(e,t,ws);function Ne(e,t,o){try{Dn(-1);let r=arguments.length;return r===2?Ae(t)&&!Ee(t)?Rn(t)?De(e,null,[t]):De(e,t):De(e,null,t):(r>3?o=Array.prototype.slice.call(arguments,2):r===3&&Rn(o)&&(o=[o]),De(e,t,o))}finally{Dn(1)}}var wu="3.5.42";var qo,Ti=typeof window<"u"&&window.trustedTypes;if(Ti)try{qo=Ti.createPolicy("vue",{createHTML:e=>e})}catch{}var Li=qo?e=>qo.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",_u="http://www.w3.org/1998/Math/MathML",Ht=typeof document<"u"?document:null,Oi=Ht&&Ht.createElement("template"),Eu={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,r)=>{let n=t==="svg"?Ht.createElementNS(ku,e):t==="mathml"?Ht.createElementNS(_u,e):o?Ht.createElement(e,{is:o}):Ht.createElement(e);return e==="select"&&r&&r.multiple!=null&&n.setAttribute("multiple",r.multiple),n},createText:e=>Ht.createTextNode(e),createComment:e=>Ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,r,n,i){let a=o?o.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),o),!(n===i||!(n=n.nextSibling)););else{Oi.innerHTML=Li(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);let u=Oi.content;if(r==="svg"||r==="mathml"){let p=u.firstChild;for(;p.firstChild;)u.appendChild(p.firstChild);u.removeChild(p)}t.insertBefore(u,o)}return[a?a.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}};var Cu=Symbol("_vtc");function Nu(e,t,o){let r=e[Cu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}var Fn=Symbol("_vod"),Fi=Symbol("_vsh"),G={name:"show",beforeMount(e,{value:t},{transition:o}){e[Fn]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):sn(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:r}){!t!=!o&&(r?t?(r.beforeEnter(e),sn(e,!0),r.enter(e)):r.leave(e,()=>{sn(e,!1)}):sn(e,t))},beforeUnmount(e,{value:t}){sn(e,t)}};function sn(e,t){e.style.display=t?e[Fn]:"none",e[Fi]=!t}var Su=Symbol("");var Du=/(?:^|;)\s*display\s*:/;function Ru(e,t,o){let r=e.style,n=Ue(o),i=!1;if(o&&!n){if(t)if(Ue(t))for(let a of t.split(";")){let u=a.slice(0,a.indexOf(":")).trim();o[u]==null&&nn(r,u,"")}else for(let a in t)o[a]==null&&nn(r,a,"");for(let a in o){a==="display"&&(i=!0);let u=o[a];u!=null?Ou(e,a,!Ue(t)&&t?t[a]:void 0,u)||nn(r,a,u):nn(r,a,"")}}else if(n){if(t!==o){let a=r[Su];a&&(o+=";"+a),r.cssText=o,i=Du.test(o)}}else t&&e.removeAttribute("style");Fn in e&&(e[Fn]=i?r.display:"",e[Fi]&&(r.display="none"))}var Ln=/\s*!important$/;function nn(e,t,o){if(Ee(o))o.forEach(r=>nn(e,t,r));else if(o==null&&(o=""),t.startsWith("--"))Ln.test(o)?e.setProperty(t,o.replace(Ln,""),"important"):e.setProperty(t,o);else{let r=Tu(e,t);Ln.test(o)?e.setProperty(qt(r),o.replace(Ln,""),"important"):e[r]=o}}var Ai=["Webkit","Moz","ms"],Vo={};function Tu(e,t){let o=Vo[t];if(o)return o;let r=Ke(t);if(r!=="filter"&&r in e)return Vo[t]=r;r=Yt(r);for(let n=0;nPo||($u.then(()=>Po=0),Po=Date.now());function Fu(e,t){let o=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=o.attached)return;let n=o.value;if(Ee(n)){let i=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{i.call(r),r._stopped=!0};let a=n.slice(),u=[r];for(let p=0;pe.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Uu=(e,t,o,r,n,i)=>{let a=n==="svg";t==="class"?Nu(e,r,a):t==="style"?Ru(e,o,r):us(t)?cs(t)||Vu(e,t,o,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):zu(e,t,r,a))?(Pi(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Vi(e,t,r,a,i,t!=="value")):e._isVueCE&&(Hu(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ue(r)))?Pi(e,Ke(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Vi(e,t,r,a))};function zu(e,t,o,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Mi(t)&&_e(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return Mi(t)&&Ue(o)?!1:t in e}function Hu(e,t){let o=e._def.props;if(!o)return!1;let r=Ke(t);return Array.isArray(o)?o.some(n=>Ke(n)===r):Object.keys(o).some(n=>Ke(n)===r)}var Bu=["ctrl","shift","alt","meta"],Gu={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Bu.some(o=>e[`${o}Key`]&&!t.includes(o))},ke=(e,t)=>{if(!e)return e;let o=e._withMods||(e._withMods={}),r=t.join(".");return o[r]||(o[r]=((n,...i)=>{for(let a=0;a{let t=Wu().createApp(...e),{mount:o}=t;return t.mount=r=>{let n=Yu(r);if(!n)return;let i=t._component;!_e(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");let a=o(n,!1,Ku(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),a},t});function Ku(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Yu(e){return Ue(e)?document.querySelector(e):e}var rs=typeof document<"u";function Hi(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Ju(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Hi(e.default)}var Pe=Object.assign;function Un(e,t){let o={};for(let r in t){let n=t[r];o[r]=gt(n)?n.map(e):e(n)}return o}var Es=()=>{},gt=Array.isArray;function Lo(e,t){let o={};for(let r in e)o[r]=r in t?t[r]:e[r];return o}var Bi=/#/g,Qu=/&/g,Xu=/\//g,xu=/=/g,Zu=/\?/g,Gi=/\+/g,ec=/%5B/g,tc=/%5D/g,ji=/%5E/g,sc=/%60/g,Wi=/%7B/g,nc=/%7C/g,Ki=/%7D/g,oc=/%20/g;function Fo(e){return e==null?"":encodeURI(""+e).replace(nc,"|").replace(ec,"[").replace(tc,"]")}function Yi(e){return Fo(e).replace(Wi,"{").replace(Ki,"}").replace(ji,"^")}function Mo(e){return Fo(e).replace(Gi,"%2B").replace(oc,"+").replace(Bi,"%23").replace(Qu,"%26").replace(sc,"`").replace(Wi,"{").replace(Ki,"}").replace(ji,"^")}function rc(e){return Mo(e).replace(xu,"%3D")}function ic(e){return Fo(e).replace(Bi,"%23").replace(Zu,"%3F")}function Ji(e){return ic(e).replace(Xu,"%2F")}function _s(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var ac=/\/$/,lc=e=>e.replace(ac,"");function zn(e,t,o="/"){let r,n={},i="",a="",u=t.indexOf("#"),p=t.indexOf("?");return p=u>=0&&p>u?-1:p,p>=0&&(r=t.slice(0,p),i=t.slice(p,u>0?u:t.length),n=e(i.slice(1))),u>=0&&(r=r||t.slice(0,u),a=t.slice(u,t.length)),r=uc(r??t,o),{fullPath:r+i+a,path:r,query:n,hash:_s(a)}}function Qi(e,t){let o=t.query?e(t.query):"";return t.path+(o&&"?")+o+(t.hash||"")}function Uo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Xi(e,t,o){let r=t.matched.length-1,n=o.matched.length-1;return r>-1&&r===n&&ns(t.matched[r],o.matched[n])&&zo(t.params,o.params)&&e(t.query)===e(o.query)&&t.hash===o.hash}function ns(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function zo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var o in e)if(!dc(e[o],t[o]))return!1;return!0}function dc(e,t){return gt(e)?zi(e,t):gt(t)?zi(t,e):e?.valueOf()===t?.valueOf()}function zi(e,t){return gt(t)?e.length===t.length&&e.every((o,r)=>o===t[r]):e.length===1&&e[0]===t}function uc(e,t){if(e.startsWith("/"))return e;if(!e)return t;let o=t.split("/"),r=e.split("/"),n=r[r.length-1];(n===".."||n===".")&&r.push("");let i=o.length-1,a,u;for(a=0;a1&&i--;else break;return o.slice(0,i).join("/")+"/"+r.slice(a).join("/")}var Gt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Hn=(function(e){return e.pop="pop",e.push="push",e})({}),Bn=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function xi(e){if(!e)if(rs){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),lc(e)}var cc=/^[^#]+#/;function Zi(e,t){return e.replace(cc,"#")+t}function pc(e,t){let o=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-o.left-(t.left||0),top:r.top-o.top-(t.top||0)}}var on=()=>({left:window.scrollX,top:window.scrollY});function ea(e){let t;if("el"in e){let o=e.el,r=typeof o=="string"&&o.startsWith("#"),n=typeof o=="string"?r?document.getElementById(o.slice(1)):document.querySelector(o):o;if(!n)return;t=pc(n,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Ho(e,t){return(history.state?history.state.position-t:-1)+e}var $o=new Map;function ta(e,t){$o.set(e,t)}function sa(e){let t=$o.get(e);return $o.delete(e),t}function fc(e){return typeof e=="string"||e&&typeof e=="object"}function Bo(e){return typeof e=="string"||typeof e=="symbol"}var Be=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),na=Symbol("");var H4={[Be.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for +"use strict";(()=>{var Ul=Object.defineProperty;var zl=(e,t)=>{for(var o in t)Ul(e,o,{get:t[o],enumerable:!0})};var ye={org:"/script/org.f4e2a3f59f.min.js",notebook:"/script/notebook.8844e2735f.min.js",markdown:"/script/markdown.ad7b1d71c3.min.js",editor:"/script/editor.e243722d87.min.js",pdf:"/script/pdf.eaa7573247.min.js"};var rn=new Map,Bl=ye;function Wt(e){if(!rn.has(e)){let t=document.createElement("script");t.src=Bl[e];let o=new Promise((r,n)=>{t.onload=r,t.onerror=()=>{rn.delete(e),t.remove(),n(new Error(`Unable to load ${e}. Please retry.`))}});rn.set(e,o),document.head.appendChild(t)}return rn.get(e)}async function tr(){await Wt("editor"),ace.config.set("basePath","/script/external/ace/")}function ds(e){let t=Object.create(null);for(let o of e.split(","))t[o]=1;return o=>o in t}var Me={},Kt=[],rt=()=>{},Xn=()=>!1,us=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),cs=e=>e.startsWith("onUpdate:"),Ge=Object.assign,Ss=(e,t)=>{let o=e.indexOf(t);o>-1&&e.splice(o,1)},Gl=Object.prototype.hasOwnProperty,Te=(e,t)=>Gl.call(e,t),Ee=Array.isArray,Pt=e=>Ds(e)==="[object Map]",ls=e=>Ds(e)==="[object Set]",sr=e=>Ds(e)==="[object Date]";var _e=e=>typeof e=="function",Ue=e=>typeof e=="string",ct=e=>typeof e=="symbol",Ae=e=>e!==null&&typeof e=="object",Zn=e=>(Ae(e)||_e(e))&&_e(e.then)&&_e(e.catch),rr=Object.prototype.toString,Ds=e=>rr.call(e),xn=e=>Ds(e).slice(8,-1),an=e=>Ds(e)==="[object Object]",ln=e=>Ue(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ps=ds(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var dn=e=>{let t=Object.create(null);return(o=>t[o]||(t[o]=e(o)))},jl=/-\w/g,Ke=dn(e=>e.replace(jl,t=>t.slice(1).toUpperCase())),Wl=/\B([A-Z])/g,qt=dn(e=>e.replace(Wl,"-$1").toLowerCase()),Yt=dn(e=>e.charAt(0).toUpperCase()+e.slice(1)),Rs=dn(e=>e?`on${Yt(e)}`:""),ht=(e,t)=>!Object.is(e,t),Ts=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:o})},eo=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var nr,Os=()=>nr||(nr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ve(e){if(Ee(e)){let t={};for(let o=0;o{if(o){let r=o.split(Yl);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function O(e){let t="";if(Ue(e))t=e;else if(Ee(e))for(let o=0;o!!(e&&e.__v_isRef===!0),c=e=>Ue(e)?e:e==null?"":Ee(e)||Ae(e)&&(e.toString===rr||!_e(e.toString))?lr(e)?c(e.value):JSON.stringify(e,dr,2):String(e),dr=(e,t)=>lr(t)?dr(e,t.value):Pt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[r,n],i)=>(o[Qn(r,i)+" =>"]=n,o),{})}:ls(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Qn(o))}:ct(t)?Qn(t):Ae(t)&&!Ee(t)&&!an(t)?String(t):t,Qn=(e,t="")=>{var o;return ct(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};function xl(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Ye,Ps=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ye&&(Ye.active?(this.parent=Ye,this.index=(Ye.scopes||(Ye.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){let r=this.scopes.slice();for(t=0,o=r.length;t0&&--this._on===0){if(Ye===this)Ye=this.prevScope;else{let t=Ye;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,r;for(o=0,r=this.effects.length;o0)return;if(Vs){let t=Vs;for(Vs=void 0;t;){let o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Is;){let t=Is;for(Is=void 0;t;){let o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=o}}if(e)throw e}function hr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function vr(e){let t,o=e.depsTail,r=o;for(;r;){let n=r.prevDep;r.version===-1?(r===o&&(o=n),ho(r),ed(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=n}e.deps=t,e.depsTail=o}function oo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(yr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function yr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===qs)||(e.globalVersion=qs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!oo(e))))return;e.flags|=2;let t=e.dep,o=Fe,r=wt;Fe=e,wt=!0;try{hr(e);let n=e.fn(e._value);(t.version===0||ht(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{Fe=o,wt=r,vr(e),e.flags&=-3}}function ho(e,t=!1){let{dep:o,prevSub:r,nextSub:n}=e;if(r&&(r.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=r,e.nextSub=void 0),o.subs===e&&(o.subs=r,!r&&o.computed)){o.computed.flags&=-5;for(let i=o.computed.deps;i;i=i.nextDep)ho(i,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function ed(e){let{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}var wt=!0,gr=[];function Dt(){gr.push(wt),wt=!1}function Rt(){let e=gr.pop();wt=e===void 0?!0:e}function ur(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let o=Fe;Fe=void 0;try{t()}finally{Fe=o}}}var qs=0,ro=class{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ms=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Fe||!wt||Fe===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==Fe)o=this.activeLink=new ro(Fe,this),Fe.deps?(o.prevDep=Fe.depsTail,Fe.depsTail.nextDep=o,Fe.depsTail=o):Fe.deps=Fe.depsTail=o,br(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){let r=o.nextDep;r.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=r),o.prevDep=Fe.depsTail,o.nextDep=void 0,Fe.depsTail.nextDep=o,Fe.depsTail=o,Fe.deps===o&&(Fe.deps=r)}return o}trigger(t){this.version++,qs++,this.notify(t)}notify(t){fo();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{mo()}}};function br(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)br(r)}let o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}var io=new WeakMap,Qt=Symbol(""),ao=Symbol(""),$s=Symbol("");function Xe(e,t,o){if(wt&&Fe){let r=io.get(e);r||io.set(e,r=new Map);let n=r.get(o);n||(r.set(o,n=new Ms),n.map=r,n.key=o),n.track()}}function Nt(e,t,o,r,n,i){let a=io.get(e);if(!a){qs++;return}let u=p=>{p&&p.trigger()};if(fo(),t==="clear")a.forEach(u);else{let p=Ee(e),h=p&&ln(o);if(p&&o==="length"){let y=Number(r);a.forEach((g,m)=>{(m==="length"||m===$s||!ct(m)&&m>=y)&&u(g)})}else switch((o!==void 0||a.has(void 0))&&u(a.get(o)),h&&u(a.get($s)),t){case"add":p?h&&u(a.get("length")):(u(a.get(Qt)),Pt(e)&&u(a.get(ao)));break;case"delete":p||(u(a.get(Qt)),Pt(e)&&u(a.get(ao)));break;case"set":Pt(e)&&u(a.get(Qt));break}}mo()}function ms(e){let t=Oe(e);return t===e?t:(Xe(t,"iterate",$s),it(e)?t:t.map(vt))}function Fs(e){return Xe(e=Oe(e),"iterate",$s),e}function Ct(e,t){return kt(e)?Xt($t(e)?vt(t):t):vt(t)}var td={__proto__:null,[Symbol.iterator](){return so(this,Symbol.iterator,e=>Ct(this,e))},concat(...e){return ms(this).concat(...e.map(t=>Ee(t)?ms(t):t))},entries(){return so(this,"entries",e=>(e[1]=Ct(this,e[1]),e))},every(e,t){return Mt(this,"every",e,t,void 0,arguments)},filter(e,t){return Mt(this,"filter",e,t,o=>o.map(r=>Ct(this,r)),arguments)},find(e,t){return Mt(this,"find",e,t,o=>Ct(this,o),arguments)},findIndex(e,t){return Mt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Mt(this,"findLast",e,t,o=>Ct(this,o),arguments)},findLastIndex(e,t){return Mt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Mt(this,"forEach",e,t,void 0,arguments)},includes(...e){return no(this,"includes",e)},indexOf(...e){return no(this,"indexOf",e)},join(e){return ms(this).join(e)},lastIndexOf(...e){return no(this,"lastIndexOf",e)},map(e,t){return Mt(this,"map",e,t,void 0,arguments)},pop(){return As(this,"pop")},push(...e){return As(this,"push",e)},reduce(e,...t){return cr(this,"reduce",e,t)},reduceRight(e,...t){return cr(this,"reduceRight",e,t)},shift(){return As(this,"shift")},some(e,t){return Mt(this,"some",e,t,void 0,arguments)},splice(...e){return As(this,"splice",e)},toReversed(){return ms(this).toReversed()},toSorted(e){return ms(this).toSorted(e)},toSpliced(...e){return ms(this).toSpliced(...e)},unshift(...e){return As(this,"unshift",e)},values(){return so(this,"values",e=>Ct(this,e))}};function so(e,t,o){let r=Fs(e),n=r[t]();return r!==e&&!it(e)&&(n._next=n.next,n.next=()=>{let i=n._next();return i.done||(i.value=o(i.value)),i}),n}var sd=Array.prototype;function Mt(e,t,o,r,n,i){let a=Fs(e),u=a!==e&&!it(e),p=a[t];if(p!==sd[t]){let g=p.apply(e,i);return u?vt(g):g}let h=o;a!==e&&(u?h=function(g,m){return o.call(this,Ct(e,g),m,e)}:o.length>2&&(h=function(g,m){return o.call(this,g,m,e)}));let y=p.call(a,h,r);return u&&n?n(y):y}function cr(e,t,o,r){let n=Fs(e),i=n!==e&&!it(e),a=o,u=!1;n!==e&&(i?(u=r.length===0,a=function(h,y,g){return u&&(u=!1,h=Ct(e,h)),o.call(this,h,Ct(e,y),g,e)}):o.length>3&&(a=function(h,y,g){return o.call(this,h,y,g,e)}));let p=n[t](a,...r);return u?Ct(e,p):p}function no(e,t,o){let r=Oe(e);Xe(r,"iterate",$s);let n=r[t](...o);return(n===-1||n===!1)&&zs(o[0])?(o[0]=Oe(o[0]),r[t](...o)):n}function As(e,t,o=[]){Dt(),fo();let r=Oe(e)[t].apply(e,o);return mo(),Rt(),r}var nd=ds("__proto__,__v_isRef,__isVue"),wr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ct));function od(e){ct(e)||(e=String(e));let t=Oe(this);return Xe(t,"has",e),t.hasOwnProperty(e)}var hn=class{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,r){if(o==="__v_skip")return t.__v_skip;let n=this._isReadonly,i=this._isShallow;if(o==="__v_isReactive")return!n;if(o==="__v_isReadonly")return n;if(o==="__v_isShallow")return i;if(o==="__v_raw")return r===(n?i?fd:Er:i?_r:kr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;let a=Ee(t);if(!n){let p;if(a&&(p=td[o]))return p;if(o==="hasOwnProperty")return od}let u=Reflect.get(t,o,Qe(t)?t:r);if((ct(o)?wr.has(o):nd(o))||(n||Xe(t,"get",o),i))return u;if(Qe(u)){let p=a&&ln(o)?u:u.value;return n&&Ae(p)?yn(p):p}return Ae(u)?n?yn(u):ze(u):u}},vn=class extends hn{constructor(t=!1){super(!1,t)}set(t,o,r,n){let i=t[o],a=Ee(t)&&ln(o);if(!this._isShallow){let h=kt(i);if(!it(r)&&!kt(r)&&(i=Oe(i),r=Oe(r)),!a&&Qe(i)&&!Qe(r))return h||(i.value=r),!0}let u=a?Number(o)e,pn=e=>Reflect.getPrototypeOf(e);function ld(e,t,o){return function(...r){let n=this.__v_raw,i=Oe(n),a=Pt(i),u=e==="entries"||e===Symbol.iterator&&a,p=e==="keys"&&a,h=n[e](...r),y=o?uo:t?Xt:vt;return!t&&Xe(i,"iterate",p?ao:Qt),Ge(Object.create(h),{next(){let{value:g,done:m}=h.next();return m?{value:g,done:m}:{value:u?[y(g[0]),y(g[1])]:y(g),done:m}}})}}function fn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function dd(e,t){let o={get(n){let i=this.__v_raw,a=Oe(i),u=Oe(n);e||(ht(n,u)&&Xe(a,"get",n),Xe(a,"get",u));let{has:p}=pn(a),h=t?uo:e?Xt:vt;if(p.call(a,n))return h(i.get(n));if(p.call(a,u))return h(i.get(u));i!==a&&i.get(n)},get size(){let n=this.__v_raw;return!e&&Xe(Oe(n),"iterate",Qt),n.size},has(n){let i=this.__v_raw,a=Oe(i),u=Oe(n);return e||(ht(n,u)&&Xe(a,"has",n),Xe(a,"has",u)),n===u?i.has(n):i.has(n)||i.has(u)},forEach(n,i){let a=this,u=a.__v_raw,p=Oe(u),h=t?uo:e?Xt:vt;return!e&&Xe(p,"iterate",Qt),u.forEach((y,g)=>n.call(i,h(y),h(g),a))}};return Ge(o,e?{add:fn("add"),set:fn("set"),delete:fn("delete"),clear:fn("clear")}:{add(n){let i=Oe(this),a=pn(i),u=Oe(n),p=!t&&!it(n)&&!kt(n)?u:n;return a.has.call(i,p)||ht(n,p)&&a.has.call(i,n)||ht(u,p)&&a.has.call(i,u)||(i.add(p),Nt(i,"add",p,p)),this},set(n,i){!t&&!it(i)&&!kt(i)&&(i=Oe(i));let a=Oe(this),{has:u,get:p}=pn(a),h=u.call(a,n);h||(n=Oe(n),h=u.call(a,n));let y=p.call(a,n);return a.set(n,i),h?ht(i,y)&&Nt(a,"set",n,i,y):Nt(a,"add",n,i),this},delete(n){let i=Oe(this),{has:a,get:u}=pn(i),p=a.call(i,n);p||(n=Oe(n),p=a.call(i,n));let h=u?u.call(i,n):void 0,y=i.delete(n);return p&&Nt(i,"delete",n,void 0,h),y},clear(){let n=Oe(this),i=n.size!==0,a=void 0,u=n.clear();return i&&Nt(n,"clear",void 0,void 0,a),u}}),["keys","values","entries",Symbol.iterator].forEach(n=>{o[n]=ld(n,e,t)}),o}function vo(e,t){let o=dd(e,t);return(r,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?r:Reflect.get(Te(o,n)&&n in r?o:r,n,i)}var ud={get:vo(!1,!1)},cd={get:vo(!1,!0)},pd={get:vo(!0,!1)};var kr=new WeakMap,_r=new WeakMap,Er=new WeakMap,fd=new WeakMap;function md(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ze(e){return kt(e)?e:yo(e,!1,rd,ud,kr)}function Us(e){return yo(e,!1,ad,cd,_r)}function yn(e){return yo(e,!0,id,pd,Er)}function yo(e,t,o,r,n){if(!Ae(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let i=n.get(e);if(i)return i;let a=md(xn(e));if(a===0)return e;let u=new Proxy(e,a===2?r:o);return n.set(e,u),u}function $t(e){return kt(e)?$t(e.__v_raw):!!(e&&e.__v_isReactive)}function kt(e){return!!(e&&e.__v_isReadonly)}function it(e){return!!(e&&e.__v_isShallow)}function zs(e){return e?!!e.__v_raw:!1}function Oe(e){let t=e&&e.__v_raw;return t?Oe(t):e}function go(e){return!Te(e,"__v_skip")&&Object.isExtensible(e)&&un(e,"__v_skip",!0),e}var vt=e=>Ae(e)?ze(e):e,Xt=e=>Ae(e)?yn(e):e;function Qe(e){return e?e.__v_isRef===!0:!1}function Ze(e){return Cr(e,!1)}function bn(e){return Cr(e,!0)}function Cr(e,t){return Qe(e)?e:new co(e,t)}var co=class{constructor(t,o){this.dep=new Ms,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Oe(t),this._value=o?t:vt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){let o=this._rawValue,r=this.__v_isShallow||it(t)||kt(t);t=r?t:Oe(t),ht(t,o)&&(this._rawValue=t,this._value=r?t:vt(t),this.dep.trigger())}};function Lt(e){return Qe(e)?e.value:e}var hd={get:(e,t,o)=>t==="__v_raw"?e:Lt(Reflect.get(e,t,o)),set:(e,t,o,r)=>{let n=e[t];return Qe(n)&&!Qe(o)?(n.value=o,!0):Reflect.set(e,t,o,r)}};function wn(e){return $t(e)?e:new Proxy(e,hd)}var po=class{constructor(t,o,r){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Ms(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=qs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Fe!==this)return mr(this,!0),!0}get value(){let t=this.dep.track();return yr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Nr(e,t,o=!1){let r,n;return _e(e)?r=e:(r=e.get,n=e.set),new po(r,n,o)}var mn={},gn=new WeakMap,Jt;function Sr(e,t=!1,o=Jt){if(o){let r=gn.get(o);r||gn.set(o,r=[]),r.push(e)}}function Dr(e,t,o=Me){let{immediate:r,deep:n,once:i,scheduler:a,augmentJob:u,call:p}=o,h=A=>{(o.onWarn||xl)("Invalid watch source: ",A,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},y=A=>n?A:it(A)||n===!1||n===0?St(A,1):St(A),g,m,w,k,b=!1,T=!1;if(Qe(e)?(m=()=>e.value,b=it(e)):$t(e)?(m=()=>y(e),b=!0):Ee(e)?(T=!0,b=e.some(A=>$t(A)||it(A)),m=()=>e.map(A=>{if(Qe(A))return A.value;if($t(A))return y(A);if(_e(A))return p?p(A,2):A()})):_e(e)?t?m=p?()=>p(e,2):e:m=()=>{if(w){Dt();try{w()}finally{Rt()}}let A=Jt;Jt=g;try{return p?p(e,3,[k]):e(k)}finally{Jt=A}}:m=rt,t&&n){let A=m,q=n===!0?1/0:n;m=()=>St(A(),q)}let N=pr(),R=()=>{g.stop(),N&&N.active&&Ss(N.effects,g)};if(i&&t){let A=t;t=(...q)=>{let x=A(...q);return R(),x}}let I=T?new Array(e.length).fill(mn):mn,C=A=>{if(!(!(g.flags&1)||!g.dirty&&!A))if(t){let q=g.run();if(A||n||b||(T?q.some((x,X)=>ht(x,I[X])):ht(q,I))){w&&w();let x=Jt;Jt=g;try{let X=[q,I===mn?void 0:T&&I[0]===mn?[]:I,k];I=q,p?p(t,3,X):t(...X)}finally{Jt=x}}}else g.run()};return u&&u(C),g=new hs(m),g.scheduler=a?()=>a(C,!1):C,k=A=>Sr(A,!1,g),w=g.onStop=()=>{let A=gn.get(g);if(A){if(p)p(A,4);else for(let q of A)q();gn.delete(g)}},t?r?C(!0):I=g.run():a?a(C.bind(null,!0),!0):g.run(),R.pause=g.pause.bind(g),R.resume=g.resume.bind(g),R.stop=R,R}function St(e,t=1/0,o){if(t<=0||!Ae(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,Qe(e))St(e.value,t,o);else if(Ee(e))for(let r=0;r{St(r,t,o)});else if(an(e)){for(let r in e)St(e[r],t,o);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&St(e[r],t,o)}return e}function Xs(e,t,o,r){try{return r?e(...r):e()}catch(n){Zs(n,t,o)}}function yt(e,t,o,r){if(_e(e)){let n=Xs(e,t,o,r);return n&&Zn(n)&&n.catch(i=>{Zs(i,t,o)}),n}if(Ee(e)){let n=[];for(let i=0;i>>1,n=nt[r],i=Ys(n);i=Ys(o)?nt.push(e):nt.splice(wd(t),0,e),e.flags|=1,jr()}}function jr(){En||(En=Gr.then(Yr))}function Wr(e){if(!Ee(e))jt&&e.id===-1?jt.splice(vs+1,0,e):e.flags&1||(ys.push(e),e.flags|=1);else for(let t=0;tYs(o)-Ys(r));if(ys.length=0,jt){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Yr(e){let t=rt;try{for(Ot=0;Ot{r._d&&Dn(-1);let i=Cn(t),a=es.length,u;try{u=e(...n)}finally{for(let p=es.length;p>a;p--)Ci();Cn(i),r._d&&Dn(1)}return u};return r._n=!0,r._c=!0,r._d=!0,r}function E(e,t){if(pt===null)return e;let o=$n(pt),r=e.dirs||(e.dirs=[]);for(let n=0;n1)return o&&_e(t)?t.call(r&&r.proxy):t}}var _d=Symbol.for("v-scx"),Ed=()=>{{let e=lt(_d);return e}};function He(e,t,o){return Qr(e,t,o)}function Qr(e,t,o=Me){let{immediate:r,deep:n,flush:i,once:a}=o,u=Ge({},o),p=t&&r||!t&&i!=="post",h;if(ws){if(i==="sync"){let w=Ed();h=w.__watcherHandles||(w.__watcherHandles=[])}else if(!p){let w=()=>{};return w.stop=rt,w.resume=rt,w.pause=rt,w}}let y=xe;u.call=(w,k,b)=>yt(w,y,k,b);let g=!1;i==="post"?u.scheduler=w=>{at(w,y&&y.suspense)}:i!=="sync"&&(g=!0,u.scheduler=(w,k)=>{k?w():Do(w)}),u.augmentJob=w=>{t&&(w.flags|=4),g&&(w.flags|=2,y&&(w.id=y.uid,w.i=y))};let m=Dr(e,t,u);return ws&&(h?h.push(m):p&&m()),m}function Cd(e,t,o){let r=this.proxy,n=Ue(e)?e.includes(".")?Xr(r,e):()=>r[e]:e.bind(r,r),i;_e(t)?i=t:(i=t.handler,o=t);let a=tn(this),u=Qr(n,i.bind(r),o);return a(),u}function Xr(e,t){let o=t.split(".");return()=>{let r=e;for(let n=0;ne.__isTeleport;var bo=Symbol("_leaveCb");function Sd(e){let t=e[0];if(e.length>1){let o=!1;for(let r of e)if(r.type!==Ut){t=r,o=!0;break}}return t}function Zr(e){if(!Vn(e))return An(e.type)&&e.children?Sd(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&_e(o.default))return o.default()}}function In(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let o=e.component.subTree;In(An(o.type)&&Zr(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function xs(e,t){return _e(e)?Ge({name:e.name},t,{setup:e}):e}function Ro(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Tr(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}var Nn=new WeakMap;function Gs(e,t,o,r,n=!1){if(Ee(e)){e.forEach((b,T)=>Gs(b,t&&(Ee(t)?t[T]:t),o,r,n));return}if(js(r)&&!n){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Gs(e,t,o,r.component.subTree);return}let i=r.shapeFlag&4?$n(r.component):r.el,a=n?null:i,{i:u,r:p}=e,h=t&&t.r,y=u.refs===Me?u.refs={}:u.refs,g=u.setupState,m=Oe(g),w=g===Me?Xn:b=>Tr(y,b)?!1:Te(m,b),k=(b,T)=>!(T&&Tr(y,T));if(h!=null&&h!==p){if(Or(t),Ue(h))y[h]=null,w(h)&&(g[h]=null);else if(Qe(h)){let b=t;k(h,b.k)&&(h.value=null),b.k&&(y[b.k]=null)}}if(_e(p))Xs(p,u,12,[a,y]);else{let b=Ue(p),T=Qe(p);if(b||T){let N=()=>{if(e.f){let R=b?w(p)?g[p]:y[p]:k(p)||!e.k?p.value:y[e.k];if(n)Ee(R)&&Ss(R,i);else if(Ee(R))R.includes(i)||R.push(i);else if(b)y[p]=[i],w(p)&&(g[p]=y[p]);else{let I=[i];k(p,e.k)&&(p.value=I),e.k&&(y[e.k]=I)}}else b?(y[p]=a,w(p)&&(g[p]=a)):T&&(k(p,e.k)&&(p.value=a),e.k&&(y[e.k]=a))};if(a){let R=()=>{N(),Nn.delete(e)};R.id=-1,Nn.set(e,R),at(R,o)}else Or(e),N()}}}function Or(e){let t=Nn.get(e);t&&(t.flags|=8,Nn.delete(e))}var Ar=e=>e.nodeType===8;var N4=Os().requestIdleCallback||(e=>setTimeout(e,1)),S4=Os().cancelIdleCallback||(e=>clearTimeout(e));function Dd(e,t){if(Ar(e)&&e.data==="["){let o=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Ar(r))if(r.data==="]"){if(--o===0)break}else r.data==="["&&o++;r=r.nextSibling}}else t(e)}var js=e=>!!e.type.__asyncLoader;function xr(e){_e(e)&&(e={loader:e});let{loader:t,loadingComponent:o,errorComponent:r,delay:n=200,hydrate:i,timeout:a,suspensible:u=!0,onError:p}=e,h=null,y,g=0,m=()=>(g++,h=null,w()),w=()=>{let k;return h||(k=h=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),p)return new Promise((T,N)=>{p(b,()=>T(m()),()=>N(b),g+1)});throw b}).then(b=>k!==h&&h?h:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),y=b,b)))};return xs({name:"AsyncComponentWrapper",__asyncLoader:w,__asyncHydrate(k,b,T){let N=k.isConnected,R=!1;(b.bu||(b.bu=[])).push(()=>R=!0);let I=()=>{R||!k.parentNode||N&&!k.isConnected||T()},C=i?()=>{let A=i(I,q=>Dd(k,q));A&&(b.bum||(b.bum=[])).push(A)}:I;y?C():w().then(()=>!b.isUnmounted&&C())},get __asyncResolved(){return y},setup(){let k=xe;if(Ro(k),y)return()=>kn(y,k);let b=A=>{h=null,Zs(A,k,13,!r)};if(u&&k.suspense||ws)return w().then(A=>()=>kn(A,k)).catch(A=>(b(A),()=>r?De(r,{error:A}):null));let T=Ze(!1),N=Ze(),R=Ze(!!n),I,C;return en(()=>{I!=null&&clearTimeout(I),C!=null&&clearTimeout(C)}),n&&(C=setTimeout(()=>{k.isUnmounted||(R.value=!1)},n)),a!=null&&(I=setTimeout(()=>{if(!k.isUnmounted&&!T.value&&!N.value){let A=new Error(`Async component timed out after ${a}ms.`);b(A),N.value=A}},a)),w().then(()=>{k.isUnmounted||(T.value=!0,k.parent&&Vn(k.parent.vnode)&&k.parent.update())}).catch(A=>{if(k.isUnmounted){h=null;return}b(A),N.value=A}),()=>{if(T.value&&y)return kn(y,k);if(N.value&&r)return De(r,{error:N.value});if(o&&!R.value)return kn(o,k)}}})}function kn(e,t){let{ref:o,props:r,children:n,ce:i}=t.vnode,a=De(e,r,n);return a.ref=o,a.ce=i,delete t.vnode.ce,a}var Vn=e=>e.type.__isKeepAlive;function ei(e,t){si(e,"a",t)}function ti(e,t){si(e,"da",t)}function si(e,t,o=xe){let r=e.__wdc||(e.__wdc=()=>{let n=o;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(Pn(t,r,o),o){let n=o.parent;for(;n&&n.parent;)Vn(n.parent.vnode)&&Rd(r,t,o,n),n=n.parent}}function Rd(e,t,o,r){let n=Pn(t,e,r,!0);en(()=>{Ss(r[t],n)},o)}function Pn(e,t,o=xe,r=!1){if(o){let n=o[e]||(o[e]=[]),i=t.__weh||(t.__weh=(...a)=>{Dt();let u=tn(o),p=yt(t,o,e,a);return u(),Rt(),p});return r?n.unshift(i):n.push(i),i}}var zt=e=>(t,o=xe)=>{(!ws||e==="sp")&&Pn(e,(...r)=>t(...r),o)},Td=zt("bm"),It=zt("m"),ni=zt("bu"),oi=zt("u"),ss=zt("bum"),en=zt("um"),Od=zt("sp"),Ad=zt("rtg"),Id=zt("rtc");function Vd(e,t=xe){Pn("ec",e,t)}var ri="components",Pd="directives";function et(e,t){return ii(ri,e,!0,t)||e}var qd=Symbol.for("v-ndc");function we(e){return ii(Pd,e)}function ii(e,t,o=!0,r=!1){let n=pt||xe;if(n){let i=n.type;if(e===ri){let u=gu(i,!1);if(u&&(u===t||u===Ke(t)||u===Yt(Ke(t))))return i}let a=Ir(n[e]||i[e],t)||Ir(n.appContext[e],t);return!a&&r?i:a}}function Ir(e,t){return e&&(e[t]||e[Ke(t)]||e[Yt(Ke(t))])}function oe(e,t,o,r){let n,i=o&&o[r],a=Ee(e);if(a||Ue(e)){let u=a&&$t(e),p=!1,h=!1;u&&(p=!it(e),h=kt(e),e=Fs(e)),n=new Array(e.length);for(let y=0,g=e.length;yt(u,p,void 0,i&&i[p]));else{let u=Object.keys(e);n=new Array(u.length);for(let p=0,h=u.length;pe?Di(e)?$n(e):Eo(e.parent):null;var Ws=Ge(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Eo(e.parent),$root:e=>Eo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>To(e),$forceUpdate:e=>e.f||(e.f=()=>{Do(e.update)}),$nextTick:e=>e.n||(e.n=_t.bind(e.proxy)),$watch:e=>Cd.bind(e)});var wo=(e,t)=>e!==Me&&!e.__isScriptSetup&&Te(e,t),Md={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:o,setupState:r,data:n,props:i,accessCache:a,type:u,appContext:p}=e;if(t[0]!=="$"){let m=a[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return n[t];case 4:return o[t];case 3:return i[t]}else{if(wo(r,t))return a[t]=1,r[t];if(n!==Me&&Te(n,t))return a[t]=2,n[t];if(Te(i,t))return a[t]=3,i[t];if(o!==Me&&Te(o,t))return a[t]=4,o[t];Co&&(a[t]=0)}}let h=Ws[t],y,g;if(h)return t==="$attrs"&&Xe(e.attrs,"get",""),h(e);if((y=u.__cssModules)&&(y=y[t]))return y;if(o!==Me&&Te(o,t))return a[t]=4,o[t];if(g=p.config.globalProperties,Te(g,t))return g[t]},set({_:e},t,o){let{data:r,setupState:n,ctx:i}=e;return wo(n,t)?(n[t]=o,!0):r!==Me&&Te(r,t)?(r[t]=o,!0):Te(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:r,appContext:n,props:i,type:a}},u){let p;return!!(o[u]||e!==Me&&u[0]!=="$"&&Te(e,u)||wo(t,u)||Te(i,u)||Te(r,u)||Te(Ws,u)||Te(n.config.globalProperties,u)||(p=a.__cssModules)&&p[u])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Te(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Vr(e){return Ee(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}var Co=!0;function $d(e){let t=To(e),o=e.proxy,r=e.ctx;Co=!1,t.beforeCreate&&Pr(t.beforeCreate,e,"bc");let{data:n,computed:i,methods:a,watch:u,provide:p,inject:h,created:y,beforeMount:g,mounted:m,beforeUpdate:w,updated:k,activated:b,deactivated:T,beforeDestroy:N,beforeUnmount:R,destroyed:I,unmounted:C,render:A,renderTracked:q,renderTriggered:x,errorCaptured:X,serverPrefetch:K,expose:U,inheritAttrs:ue,components:te,directives:re,filters:pe}=t;if(h&&Ld(h,r,null),a)for(let he in a){let le=a[he];_e(le)&&(r[he]=le.bind(o))}if(n){let he=n.call(o,o);Ae(he)&&(e.data=ze(he))}if(Co=!0,i)for(let he in i){let le=i[he],Ie=_e(le)?le.bind(o,o):_e(le.get)?le.get.bind(o,o):rt,Se=!_e(le)&&_e(le.set)?le.set.bind(o):rt,D=tt({get:Ie,set:Se});Object.defineProperty(r,he,{enumerable:!0,configurable:!0,get:()=>D.value,set:V=>D.value=V})}if(u)for(let he in u)ai(u[he],r,o,he);if(p){let he=_e(p)?p.call(o):p;Reflect.ownKeys(he).forEach(le=>{ts(le,he[le])})}y&&Pr(y,e,"c");function be(he,le){Ee(le)?le.forEach(Ie=>he(Ie.bind(o))):le&&he(le.bind(o))}if(be(Td,g),be(It,m),be(ni,w),be(oi,k),be(ei,b),be(ti,T),be(Vd,X),be(Id,q),be(Ad,x),be(ss,R),be(en,C),be(Od,K),Ee(U))if(U.length){let he=e.exposed||(e.exposed={});U.forEach(le=>{Object.defineProperty(he,le,{get:()=>o[le],set:Ie=>o[le]=Ie,enumerable:!0})})}else e.exposed||(e.exposed={});A&&e.render===rt&&(e.render=A),ue!=null&&(e.inheritAttrs=ue),te&&(e.components=te),re&&(e.directives=re),K&&Ro(e)}function Ld(e,t,o=rt){Ee(e)&&(e=No(e));for(let r in e){let n=e[r],i;Ae(n)?"default"in n?i=lt(n.from||r,n.default,!0):i=lt(n.from||r):i=lt(n),Qe(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):t[r]=i}}function Pr(e,t,o){yt(Ee(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,o)}function ai(e,t,o,r){let n=r.includes(".")?Xr(o,r):()=>o[r];if(Ue(e)){let i=t[e];_e(i)&&He(n,i)}else if(_e(e))He(n,e.bind(o));else if(Ae(e))if(Ee(e))e.forEach(i=>ai(i,t,o,r));else{let i=_e(e.handler)?e.handler.bind(o):t[e.handler];_e(i)&&He(n,i,e)}}function To(e){let t=e.type,{mixins:o,extends:r}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:a}}=e.appContext,u=i.get(t),p;return u?p=u:!n.length&&!o&&!r?p=t:(p={},n.length&&n.forEach(h=>Sn(p,h,a,!0)),Sn(p,t,a)),Ae(t)&&i.set(t,p),p}function Sn(e,t,o,r=!1){let{mixins:n,extends:i}=t;i&&Sn(e,i,o,!0),n&&n.forEach(a=>Sn(e,a,o,!0));for(let a in t)if(!(r&&a==="expose")){let u=Fd[a]||o&&o[a];e[a]=u?u(e[a],t[a]):t[a]}return e}var Fd={data:qr,props:Mr,emits:Mr,methods:Bs,computed:Bs,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:Bs,directives:Bs,watch:zd,provide:qr,inject:Ud};function qr(e,t){return t?e?function(){return Ge(_e(e)?e.call(this,this):e,_e(t)?t.call(this,this):t)}:t:e}function Ud(e,t){return Bs(No(e),No(t))}function No(e){if(Ee(e)){let t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ke(t)}Modifiers`]||e[`${qt(t)}Modifiers`];function jd(e,t,...o){if(e.isUnmounted)return;let r=e.vnode.props||Me,n=o,i=t.startsWith("update:"),a=i&&Gd(r,t.slice(7));a&&(a.trim&&(n=o.map(y=>Ue(y)?y.trim():y)),a.number&&(n=n.map(eo)));let u,p=r[u=Rs(t)]||r[u=Rs(Ke(t))];!p&&i&&(p=r[u=Rs(qt(t))]),p&&yt(p,e,6,n);let h=r[u+"Once"];if(h){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,yt(h,e,6,n)}}var Wd=new WeakMap;function di(e,t,o=!1){let r=o?Wd:t.emitsCache,n=r.get(e);if(n!==void 0)return n;let i=e.emits,a={},u=!1;if(!_e(e)){let p=h=>{let y=di(h,t,!0);y&&(u=!0,Ge(a,y))};!o&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}return!i&&!u?(Ae(e)&&r.set(e,null),null):(Ee(i)?i.forEach(p=>a[p]=null):Ge(a,i),Ae(e)&&r.set(e,a),a)}function qn(e,t){return!e||!us(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Te(e,t[0].toLowerCase()+t.slice(1))||Te(e,qt(t))||Te(e,t))}function ko(e){let{type:t,vnode:o,proxy:r,withProxy:n,propsOptions:[i],slots:a,attrs:u,emit:p,render:h,renderCache:y,props:g,data:m,setupState:w,ctx:k,inheritAttrs:b}=e,T=Cn(e),N,R;try{if(o.shapeFlag&4){let A=n||r,q=A;N=At(h.call(q,A,y,g,w,m,k)),R=u}else{let A=t;N=At(A.length>1?A(g,{attrs:u,slots:a,emit:p}):A(g,null)),R=t.props?u:Kd(u)}}catch(A){es.length=0,Zs(A,e,1),N=De(Ut)}let I=N,C;if(R&&b!==!1){let A=Object.keys(R),{shapeFlag:q}=I;A.length&&q&7&&(i&&A.some(cs)&&(R=Yd(R,i)),I=bs(I,R,!1,!0))}if(o.dirs&&(I=bs(I,null,!1,!0),I.dirs=I.dirs?I.dirs.concat(o.dirs):o.dirs),o.transition){let A=An(I.type)&&Zr(I)||I;In(A,o.transition)}return N=I,Cn(T),N}var Kd=e=>{let t;for(let o in e)(o==="class"||o==="style"||us(o))&&((t||(t={}))[o]=e[o]);return t},Yd=(e,t)=>{let o={};for(let r in e)(!cs(r)||!(r.slice(9)in t))&&(o[r]=e[r]);return o};function Jd(e,t,o){let{props:r,children:n,component:i}=e,{props:a,children:u,patchFlag:p}=t,h=i.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&p>=0){if(p&1024)return!0;if(p&16)return r?$r(r,a,h):!!a;if(p&8){let y=t.dynamicProps;for(let g=0;gObject.create(ci),fi=e=>Object.getPrototypeOf(e)===ci;function Xd(e,t,o,r=!1){let n={},i=pi();e.propsDefaults=Object.create(null),mi(e,t,n,i);for(let a in e.propsOptions[0])a in n||(n[a]=void 0);o?e.props=r?n:Us(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function Zd(e,t,o,r){let{props:n,attrs:i,vnode:{patchFlag:a}}=e,u=Oe(n),[p]=e.propsOptions,h=!1;if((r||a>0)&&!(a&16)){if(a&8){let y=e.vnode.dynamicProps;for(let g=0;g{p=!0;let[m,w]=hi(g,t,!0);Ge(a,m),w&&u.push(...w)};!o&&t.mixins.length&&t.mixins.forEach(y),e.extends&&y(e.extends),e.mixins&&e.mixins.forEach(y)}if(!i&&!p)return Ae(e)&&r.set(e,Kt),Kt;if(Ee(i))for(let y=0;ye==="_"||e==="_ctx"||e==="$stable",Ao=e=>Ee(e)?e.map(At):[At(e)],eu=(e,t,o)=>{if(t._n)return t;let r=kd((...n)=>Ao(t(...n)),o);return r._c=!1,r},vi=(e,t,o)=>{let r=e._ctx;for(let n in e){if(Oo(n))continue;let i=e[n];if(_e(i))t[n]=eu(n,i,r);else if(i!=null){let a=Ao(i);t[n]=()=>a}}},yi=(e,t)=>{let o=Ao(t);e.slots.default=()=>o},gi=(e,t,o)=>{for(let r in t)(o||!Oo(r))&&(e[r]=t[r])},tu=(e,t,o)=>{let r=e.slots=pi();if(e.vnode.shapeFlag&32){let n=t._;n?(gi(r,t,o),o&&un(r,"_",n,!0)):vi(t,r)}else t&&yi(e,t)},su=(e,t,o)=>{let{vnode:r,slots:n}=e,i=!0,a=Me;if(r.shapeFlag&32){let u=t._;u?o&&u===1?i=!1:gi(n,t,o):(i=!t.$stable,vi(t,n)),a=t}else t&&(yi(e,t),a={default:1});if(i)for(let u in n)!Oo(u)&&a[u]==null&&delete n[u]};function nu(){let e=[]}var at=au;function bi(e){return ou(e)}function ou(e,t){nu();let o=Os();o.__VUE__=!0;let{insert:r,remove:n,patchProp:i,createElement:a,createText:u,createComment:p,setText:h,setElementText:y,parentNode:g,nextSibling:m,setScopeId:w=rt,insertStaticContent:k}=e,b=(_,S,P,z=null,j=null,M=null,J=void 0,Z=null,Q=!!S.dynamicChildren)=>{if(_===S)return;_&&!Hs(_,S)&&(z=ne(_),H(_,j,M,!0),_=null),S.patchFlag===-2&&(Q=!1,S.dynamicChildren=null);let{type:B,ref:de,shapeFlag:ee}=S;switch(B){case Mn:T(_,S,P,z);break;case Ut:N(_,S,P,z);break;case Ks:_==null&&R(S,P,z,J);break;case Y:re(_,S,P,z,j,M,J,Z,Q);break;default:ee&1?q(_,S,P,z,j,M,J,Z,Q):ee&6?pe(_,S,P,z,j,M,J,Z,Q):(ee&64||ee&128)&&B.process(_,S,P,z,j,M,J,Z,Q,fe)}de!=null&&j?Gs(de,_&&_.ref,M,S||_,!S):de==null&&_&&_.ref!=null&&Gs(_.ref,null,M,_,!0)},T=(_,S,P,z)=>{if(_==null)r(S.el=u(S.children),P,z);else{let j=S.el=_.el;S.children!==_.children&&h(j,S.children)}},N=(_,S,P,z)=>{_==null?r(S.el=p(S.children||""),P,z):S.el=_.el},R=(_,S,P,z)=>{[_.el,_.anchor]=k(_.children,S,P,z,_.el,_.anchor)},I=(_,S,P,z)=>{if(S.children!==_.children){let j=m(_.anchor);A(_),[S.el,S.anchor]=k(S.children,P,j,z)}else S.el=_.el,S.anchor=_.anchor},C=({el:_,anchor:S},P,z)=>{let j;for(;_&&_!==S;)j=m(_),r(_,P,z),_=j;r(S,P,z)},A=({el:_,anchor:S})=>{let P;for(;_&&_!==S;)P=m(_),n(_),_=P;n(S)},q=(_,S,P,z,j,M,J,Z,Q)=>{if(S.type==="svg"?J="svg":S.type==="math"&&(J="mathml"),_==null)x(S,P,z,j,M,J,Z,Q);else{let B=_.el&&_.el._isVueCE?_.el:null;try{B&&B._beginPatch(),U(_,S,j,M,J,Z,Q)}finally{B&&B._endPatch()}}},x=(_,S,P,z,j,M,J,Z)=>{let Q,B,{props:de,shapeFlag:ee,transition:ae,dirs:ve}=_;if(Q=_.el=a(_.type,M,de&&de.is,de),ee&8?y(Q,_.children):ee&16&&K(_.children,Q,null,z,j,_o(_,M),J,Z),ve&&Zt(_,null,z,"created"),X(Q,_,_.scopeId,J,z),de){for(let Le in de)Le!=="value"&&!ps(Le)&&i(Q,Le,null,de[Le],M,z);"value"in de&&i(Q,"value",null,de.value,M),(B=de.onVnodeBeforeMount)&&Tt(B,z,_)}ve&&Zt(_,null,z,"beforeMount");let Re=ru(j,ae);Re&&ae.beforeEnter(Q),r(Q,S,P),((B=de&&de.onVnodeMounted)||Re||ve)&&at(()=>{let $e;try{B&&Tt(B,z,_),Re&&ae.enter(Q),ve&&Zt(_,null,z,"mounted")}finally{}},j)},X=(_,S,P,z,j)=>{if(P&&w(_,P),z)for(let M=0;M{for(let B=Q;B<_.length;B++){let de=_[B]=Z?Ft(_[B]):At(_[B]);b(null,de,S,P,z,j,M,J,Z)}},U=(_,S,P,z,j,M,J)=>{let Z=S.el=_.el,{patchFlag:Q,dynamicChildren:B,dirs:de}=S;Q|=_.patchFlag&16;let ee=_.props||Me,ae=S.props||Me,ve;if(P&&xt(P,!1),(ve=ae.onVnodeBeforeUpdate)&&Tt(ve,P,S,_),de&&Zt(S,_,P,"beforeUpdate"),P&&xt(P,!0),B&&(!_.dynamicChildren||_.dynamicChildren.length!==B.length)&&(Q=0,J=!1,B=null),(ee.innerHTML&&ae.innerHTML==null||ee.textContent&&ae.textContent==null)&&y(Z,""),B?ue(_.dynamicChildren,B,Z,P,z,_o(S,j),M):J||Ie(_,S,Z,null,P,z,_o(S,j),M,!1),Q>0){if(Q&16)te(Z,ee,ae,P,j);else if(Q&2&&ee.class!==ae.class&&i(Z,"class",null,ae.class,j),Q&4&&i(Z,"style",ee.style,ae.style,j),Q&8){let Re=S.dynamicProps;for(let Le=0;Le{ve&&Tt(ve,P,S,_),de&&Zt(S,_,P,"updated")},z)},ue=(_,S,P,z,j,M,J)=>{for(let Z=0;Z{if(S!==P){if(S!==Me)for(let M in S)!ps(M)&&!(M in P)&&i(_,M,S[M],null,j,z);for(let M in P){if(ps(M))continue;let J=P[M],Z=S[M];J!==Z&&M!=="value"&&i(_,M,Z,J,j,z)}"value"in P&&i(_,"value",S.value,P.value,j)}},re=(_,S,P,z,j,M,J,Z,Q)=>{let B=S.el=_?_.el:u(""),de=S.anchor=_?_.anchor:u(""),{patchFlag:ee,dynamicChildren:ae,slotScopeIds:ve}=S;ve&&(Z=Z?Z.concat(ve):ve),_==null?(r(B,P,z),r(de,P,z),K(S.children||[],P,de,j,M,J,Z,Q)):ee>0&&ee&64&&ae&&_.dynamicChildren&&_.dynamicChildren.length===ae.length?(ue(_.dynamicChildren,ae,P,j,M,J,Z),(S.key!=null||j&&S===j.subTree)&&wi(_,S,!0)):Ie(_,S,P,de,j,M,J,Z,Q)},pe=(_,S,P,z,j,M,J,Z,Q)=>{S.slotScopeIds=Z,_==null?S.shapeFlag&512?j.ctx.activate(S,P,z,J,Q):me(S,P,z,j,M,J,Q):be(_,S,Q)},me=(_,S,P,z,j,M,J)=>{let Z=_.component=fu(_,z,j);if(Vn(_)&&(Z.ctx.renderer=fe),mu(Z,!1,J),Z.asyncDep){if(j&&j.registerDep(Z,he,J),!_.el){let Q=Z.subTree=De(Ut);N(null,Q,S,P),_.placeholder=Q.el}}else he(Z,_,S,P,j,M,J)},be=(_,S,P)=>{let z=S.component=_.component;if(Jd(_,S,P))if(z.asyncDep&&!z.asyncResolved){le(z,S,P);return}else z.next=S,z.update();else S.el=_.el,z.vnode=S},he=(_,S,P,z,j,M,J)=>{let Z=()=>{if(_.isMounted){let{next:ee,bu:ae,u:ve,parent:Re,vnode:Le}=_;{let dt=ki(_);if(dt){ee&&(ee.el=Le.el,le(_,ee,J)),dt.asyncDep.then(()=>{at(()=>{_.isUnmounted||B()},j)});return}}let $e=ee,je;xt(_,!1),ee?(ee.el=Le.el,le(_,ee,J)):ee=Le,ae&&Ts(ae),(je=ee.props&&ee.props.onVnodeBeforeUpdate)&&Tt(je,Re,ee,Le),xt(_,!0);let We=ko(_),bt=_.subTree;_.subTree=We,b(bt,We,g(bt.el),ne(bt),_,j,M),ee.el=We.el,$e===null&&Qd(_,We.el),ve&&at(ve,j),(je=ee.props&&ee.props.onVnodeUpdated)&&at(()=>Tt(je,Re,ee,Le),j)}else{let ee,{el:ae,props:ve}=S,{bm:Re,m:Le,parent:$e,root:je,type:We}=_,bt=js(S);if(xt(_,!1),Re&&Ts(Re),!bt&&(ee=ve&&ve.onVnodeBeforeMount)&&Tt(ee,$e,S),xt(_,!0),ae&&ce){let dt=()=>{_.subTree=ko(_),ce(ae,_.subTree,_,j,null)};bt&&We.__asyncHydrate?We.__asyncHydrate(ae,_,dt):dt()}else{je.ce&&je.ce._hasShadowRoot()&&je.ce._injectChildStyle(We,_.parent?_.parent.type:void 0);let dt=_.subTree=ko(_);b(null,dt,P,z,_,j,M),S.el=dt.el}if(Le&&at(Le,j),!bt&&(ee=ve&&ve.onVnodeMounted)){let dt=S;at(()=>Tt(ee,$e,dt),j)}(S.shapeFlag&256||$e&&js($e.vnode)&&$e.vnode.shapeFlag&256)&&_.a&&at(_.a,j),_.isMounted=!0,S=P=z=null}};_.scope.on();let Q=_.effect=new hs(Z);_.scope.off();let B=_.update=Q.run.bind(Q),de=_.job=Q.runIfDirty.bind(Q);de.i=_,de.id=_.uid,Q.scheduler=()=>Do(de),xt(_,!0),B()},le=(_,S,P)=>{S.component=_;let z=_.vnode.props;_.vnode=S,_.next=null,Zd(_,S.props,z,P),su(_,S.children,P),Dt(),Rr(_),Rt()},Ie=(_,S,P,z,j,M,J,Z,Q=!1)=>{let B=_&&_.children,de=_?_.shapeFlag:0,ee=S.children,{patchFlag:ae,shapeFlag:ve}=S;if(ae>0){if(ae&128){D(B,ee,P,z,j,M,J,Z,Q);return}else if(ae&256){Se(B,ee,P,z,j,M,J,Z,Q);return}}ve&8?(de&16&&L(B,j,M),ee!==B&&y(P,ee)):de&16?ve&16?D(B,ee,P,z,j,M,J,Z,Q):L(B,j,M,!0):(de&8&&y(P,""),ve&16&&K(ee,P,z,j,M,J,Z,Q))},Se=(_,S,P,z,j,M,J,Z,Q)=>{_=_||Kt,S=S||Kt;let B=_.length,de=S.length,ee=Math.min(B,de),ae;for(ae=0;aede?L(_,j,M,!0,!1,ee):K(S,P,z,j,M,J,Z,Q,ee)},D=(_,S,P,z,j,M,J,Z,Q)=>{let B=0,de=S.length,ee=_.length-1,ae=de-1;for(;B<=ee&&B<=ae;){let ve=_[B],Re=S[B]=Q?Ft(S[B]):At(S[B]);if(Hs(ve,Re))b(ve,Re,P,null,j,M,J,Z,Q);else break;B++}for(;B<=ee&&B<=ae;){let ve=_[ee],Re=S[ae]=Q?Ft(S[ae]):At(S[ae]);if(Hs(ve,Re))b(ve,Re,P,null,j,M,J,Z,Q);else break;ee--,ae--}if(B>ee){if(B<=ae){let ve=ae+1,Re=veae)for(;B<=ee;)H(_[B],j,M,!0),B++;else{let ve=B,Re=B,Le=new Map;for(B=Re;B<=ae;B++){let ut=S[B]=Q?Ft(S[B]):At(S[B]);ut.key!=null&&Le.set(ut.key,B)}let $e,je=0,We=ae-Re+1,bt=!1,dt=0,Ns=new Array(We);for(B=0;B=We){H(ut,j,M,!0);continue}let Et;if(ut.key!=null)Et=Le.get(ut.key);else for($e=Re;$e<=ae;$e++)if(Ns[$e-Re]===0&&Hs(ut,S[$e])){Et=$e;break}Et===void 0?H(ut,j,M,!0):(Ns[Et-Re]=B+1,Et>=dt?dt=Et:bt=!0,b(ut,S[Et],P,null,j,M,J,Z,Q),je++)}let Zo=bt?iu(Ns):Kt;for($e=Zo.length-1,B=We-1;B>=0;B--){let ut=Re+B,Et=S[ut],xo=S[ut+1],er=ut+1{let{el:M,type:J,transition:Z,children:Q,shapeFlag:B}=_;if(B&6){V(_.component.subTree,S,P,z);return}if(B&128){_.suspense.move(S,P,z);return}if(B&64){J.move(_,S,P,fe);return}if(J===Y){r(M,S,P);for(let ee=0;eeZ.enter(M),j));else{let{leave:ee,delayLeave:ae,afterLeave:ve}=Z,Re=()=>{_.ctx.isUnmounted?n(M):r(M,S,P)},Le=()=>{let $e=M._isLeaving||!!M[bo];M._isLeaving&&M[bo](!0),Z.persisted&&!$e?Re():ee(M,()=>{Re(),ve&&ve()})};ae?ae(M,Re,Le):Le()}else r(M,S,P)},H=(_,S,P,z=!1,j=!1)=>{let{type:M,props:J,ref:Z,children:Q,dynamicChildren:B,shapeFlag:de,patchFlag:ee,dirs:ae,cacheIndex:ve,memo:Re}=_;if(ee===-2&&(j=!1),Z!=null&&(Dt(),Gs(Z,null,P,_,!0),Rt()),ve!=null&&(S.renderCache[ve]=void 0),de&256){S.ctx.deactivate(_);return}let Le=de&1&&ae,$e=!js(_),je;if($e&&(je=J&&J.onVnodeBeforeUnmount)&&Tt(je,S,_),de&6)qe(_.component,P,z);else{if(de&128){_.suspense.unmount(P,z);return}Le&&Zt(_,null,S,"beforeUnmount"),de&64?_.type.remove(_,S,P,fe,z):B&&!B.hasOnce&&(M!==Y||ee>0&&ee&64)?L(B,S,P,!1,!0):(M===Y&&ee&384||!j&&de&16)&&L(Q,S,P),z&&se(_)}let We=Re!=null&&ve==null;($e&&(je=J&&J.onVnodeUnmounted)||Le||We)&&at(()=>{je&&Tt(je,S,_),Le&&Zt(_,null,S,"unmounted"),We&&(_.el=null)},P)},se=_=>{let{type:S,el:P,anchor:z,transition:j}=_;if(S===Y){ie(P,z);return}if(S===Ks){A(_);return}let M=()=>{n(P),j&&!j.persisted&&j.afterLeave&&j.afterLeave()};if(_.shapeFlag&1&&j&&!j.persisted){let{leave:J,delayLeave:Z}=j,Q=()=>J(P,M);Z?Z(_.el,M,Q):Q()}else M()},ie=(_,S)=>{let P;for(;_!==S;)P=m(_),n(_),_=P;n(S)},qe=(_,S,P)=>{let{bum:z,scope:j,job:M,subTree:J,um:Z,m:Q,a:B}=_;Fr(Q),Fr(B),z&&Ts(z),j.stop(),M&&(M.flags|=8,H(J,_,S,P)),Z&&at(Z,S),at(()=>{_.isUnmounted=!0},S)},L=(_,S,P,z=!1,j=!1,M=0)=>{for(let J=M;J<_.length;J++)H(_[J],S,P,z,j)},ne=_=>{if(_.shapeFlag&6)return ne(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();let S=m(_.anchor||_.el),P=S&&S[Nd];return P?m(P):S},F=!1,W=(_,S,P)=>{let z;_==null?S._vnode&&(H(S._vnode,null,null,!0),z=S._vnode.component):b(S._vnode||null,_,S,null,null,null,P),S._vnode=_,F||(F=!0,Rr(z),Kr(),F=!1)},fe={p:b,um:H,m:V,r:se,mt:me,mc:K,pc:Ie,pbc:ue,n:ne,o:e},Ce,ce;return t&&([Ce,ce]=t(fe)),{render:W,hydrate:Ce,createApp:Bd(W,Ce)}}function _o({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function xt({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ru(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function wi(e,t,o=!1){let r=e.children,n=t.children;if(Ee(r)&&Ee(n))for(let i=0;i>1,e[o[u]]0&&(t[r]=o[i-1]),o[i]=r)}}for(i=o.length,a=o[i-1];i-- >0;)o[i]=a,a=t[a];return o}function ki(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ki(t)}function Fr(e){if(e)for(let t=0;te.__isSuspense;function au(e,t){t&&t.pendingBranch?Ee(e)?t.effects.push(...e):t.effects.push(e):Wr(e)}var Y=Symbol.for("v-fgt"),Mn=Symbol.for("v-txt"),Ut=Symbol.for("v-cmt"),Ks=Symbol.for("v-stc"),es=[],ft=null;function l(e=!1){es.push(ft=e?null:[])}function Ci(){es.pop(),ft=es[es.length-1]||null}var Js=1;function Dn(e,t=!1){Js+=e,e<0&&ft&&t&&(ft.hasOnce=!0)}function Ni(e){return e.dynamicChildren=Js>0?ft||Kt:null,Ci(),Js>0&&ft&&ft.push(e),e}function d(e,t,o,r,n,i){return Ni(s(e,t,o,r,n,i,!0))}function ks(e,t,o,r,n){return Ni(De(e,t,o,r,n,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function Hs(e,t){return e.type===t.type&&e.key===t.key}var Si=({key:e})=>e??null,_n=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Ue(e)||Qe(e)||_e(e)?{i:pt,r:e,k:t,f:!!o}:e:null);function s(e,t=null,o=null,r=0,n=null,i=e===Y?0:1,a=!1,u=!1){let p={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Si(t),ref:t&&_n(t),scopeId:Jr,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:pt};return u?(Tn(p,o),i&128&&e.normalize(p)):o&&(p.shapeFlag|=Ue(o)?8:16),Js>0&&!a&&ft&&(p.patchFlag>0||i&6)&&p.patchFlag!==32&&ft.push(p),p}var De=lu;function lu(e,t=null,o=null,r=0,n=null,i=!1){if((!e||e===qd)&&(e=Ut),Rn(e)){let u=bs(e,t,!0);return o&&Tn(u,o),Js>0&&!i&&ft&&(u.shapeFlag&6?ft[ft.indexOf(e)]=u:ft.push(u)),u.patchFlag=-2,u}if(bu(e)&&(e=e.__vccOpts),t){t=du(t);let{class:u,style:p}=t;u&&!Ue(u)&&(t.class=O(u)),Ae(p)&&(zs(p)&&!Ee(p)&&(p=Ge({},p)),t.style=Ve(p))}let a=Ue(e)?1:Ei(e)?128:An(e)?64:Ae(e)?4:_e(e)?2:0;return s(e,t,o,r,n,a,i,!0)}function du(e){return e?zs(e)||fi(e)?Ge({},e):e:null}function bs(e,t,o=!1,r=!1){let{props:n,ref:i,patchFlag:a,children:u,transition:p}=e,h=t?uu(n||{},t):n,y={__v_isVNode:!0,__v_skip:!0,type:e.type,props:h,key:h&&Si(h),ref:t&&t.ref?o&&i?Ee(i)?i.concat(_n(t)):[i,_n(t)]:_n(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:u,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Y?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:p,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&bs(e.ssContent),ssFallback:e.ssFallback&&bs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return p&&r&&In(y,p.clone(y)),y}function v(e=" ",t=0){return De(Mn,null,e,t)}function ge(e,t){let o=De(Ks,null,e);return o.staticCount=t,o}function f(e="",t=!1){return t?(l(),ks(Ut,null,e)):De(Ut,null,e)}function At(e){return e==null||typeof e=="boolean"?De(Ut):Ee(e)?De(Y,null,e.slice()):Rn(e)?Ft(e):De(Mn,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:bs(e)}function Tn(e,t){let o=0,{shapeFlag:r}=e;if(t==null)t=null;else if(Ee(t))o=16;else if(typeof t=="object")if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Tn(e,n()),n._c&&(n._d=!0));return}else{o=32;let n=t._;!n&&!fi(t)?t._ctx=pt:n===3&&pt&&(pt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(_e(t)){if(r&65){Tn(e,{default:t});return}t={default:t,_ctx:pt},o=32}else t=String(t),r&64?(o=16,t=[v(t)]):o=8;e.children=t,e.shapeFlag|=o}function uu(...e){let t={};for(let o=0;oxe||pt,On,Qs;{let e=Os(),t=(o,r)=>{let n;return(n=e[o])||(n=e[o]=[]),n.push(r),i=>{n.length>1?n.forEach(a=>a(i)):n[0](i)}};On=t("__VUE_INSTANCE_SETTERS__",o=>xe=o),Qs=t("__VUE_SSR_SETTERS__",o=>ws=o)}var tn=e=>{let t=xe;return On(e),e.scope.on(),()=>{e.scope.off(),On(t)}},Ur=()=>{xe&&xe.scope.off(),On(null)};function Di(e){return e.vnode.shapeFlag&4}var ws=!1;function mu(e,t=!1,o=!1){t&&Qs(t);let{props:r,children:n}=e.vnode,i=Di(e);Xd(e,r,i,t),tu(e,n,o||t);let a=i?hu(e,t):void 0;return t&&Qs(!1),a}function hu(e,t){let o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Md);let{setup:r}=o;if(r){Dt();let n=e.setupContext=r.length>1?yu(e):null,i=tn(e),a=Xs(r,e,0,[e.props,n]),u=Zn(a);if(Rt(),i(),(u||e.sp)&&!js(e)&&Ro(e),u){if(a.then(Ur,Ur),t)return a.then(p=>{Qs(!0);try{zr(e,p,t)}finally{Qs(!1)}}).catch(p=>{Zs(p,e,0)});e.asyncDep=a}else zr(e,a,t)}else Ri(e,t)}function zr(e,t,o){_e(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ae(t)&&(e.setupState=wn(t)),Ri(e,o)}var Hr,Br;function Ri(e,t,o){let r=e.type;if(!e.render){if(!t&&Hr&&!r.render){let n=r.template||To(e).template;if(n){let{isCustomElement:i,compilerOptions:a}=e.appContext.config,{delimiters:u,compilerOptions:p}=r,h=Ge(Ge({isCustomElement:i,delimiters:u},a),p);r.render=Hr(n,h)}}e.render=r.render||rt,Br&&Br(e)}{let n=tn(e);Dt();try{$d(e)}finally{Rt(),n()}}}var vu={get(e,t){return Xe(e,"get",""),e[t]}};function yu(e){let t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,vu),slots:e.slots,emit:e.emit,expose:t}}function $n(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(wn(go(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Ws)return Ws[o](e)},has(t,o){return o in t||o in Ws}})):e.proxy}function gu(e,t=!0){return _e(e)?e.displayName||e.name:e.name||t&&e.__name}function bu(e){return _e(e)&&"__vccOpts"in e}var tt=(e,t)=>Nr(e,t,ws);function Ne(e,t,o){try{Dn(-1);let r=arguments.length;return r===2?Ae(t)&&!Ee(t)?Rn(t)?De(e,null,[t]):De(e,t):De(e,null,t):(r>3?o=Array.prototype.slice.call(arguments,2):r===3&&Rn(o)&&(o=[o]),De(e,t,o))}finally{Dn(1)}}var wu="3.5.42";var qo,Ti=typeof window<"u"&&window.trustedTypes;if(Ti)try{qo=Ti.createPolicy("vue",{createHTML:e=>e})}catch{}var Li=qo?e=>qo.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",_u="http://www.w3.org/1998/Math/MathML",Ht=typeof document<"u"?document:null,Oi=Ht&&Ht.createElement("template"),Eu={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,r)=>{let n=t==="svg"?Ht.createElementNS(ku,e):t==="mathml"?Ht.createElementNS(_u,e):o?Ht.createElement(e,{is:o}):Ht.createElement(e);return e==="select"&&r&&r.multiple!=null&&n.setAttribute("multiple",r.multiple),n},createText:e=>Ht.createTextNode(e),createComment:e=>Ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,r,n,i){let a=o?o.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),o),!(n===i||!(n=n.nextSibling)););else{Oi.innerHTML=Li(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);let u=Oi.content;if(r==="svg"||r==="mathml"){let p=u.firstChild;for(;p.firstChild;)u.appendChild(p.firstChild);u.removeChild(p)}t.insertBefore(u,o)}return[a?a.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}};var Cu=Symbol("_vtc");function Nu(e,t,o){let r=e[Cu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}var Fn=Symbol("_vod"),Fi=Symbol("_vsh"),G={name:"show",beforeMount(e,{value:t},{transition:o}){e[Fn]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):sn(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:r}){!t!=!o&&(r?t?(r.beforeEnter(e),sn(e,!0),r.enter(e)):r.leave(e,()=>{sn(e,!1)}):sn(e,t))},beforeUnmount(e,{value:t}){sn(e,t)}};function sn(e,t){e.style.display=t?e[Fn]:"none",e[Fi]=!t}var Su=Symbol("");var Du=/(?:^|;)\s*display\s*:/;function Ru(e,t,o){let r=e.style,n=Ue(o),i=!1;if(o&&!n){if(t)if(Ue(t))for(let a of t.split(";")){let u=a.slice(0,a.indexOf(":")).trim();o[u]==null&&nn(r,u,"")}else for(let a in t)o[a]==null&&nn(r,a,"");for(let a in o){a==="display"&&(i=!0);let u=o[a];u!=null?Ou(e,a,!Ue(t)&&t?t[a]:void 0,u)||nn(r,a,u):nn(r,a,"")}}else if(n){if(t!==o){let a=r[Su];a&&(o+=";"+a),r.cssText=o,i=Du.test(o)}}else t&&e.removeAttribute("style");Fn in e&&(e[Fn]=i?r.display:"",e[Fi]&&(r.display="none"))}var Ln=/\s*!important$/;function nn(e,t,o){if(Ee(o))o.forEach(r=>nn(e,t,r));else if(o==null&&(o=""),t.startsWith("--"))Ln.test(o)?e.setProperty(t,o.replace(Ln,""),"important"):e.setProperty(t,o);else{let r=Tu(e,t);Ln.test(o)?e.setProperty(qt(r),o.replace(Ln,""),"important"):e[r]=o}}var Ai=["Webkit","Moz","ms"],Vo={};function Tu(e,t){let o=Vo[t];if(o)return o;let r=Ke(t);if(r!=="filter"&&r in e)return Vo[t]=r;r=Yt(r);for(let n=0;nPo||($u.then(()=>Po=0),Po=Date.now());function Fu(e,t){let o=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=o.attached)return;let n=o.value;if(Ee(n)){let i=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{i.call(r),r._stopped=!0};let a=n.slice(),u=[r];for(let p=0;pe.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Uu=(e,t,o,r,n,i)=>{let a=n==="svg";t==="class"?Nu(e,r,a):t==="style"?Ru(e,o,r):us(t)?cs(t)||Vu(e,t,o,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):zu(e,t,r,a))?(Pi(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Vi(e,t,r,a,i,t!=="value")):e._isVueCE&&(Hu(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ue(r)))?Pi(e,Ke(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Vi(e,t,r,a))};function zu(e,t,o,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Mi(t)&&_e(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return Mi(t)&&Ue(o)?!1:t in e}function Hu(e,t){let o=e._def.props;if(!o)return!1;let r=Ke(t);return Array.isArray(o)?o.some(n=>Ke(n)===r):Object.keys(o).some(n=>Ke(n)===r)}var Bu=["ctrl","shift","alt","meta"],Gu={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Bu.some(o=>e[`${o}Key`]&&!t.includes(o))},ke=(e,t)=>{if(!e)return e;let o=e._withMods||(e._withMods={}),r=t.join(".");return o[r]||(o[r]=((n,...i)=>{for(let a=0;a{let t=Wu().createApp(...e),{mount:o}=t;return t.mount=r=>{let n=Yu(r);if(!n)return;let i=t._component;!_e(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");let a=o(n,!1,Ku(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),a},t});function Ku(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Yu(e){return Ue(e)?document.querySelector(e):e}var rs=typeof document<"u";function Hi(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Ju(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Hi(e.default)}var Pe=Object.assign;function Un(e,t){let o={};for(let r in t){let n=t[r];o[r]=gt(n)?n.map(e):e(n)}return o}var Es=()=>{},gt=Array.isArray;function Lo(e,t){let o={};for(let r in e)o[r]=r in t?t[r]:e[r];return o}var Bi=/#/g,Qu=/&/g,Xu=/\//g,Zu=/=/g,xu=/\?/g,Gi=/\+/g,ec=/%5B/g,tc=/%5D/g,ji=/%5E/g,sc=/%60/g,Wi=/%7B/g,nc=/%7C/g,Ki=/%7D/g,oc=/%20/g;function Fo(e){return e==null?"":encodeURI(""+e).replace(nc,"|").replace(ec,"[").replace(tc,"]")}function Yi(e){return Fo(e).replace(Wi,"{").replace(Ki,"}").replace(ji,"^")}function Mo(e){return Fo(e).replace(Gi,"%2B").replace(oc,"+").replace(Bi,"%23").replace(Qu,"%26").replace(sc,"`").replace(Wi,"{").replace(Ki,"}").replace(ji,"^")}function rc(e){return Mo(e).replace(Zu,"%3D")}function ic(e){return Fo(e).replace(Bi,"%23").replace(xu,"%3F")}function Ji(e){return ic(e).replace(Xu,"%2F")}function _s(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var ac=/\/$/,lc=e=>e.replace(ac,"");function zn(e,t,o="/"){let r,n={},i="",a="",u=t.indexOf("#"),p=t.indexOf("?");return p=u>=0&&p>u?-1:p,p>=0&&(r=t.slice(0,p),i=t.slice(p,u>0?u:t.length),n=e(i.slice(1))),u>=0&&(r=r||t.slice(0,u),a=t.slice(u,t.length)),r=uc(r??t,o),{fullPath:r+i+a,path:r,query:n,hash:_s(a)}}function Qi(e,t){let o=t.query?e(t.query):"";return t.path+(o&&"?")+o+(t.hash||"")}function Uo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Xi(e,t,o){let r=t.matched.length-1,n=o.matched.length-1;return r>-1&&r===n&&ns(t.matched[r],o.matched[n])&&zo(t.params,o.params)&&e(t.query)===e(o.query)&&t.hash===o.hash}function ns(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function zo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var o in e)if(!dc(e[o],t[o]))return!1;return!0}function dc(e,t){return gt(e)?zi(e,t):gt(t)?zi(t,e):e?.valueOf()===t?.valueOf()}function zi(e,t){return gt(t)?e.length===t.length&&e.every((o,r)=>o===t[r]):e.length===1&&e[0]===t}function uc(e,t){if(e.startsWith("/"))return e;if(!e)return t;let o=t.split("/"),r=e.split("/"),n=r[r.length-1];(n===".."||n===".")&&r.push("");let i=o.length-1,a,u;for(a=0;a1&&i--;else break;return o.slice(0,i).join("/")+"/"+r.slice(a).join("/")}var Gt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Hn=(function(e){return e.pop="pop",e.push="push",e})({}),Bn=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Zi(e){if(!e)if(rs){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),lc(e)}var cc=/^[^#]+#/;function xi(e,t){return e.replace(cc,"#")+t}function pc(e,t){let o=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-o.left-(t.left||0),top:r.top-o.top-(t.top||0)}}var on=()=>({left:window.scrollX,top:window.scrollY});function ea(e){let t;if("el"in e){let o=e.el,r=typeof o=="string"&&o.startsWith("#"),n=typeof o=="string"?r?document.getElementById(o.slice(1)):document.querySelector(o):o;if(!n)return;t=pc(n,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Ho(e,t){return(history.state?history.state.position-t:-1)+e}var $o=new Map;function ta(e,t){$o.set(e,t)}function sa(e){let t=$o.get(e);return $o.delete(e),t}function fc(e){return typeof e=="string"||e&&typeof e=="object"}function Bo(e){return typeof e=="string"||typeof e=="symbol"}var Be=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),na=Symbol("");var t5={[Be.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for ${JSON.stringify(e)}${t?` while being at -`+JSON.stringify(t):""}`},[Be.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${hc(t)}" via a navigation guard.`},[Be.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[Be.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[Be.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function os(e,t){return Pe(new Error,{type:e,[na]:!0},t)}function Vt(e,t){return e instanceof Error&&na in e&&(t==null||!!(e.type&t))}var mc=["params","query","hash"];function hc(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let o of mc)o in e&&(t[o]=e[o]);return JSON.stringify(t,null,2)}function oa(e){let t={};if(e===""||e==="?")return t;let o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rn&&Mo(n)):[r&&Mo(r)]).forEach(n=>{n!==void 0&&(t+=(t.length?"&":"")+o,n!=null&&(t+="="+n))})}return t}function ra(e){let t={};for(let o in e){let r=e[o];r!==void 0&&(t[o]=gt(r)?r.map(n=>n==null?null:""+n):r==null?r:""+r)}return t}var ia=Symbol(""),jo=Symbol(""),Gn=Symbol(""),jn=Symbol(""),Wn=Symbol("");function Cs(){let e=[];function t(r){return e.push(r),()=>{let n=e.indexOf(r);n>-1&&e.splice(n,1)}}function o(){e=[]}return{add:t,list:()=>e.slice(),reset:o}}function Bt(e,t,o,r,n,i=a=>a()){let a=r&&(r.enterCallbacks[n]=r.enterCallbacks[n]||[]);return()=>new Promise((u,p)=>{let h=f=>{f===!1?p(os(Be.NAVIGATION_ABORTED,{from:o,to:t})):f instanceof Error?p(f):fc(f)?p(os(Be.NAVIGATION_GUARD_REDIRECT,{from:t,to:f})):(a&&r.enterCallbacks[n]===a&&typeof f=="function"&&a.push(f),u())},v=i(()=>e.call(r&&r.instances[n],t,o,h)),g=Promise.resolve(v);e.length<3&&(g=g.then(h)),g.catch(f=>p(f))})}function Kn(e,t,o,r,n=i=>i()){let i=[];for(let a of e)for(let u in a.components){let p=a.components[u];if(!(t!=="beforeRouteEnter"&&!a.instances[u]))if(Hi(p)){let h=(p.__vccOpts||p)[t];h&&i.push(Bt(h,o,r,a,u,n))}else{let h=p();i.push(()=>h.then(v=>{if(!v)throw new Error(`Couldn't resolve component "${u}" at "${a.path}"`);let g=Ju(v)?v.default:v;a.mods[u]=v,a.components[u]=g;let f=(g.__vccOpts||g)[t];return f&&Bt(f,o,r,a,u,n)()}))}}return i}function aa(e,t){let o=[],r=[],n=[],i=Math.max(t.matched.length,e.matched.length);for(let a=0;ans(h,u))?r.push(u):o.push(u));let p=e.matched[a];p&&(t.matched.find(h=>ns(h,p))||n.push(p))}return[o,r,n]}var vc=()=>location.protocol+"//"+location.host;function ga(e,t){let{pathname:o,search:r,hash:n}=t,i=e.indexOf("#");if(i>-1){let a=n.includes(e.slice(i))?e.slice(i).length:1,u=n.slice(a);return u[0]!=="/"&&(u="/"+u),Uo(u,"")}return Uo(o,e)+r+n}function yc(e,t,o,r){let n=[],i=[],a=null,u=({state:f})=>{let w=ga(e,location),k=o.value,b=t.value,T=0;if(f){if(o.value=w,t.value=f,a&&a===k){a=null;return}T=b?f.position-b.position:0}else r(w);n.forEach(N=>{N(o.value,k,{delta:T,type:Hn.pop,direction:T?T>0?Bn.forward:Bn.back:Bn.unknown})})};function p(){a=o.value}function h(f){n.push(f);let w=()=>{let k=n.indexOf(f);k>-1&&n.splice(k,1)};return i.push(w),w}function v(){if(document.visibilityState==="hidden"){let{history:f}=window;if(!f.state)return;f.replaceState(Pe({},f.state,{scroll:on()}),"")}}function g(){for(let f of i)f();i=[],window.removeEventListener("popstate",u),window.removeEventListener("pagehide",v),document.removeEventListener("visibilitychange",v)}return window.addEventListener("popstate",u),window.addEventListener("pagehide",v),document.addEventListener("visibilitychange",v),{pauseListeners:p,listen:h,destroy:g}}function la(e,t,o,r=!1,n=!1){return{back:e,current:t,forward:o,replaced:r,position:window.history.length,scroll:n?on():null}}function gc(e){let{history:t,location:o}=window,r={value:ga(e,o)},n={value:t.state};n.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(p,h,v){let g=e.indexOf("#"),f=g>-1?(o.host&&document.querySelector("base")?e:e.slice(g))+p:vc()+e+p;try{t[v?"replaceState":"pushState"](h,"",f),n.value=h}catch(w){console.error(w),o[v?"replace":"assign"](f)}}function a(p,h){i(p,Pe({},t.state,la(n.value.back,p,n.value.forward,!0),h,{position:n.value.position}),!0),r.value=p}function u(p,h){let v=Pe({},n.value,t.state,{forward:p,scroll:on()});i(v.current,v,!0),i(p,Pe({},la(r.value,p,null),{position:v.position+1},h),!1),r.value=p}return{location:r,state:n,push:u,replace:a}}function ba(e){e=xi(e);let t=gc(e),o=yc(e,t.state,t.location,t.replace);function r(i,a=!0){a||o.pauseListeners(),history.go(i)}let n=Pe({location:"",base:e,go:r,createHref:Zi.bind(null,e)},t,o);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>t.state.value}),n}var is=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),Je=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Je||{}),bc={type:is.Static,value:""},wc=/[a-zA-Z0-9_]/;function kc(e){if(!e)return[[]];if(e==="/")return[[bc]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(w){throw new Error(`ERR (${o})/"${h}": ${w}`)}let o=Je.Static,r=o,n=[],i;function a(){i&&n.push(i),i=[]}let u=0,p,h="",v="";function g(){h&&(o===Je.Static?i.push({type:is.Static,value:h}):o===Je.Param||o===Je.ParamRegExp||o===Je.ParamRegExpEnd?(i.length>1&&(p==="*"||p==="+")&&t(`A repeatable param (${h}) must be alone in its segment. eg: '/:ids+.`),i.push({type:is.Param,value:h,regexp:v,repeatable:p==="*"||p==="+",optional:p==="*"||p==="?"})):t("Invalid state to consume buffer"),h="")}function f(){h+=p}for(;ut.length?t.length===1&&t[0]===ot.Static+ot.Segment?1:-1:0}function wa(e,t){let o=0,r=e.score,n=t.score;for(;o0&&t[t.length-1]<0}var Sc={strict:!1,end:!0,sensitive:!1};function Dc(e,t,o){let r=Cc(kc(e.path),o),n=Pe(r,{record:e,parent:t,children:[],alias:[]});return t&&!n.record.aliasOf==!t.record.aliasOf&&t.children.push(n),n}function Rc(e,t){let o=[],r=new Map;t=Lo(Sc,t);function n(g){return r.get(g)}function i(g,f,w){let k=!w,b=pa(g);b.aliasOf=w&&w.record;let T=Lo(t,g),N=[b];if("alias"in g){let C=typeof g.alias=="string"?[g.alias]:g.alias;for(let A of C)N.push(pa(Pe({},b,{components:w?w.record.components:b.components,path:A,aliasOf:w?w.record:b})))}let D,I;for(let C of N){let{path:A}=C;if(f&&A[0]!=="/"){let q=f.record.path,Z=q[q.length-1]==="/"?"":"/";C.path=f.record.path+(A&&Z+A)}if(D=Dc(C,f,T),w?w.alias.push(D):(I=I||D,I!==D&&I.alias.push(D),k&&g.name&&!fa(D)&&a(g.name)),ka(D)&&p(D),b.children){let q=b.children;for(let Z=0;Z{a(I)}:Es}function a(g){if(Bo(g)){let f=r.get(g);f&&(r.delete(g),o.splice(o.indexOf(f),1),f.children.forEach(a),f.alias.forEach(a))}else{let f=o.indexOf(g);f>-1&&(o.splice(f,1),g.record.name&&r.delete(g.record.name),g.children.forEach(a),g.alias.forEach(a))}}function u(){return o}function p(g){let f=Ac(g,o);o.splice(f,0,g),g.record.name&&!fa(g)&&r.set(g.record.name,g)}function h(g,f){let w,k={},b,T;if("name"in g&&g.name){if(w=r.get(g.name),!w)throw os(Be.MATCHER_NOT_FOUND,{location:g});T=w.record.name,k=Pe(ca(f.params,w.keys.filter(I=>!I.optional).concat(w.parent?w.parent.keys.filter(I=>I.optional):[]).map(I=>I.name)),g.params&&ca(g.params,w.keys.map(I=>I.name))),b=w.stringify(k)}else if(g.path!=null)b=g.path,w=o.find(I=>I.re.test(b)),w&&(k=w.parse(b),T=w.record.name);else{if(w=f.name?r.get(f.name):o.find(I=>I.re.test(f.path)),!w)throw os(Be.MATCHER_NOT_FOUND,{location:g,currentLocation:f});T=w.record.name,k=Pe({},f.params,g.params),b=w.stringify(k)}let N=[],D=w;for(;D;)N.unshift(D.record),D=D.parent;return{name:T,path:b,params:k,matched:N,meta:Oc(N)}}e.forEach(g=>i(g));function v(){o.length=0,r.clear()}return{addRoute:i,resolve:h,removeRoute:a,clearRoutes:v,getRoutes:u,getRecordMatcher:n}}function ca(e,t){let o={};for(let r of t)r in e&&(o[r]=e[r]);return o}function pa(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Tc(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Tc(e){let t={},o=e.props||!1;if("component"in e)t.default=o;else for(let r in e.components)t[r]=typeof o=="object"?o[r]:o;return t}function fa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Oc(e){return e.reduce((t,o)=>Pe(t,o.meta),{})}function Ac(e,t){let o=0,r=t.length;for(;o!==r;){let i=o+r>>1;wa(e,t[i])<0?r=i:o=i+1}let n=Ic(e);return n&&(r=t.lastIndexOf(n,r-1)),r}function Ic(e){let t=e;for(;t=t.parent;)if(ka(t)&&wa(e,t)===0)return t}function ka({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ma(e){let t=lt(Gn),o=lt(jn),r=!1,n=null,i=tt(()=>{let v=Lt(e.to);return t.resolve(v)}),a=tt(()=>{let{matched:v}=i.value,{length:g}=v,f=v[g-1],w=o.matched;if(!f||!w.length)return-1;let k=w.findIndex(ns.bind(null,f));if(k>-1)return k;let b=ha(v[g-2]);return g>1&&ha(f)===b&&w[w.length-1].path!==b?w.findIndex(ns.bind(null,v[g-2])):k}),u=tt(()=>a.value>-1&&$c(o.params,i.value.params)),p=tt(()=>a.value>-1&&a.value===o.matched.length-1&&zo(o.params,i.value.params));function h(v={}){if(Mc(v)){let g=t[Lt(e.replace)?"replace":"push"](Lt(e.to)).catch(Es);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>g),g}return Promise.resolve()}return{route:i,href:tt(()=>i.value.href),isActive:u,isExactActive:p,navigate:h}}function Vc(e){return e.length===1?e[0]:e}var Pc=Zs({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ma,setup(e,{slots:t}){let o=ze(ma(e)),{options:r}=lt(Gn),n=tt(()=>({[va(e.activeClass,r.linkActiveClass,"router-link-active")]:o.isActive,[va(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:o.isExactActive}));return()=>{let i=t.default&&Vc(t.default(o));return e.custom?i:Ne("a",{"aria-current":o.isExactActive?e.ariaCurrentValue:null,href:o.href,onClick:o.navigate,class:n.value},i)}}}),qc=Pc;function Mc(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function $c(e,t){for(let o in t){let r=t[o],n=e[o];if(typeof r=="string"){if(r!==n)return!1}else if(!gt(n)||n.length!==r.length||r.some((i,a)=>i.valueOf()!==n[a].valueOf()))return!1}return!0}function ha(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var va=(e,t,o)=>e??t??o,Lc=Zs({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:o}){let r=lt(Wn),n=tt(()=>e.route||r.value),i=lt(jo,0),a=tt(()=>{let h=Lt(i),{matched:v}=n.value,g;for(;(g=v[h])&&!g.components;)h++;return h}),u=tt(()=>n.value.matched[a.value]);ts(jo,tt(()=>a.value+1)),ts(ia,u),ts(Wn,n);let p=xe();return He(()=>[p.value,u.value,e.name],([h,v,g],[f,w,k])=>{v&&(v.instances[g]=h,w&&w!==v&&h&&h===f&&(v.leaveGuards.size||(v.leaveGuards=w.leaveGuards),v.updateGuards.size||(v.updateGuards=w.updateGuards))),h&&v&&(!w||!ns(v,w)||!f)&&(v.enterCallbacks[g]||[]).forEach(b=>b(h))},{flush:"post"}),()=>{let h=n.value,v=e.name,g=u.value,f=g&&g.components[v];if(!f)return ya(o.default,{Component:f,route:h});let w=g.props[v],k=w?w===!0?h.params:typeof w=="function"?w(h):w:null,T=Ne(f,Pe({},k,t,{onVnodeUnmounted:N=>{N.component.isUnmounted&&(g.instances[v]=null)},ref:p}));return ya(o.default,{Component:T,route:h})||T}}});function ya(e,t){if(!e)return null;let o=e(t);return o.length===1?o[0]:o}var Wo=Lc;function _a(e){let t=Rc(e.routes,e),o=e.parseQuery||oa,r=e.stringifyQuery||Go,n=e.history,i=Cs(),a=Cs(),u=Cs(),p=bn(Gt),h=Gt;rs&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let v=Un.bind(null,L=>""+L),g=Un.bind(null,Ji),f=Un.bind(null,_s);function w(L,ne){let F,W;return Bo(L)?(F=t.getRecordMatcher(L),W=ne):W=L,t.addRoute(W,F)}function k(L){let ne=t.getRecordMatcher(L);ne&&t.removeRoute(ne)}function b(){return t.getRoutes().map(L=>L.record)}function T(L){return!!t.getRecordMatcher(L)}function N(L,ne){if(ne=Pe({},ne||p.value),typeof L=="string"){let _=zn(o,L,ne.path),S=t.resolve({path:_.path},ne),P=n.createHref(_.fullPath);return Pe(_,S,{params:f(S.params),hash:_s(_.hash),redirectedFrom:void 0,href:P})}let F;if(L.path!=null)F=Pe({},L,{path:zn(o,L.path,ne.path).path});else{let _=Pe({},L.params);for(let S in _)_[S]==null&&delete _[S];F=Pe({},L,{params:g(_)}),ne.params=g(ne.params)}let W=t.resolve(F,ne),fe=L.hash||"";W.params=v(f(W.params));let Ce=Qi(r,Pe({},L,{hash:Yi(fe),path:W.path})),ce=n.createHref(Ce);return Pe({fullPath:Ce,hash:fe,query:r===Go?ra(L.query):L.query||{}},W,{redirectedFrom:void 0,href:ce})}function D(L){return typeof L=="string"?zn(o,L,p.value.path):Pe({},L)}function I(L,ne){if(h!==L)return os(Be.NAVIGATION_CANCELLED,{from:ne,to:L})}function C(L){return Z(L)}function A(L){return C(Pe(D(L),{replace:!0}))}function q(L,ne){let F=L.matched[L.matched.length-1];if(F&&F.redirect){let{redirect:W}=F,fe=typeof W=="function"?W(L,ne):W;return typeof fe=="string"&&(fe=fe.includes("?")||fe.includes("#")?fe=D(fe):{path:fe},fe.params={}),Pe({query:L.query,hash:L.hash,params:fe.path!=null?{}:L.params},fe)}}function Z(L,ne){let F=h=N(L),W=p.value,fe=L.state,Ce=L.force,ce=L.replace===!0,_=q(F,W);if(_)return Z(Pe(D(_),{state:typeof _=="object"?Pe({},fe,_.state):fe,force:Ce,replace:ce}),ne||F);let S=F;S.redirectedFrom=ne;let P;return!Ce&&Xi(r,W,F)&&(P=os(Be.NAVIGATION_DUPLICATED,{to:S,from:W}),R(W,W,!0,!1)),(P?Promise.resolve(P):U(S,W)).catch(z=>Vt(z)?Vt(z,Be.NAVIGATION_GUARD_REDIRECT)?z:Se(z):le(z,S,W)).then(z=>{if(z){if(Vt(z,Be.NAVIGATION_GUARD_REDIRECT))return Z(Pe({replace:ce},D(z.to),{state:typeof z.to=="object"?Pe({},fe,z.to.state):fe,force:Ce}),ne||S)}else z=te(S,W,!0,ce,fe);return ue(S,W,z),z})}function X(L,ne){let F=I(L,ne);return F?Promise.reject(F):Promise.resolve()}function K(L){let ne=se.values().next().value;return ne&&typeof ne.runWithContext=="function"?ne.runWithContext(L):L()}function U(L,ne){let F,[W,fe,Ce]=aa(L,ne);F=Kn(W.reverse(),"beforeRouteLeave",L,ne);for(let _ of W)_.leaveGuards.forEach(S=>{F.push(Bt(S,L,ne))});let ce=X.bind(null,L,ne);return F.push(ce),qe(F).then(()=>{F=[];for(let _ of i.list())F.push(Bt(_,L,ne));return F.push(ce),qe(F)}).then(()=>{F=Kn(fe,"beforeRouteUpdate",L,ne);for(let _ of fe)_.updateGuards.forEach(S=>{F.push(Bt(S,L,ne))});return F.push(ce),qe(F)}).then(()=>{F=[];for(let _ of Ce)if(_.beforeEnter)if(gt(_.beforeEnter))for(let S of _.beforeEnter)F.push(Bt(S,L,ne));else F.push(Bt(_.beforeEnter,L,ne));return F.push(ce),qe(F)}).then(()=>(L.matched.forEach(_=>_.enterCallbacks={}),F=Kn(Ce,"beforeRouteEnter",L,ne,K),F.push(ce),qe(F))).then(()=>{F=[];for(let _ of a.list())F.push(Bt(_,L,ne));return F.push(ce),qe(F)}).catch(_=>Vt(_,Be.NAVIGATION_CANCELLED)?_:Promise.reject(_))}function ue(L,ne,F){u.list().forEach(W=>K(()=>W(L,ne,F)))}function te(L,ne,F,W,fe){let Ce=I(L,ne);if(Ce)return Ce;let ce=ne===Gt,_=rs?history.state:{};F&&(W||ce?n.replace(L.fullPath,Pe({scroll:ce&&_&&_.scroll},fe)):n.push(L.fullPath,fe)),p.value=L,R(L,ne,F,ce),Se()}let re;function pe(){re||(re=n.listen((L,ne,F)=>{if(!ie.listening)return;let W=N(L),fe=q(W,ie.currentRoute.value);if(fe){Z(Pe(fe,{replace:!0,force:!0}),W).catch(Es);return}h=W;let Ce=p.value;rs&&ta(Ho(Ce.fullPath,F.delta),on()),U(W,Ce).catch(ce=>Vt(ce,Be.NAVIGATION_ABORTED|Be.NAVIGATION_CANCELLED)?ce:Vt(ce,Be.NAVIGATION_GUARD_REDIRECT)?(Z(Pe(D(ce.to),{force:!0}),W).then(_=>{Vt(_,Be.NAVIGATION_ABORTED|Be.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===Hn.pop&&n.go(-1,!1)}).catch(Es),Promise.reject()):(F.delta&&n.go(-F.delta,!1),le(ce,W,Ce))).then(ce=>{ce=ce||te(W,Ce,!1),ce&&(F.delta&&!Vt(ce,Be.NAVIGATION_CANCELLED)?n.go(-F.delta,!1):F.type===Hn.pop&&Vt(ce,Be.NAVIGATION_ABORTED|Be.NAVIGATION_DUPLICATED)&&n.go(-1,!1)),ue(W,Ce,ce)}).catch(Es)}))}let me=Cs(),be=Cs(),he;function le(L,ne,F){Se(L);let W=be.list();return W.length?W.forEach(fe=>fe(L,ne,F)):console.error(L),Promise.reject(L)}function Ie(){return he&&p.value!==Gt?Promise.resolve():new Promise((L,ne)=>{me.add([L,ne])})}function Se(L){return he||(he=!L,pe(),me.list().forEach(([ne,F])=>L?F(L):ne()),me.reset()),L}function R(L,ne,F,W){let{scrollBehavior:fe}=e;if(!rs||!fe)return Promise.resolve();let Ce=!F&&sa(Ho(L.fullPath,0))||(W||!F)&&history.state&&history.state.scroll||null;return _t().then(()=>fe(L,ne,Ce)).then(ce=>ce&&ea(ce)).catch(ce=>le(ce,L,ne))}let V=L=>n.go(L),H,se=new Set,ie={currentRoute:p,listening:!0,addRoute:w,removeRoute:k,clearRoutes:t.clearRoutes,hasRoute:T,getRoutes:b,resolve:N,options:e,push:C,replace:A,go:V,back:()=>V(-1),forward:()=>V(1),beforeEach:i.add,beforeResolve:a.add,afterEach:u.add,onError:be.add,isReady:Ie,install(L){L.component("RouterLink",qc),L.component("RouterView",Wo),L.config.globalProperties.$router=ie,Object.defineProperty(L.config.globalProperties,"$route",{enumerable:!0,get:()=>Lt(p)}),rs&&!H&&p.value===Gt&&(H=!0,C(n.location).catch(W=>{}));let ne={};for(let W in Gt)Object.defineProperty(ne,W,{get:()=>p.value[W],enumerable:!0});L.provide(Gn,ie),L.provide(jn,Us(ne)),L.provide(Wn,p);let F=L.unmount;se.add(L),L.unmount=function(){se.delete(L),se.size<1&&(h=Gt,re&&re(),re=null,p.value=Gt,H=!1,he=!1),F()}}};function qe(L){return L.reduce((ne,F)=>ne.then(()=>K(F)),Promise.resolve())}return ie}function Ea(e){return lt(jn)}function Ca(e,t){return t?.split(".").reduce((o,r)=>o?.[r],e)}function Ko(e=null,t=new Map){let o=ze({}),r=[],n=!1,i=new Proxy(o,{get(a,u){return typeof u=="string"&&u.startsWith("__v_")||Reflect.has(a,u)?Reflect.get(a,u):e?.[u]}});return Object.defineProperty(o,"parent",{value:e,configurable:!0}),Object.defineProperty(o,"viewState",{get:()=>i}),i.watch=(a,u,p=!1)=>{let h=typeof a=="function"?()=>a(i):()=>Ca(i,a),v=He(h,u,{deep:p,flush:"post"});return r.push(v),_t(()=>{n||u(h(),h())}),v},i.watchGroup=(a,u)=>i.watch(()=>a.map(p=>Ca(i,p)),u,!0),i.on=(a,u)=>{if(a==="dispose")return r.push(u),()=>{};t.has(a)||t.set(a,new Set),t.get(a).add(u);let p=()=>t.get(a)?.delete(u);return r.push(p),p},i.emit=(a,...u)=>{for(let p of[...t.get(a)||[]])p({},...u)},i.dispose=()=>{n=!0,r.splice(0).reverse().forEach(a=>a())},Ls(i.dispose),i}function mt(){let e=new Set,t=new Set,o=!1,r=(i,a=0)=>{if(o)return;let u=setTimeout(()=>{e.delete(u),i()},a);return e.add(u),u};r.cancel=i=>{clearTimeout(i),e.delete(i)};let n=(i,a)=>{if(o)return;let u=setInterval(i,a);return t.add(u),u};return n.cancel=i=>{clearInterval(i),t.delete(i)},Ls(()=>{o=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:r,interval:n}}function as(){let e=[];return Ls(()=>e.forEach(t=>t())),(t,o,r,n)=>{t.addEventListener(o,r,n),e.push(()=>t.removeEventListener(o,r,n))}}var Na=function(e,t,o,r){e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(p){let h=e.toasts.indexOf(p);h!==-1&&e.toasts.splice(h,1)},e.addToast=function(p){return e.toasts.push(p),r(function(){e.removeToast(p)},8e3),p},e.path=o.url(),e.paths=o.path().substring(1).split("/"),e.darkMode=function(p){localStorage.setItem("darkMode",p),e.isDarkMode=p;let h="/css/prism-okaidia.css",v="/css/prism.css";if(p){$("body").addClass("dark-mode");let f=document.createElement("link");f.href=h,f.rel="stylesheet",document.head.append(f),$(`link[href='${v}']`).remove()}else{$("body").removeClass("dark-mode");let f=document.createElement("link");f.href=v,f.rel="stylesheet",document.head.append(f),$(`link[href='${h}']`).remove()}var g=document.querySelector(".floatingchat-container-wrap-mo498 .floating-chat-kofi-text-container-wrap");g&&(g.style.backgroundColor=p?"#FAF9F6":"#1A1815",g.style.color=p?"#1A1815":"#FAF9F6"),e.emit("dark-mode",p)},e.darkMode(localStorage.getItem("darkMode")=="true");function n(){t.get("/api/user").then(p=>{p&&(e.user=p.data)},()=>{e.user=null})}n();function i(){t.get("/api/options").then(p=>{p&&(e.site_options=p.data)},()=>{e.site_options=null})}i();function a(){t.get("/api/message").then(p=>{p&&(e.generalMessage=p.data)},()=>{e.generalMessage=null})}a();function u(p,h){h&&(e.title=h.title),e.path=o.url(),e.paths=o.path().substring(1).split("/")}e.on("routeChange",u),e.on("routeUpdate",u)},Sa=function(e,t){let o=as()},Da=function(e,t,o,r,n){e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,n.load().then(u=>{e.quota=u},console.error);function i(){t.get("/api/user/default").then(u=>{let p=u.data||{};p.terms&&(e.terms=p.terms.join(` +`+JSON.stringify(t):""}`},[Be.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${hc(t)}" via a navigation guard.`},[Be.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[Be.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[Be.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function os(e,t){return Pe(new Error,{type:e,[na]:!0},t)}function Vt(e,t){return e instanceof Error&&na in e&&(t==null||!!(e.type&t))}var mc=["params","query","hash"];function hc(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let o of mc)o in e&&(t[o]=e[o]);return JSON.stringify(t,null,2)}function oa(e){let t={};if(e===""||e==="?")return t;let o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rn&&Mo(n)):[r&&Mo(r)]).forEach(n=>{n!==void 0&&(t+=(t.length?"&":"")+o,n!=null&&(t+="="+n))})}return t}function ra(e){let t={};for(let o in e){let r=e[o];r!==void 0&&(t[o]=gt(r)?r.map(n=>n==null?null:""+n):r==null?r:""+r)}return t}var ia=Symbol(""),jo=Symbol(""),Gn=Symbol(""),jn=Symbol(""),Wn=Symbol("");function Cs(){let e=[];function t(r){return e.push(r),()=>{let n=e.indexOf(r);n>-1&&e.splice(n,1)}}function o(){e=[]}return{add:t,list:()=>e.slice(),reset:o}}function Bt(e,t,o,r,n,i=a=>a()){let a=r&&(r.enterCallbacks[n]=r.enterCallbacks[n]||[]);return()=>new Promise((u,p)=>{let h=m=>{m===!1?p(os(Be.NAVIGATION_ABORTED,{from:o,to:t})):m instanceof Error?p(m):fc(m)?p(os(Be.NAVIGATION_GUARD_REDIRECT,{from:t,to:m})):(a&&r.enterCallbacks[n]===a&&typeof m=="function"&&a.push(m),u())},y=i(()=>e.call(r&&r.instances[n],t,o,h)),g=Promise.resolve(y);e.length<3&&(g=g.then(h)),g.catch(m=>p(m))})}function Kn(e,t,o,r,n=i=>i()){let i=[];for(let a of e)for(let u in a.components){let p=a.components[u];if(!(t!=="beforeRouteEnter"&&!a.instances[u]))if(Hi(p)){let h=(p.__vccOpts||p)[t];h&&i.push(Bt(h,o,r,a,u,n))}else{let h=p();i.push(()=>h.then(y=>{if(!y)throw new Error(`Couldn't resolve component "${u}" at "${a.path}"`);let g=Ju(y)?y.default:y;a.mods[u]=y,a.components[u]=g;let m=(g.__vccOpts||g)[t];return m&&Bt(m,o,r,a,u,n)()}))}}return i}function aa(e,t){let o=[],r=[],n=[],i=Math.max(t.matched.length,e.matched.length);for(let a=0;ans(h,u))?r.push(u):o.push(u));let p=e.matched[a];p&&(t.matched.find(h=>ns(h,p))||n.push(p))}return[o,r,n]}var vc=()=>location.protocol+"//"+location.host;function ga(e,t){let{pathname:o,search:r,hash:n}=t,i=e.indexOf("#");if(i>-1){let a=n.includes(e.slice(i))?e.slice(i).length:1,u=n.slice(a);return u[0]!=="/"&&(u="/"+u),Uo(u,"")}return Uo(o,e)+r+n}function yc(e,t,o,r){let n=[],i=[],a=null,u=({state:m})=>{let w=ga(e,location),k=o.value,b=t.value,T=0;if(m){if(o.value=w,t.value=m,a&&a===k){a=null;return}T=b?m.position-b.position:0}else r(w);n.forEach(N=>{N(o.value,k,{delta:T,type:Hn.pop,direction:T?T>0?Bn.forward:Bn.back:Bn.unknown})})};function p(){a=o.value}function h(m){n.push(m);let w=()=>{let k=n.indexOf(m);k>-1&&n.splice(k,1)};return i.push(w),w}function y(){if(document.visibilityState==="hidden"){let{history:m}=window;if(!m.state)return;m.replaceState(Pe({},m.state,{scroll:on()}),"")}}function g(){for(let m of i)m();i=[],window.removeEventListener("popstate",u),window.removeEventListener("pagehide",y),document.removeEventListener("visibilitychange",y)}return window.addEventListener("popstate",u),window.addEventListener("pagehide",y),document.addEventListener("visibilitychange",y),{pauseListeners:p,listen:h,destroy:g}}function la(e,t,o,r=!1,n=!1){return{back:e,current:t,forward:o,replaced:r,position:window.history.length,scroll:n?on():null}}function gc(e){let{history:t,location:o}=window,r={value:ga(e,o)},n={value:t.state};n.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(p,h,y){let g=e.indexOf("#"),m=g>-1?(o.host&&document.querySelector("base")?e:e.slice(g))+p:vc()+e+p;try{t[y?"replaceState":"pushState"](h,"",m),n.value=h}catch(w){console.error(w),o[y?"replace":"assign"](m)}}function a(p,h){i(p,Pe({},t.state,la(n.value.back,p,n.value.forward,!0),h,{position:n.value.position}),!0),r.value=p}function u(p,h){let y=Pe({},n.value,t.state,{forward:p,scroll:on()});i(y.current,y,!0),i(p,Pe({},la(r.value,p,null),{position:y.position+1},h),!1),r.value=p}return{location:r,state:n,push:u,replace:a}}function ba(e){e=Zi(e);let t=gc(e),o=yc(e,t.state,t.location,t.replace);function r(i,a=!0){a||o.pauseListeners(),history.go(i)}let n=Pe({location:"",base:e,go:r,createHref:xi.bind(null,e)},t,o);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>t.state.value}),n}var is=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),Je=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Je||{}),bc={type:is.Static,value:""},wc=/[a-zA-Z0-9_]/;function kc(e){if(!e)return[[]];if(e==="/")return[[bc]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(w){throw new Error(`ERR (${o})/"${h}": ${w}`)}let o=Je.Static,r=o,n=[],i;function a(){i&&n.push(i),i=[]}let u=0,p,h="",y="";function g(){h&&(o===Je.Static?i.push({type:is.Static,value:h}):o===Je.Param||o===Je.ParamRegExp||o===Je.ParamRegExpEnd?(i.length>1&&(p==="*"||p==="+")&&t(`A repeatable param (${h}) must be alone in its segment. eg: '/:ids+.`),i.push({type:is.Param,value:h,regexp:y,repeatable:p==="*"||p==="+",optional:p==="*"||p==="?"})):t("Invalid state to consume buffer"),h="")}function m(){h+=p}for(;ut.length?t.length===1&&t[0]===ot.Static+ot.Segment?1:-1:0}function wa(e,t){let o=0,r=e.score,n=t.score;for(;o0&&t[t.length-1]<0}var Sc={strict:!1,end:!0,sensitive:!1};function Dc(e,t,o){let r=Cc(kc(e.path),o),n=Pe(r,{record:e,parent:t,children:[],alias:[]});return t&&!n.record.aliasOf==!t.record.aliasOf&&t.children.push(n),n}function Rc(e,t){let o=[],r=new Map;t=Lo(Sc,t);function n(g){return r.get(g)}function i(g,m,w){let k=!w,b=pa(g);b.aliasOf=w&&w.record;let T=Lo(t,g),N=[b];if("alias"in g){let C=typeof g.alias=="string"?[g.alias]:g.alias;for(let A of C)N.push(pa(Pe({},b,{components:w?w.record.components:b.components,path:A,aliasOf:w?w.record:b})))}let R,I;for(let C of N){let{path:A}=C;if(m&&A[0]!=="/"){let q=m.record.path,x=q[q.length-1]==="/"?"":"/";C.path=m.record.path+(A&&x+A)}if(R=Dc(C,m,T),w?w.alias.push(R):(I=I||R,I!==R&&I.alias.push(R),k&&g.name&&!fa(R)&&a(g.name)),ka(R)&&p(R),b.children){let q=b.children;for(let x=0;x{a(I)}:Es}function a(g){if(Bo(g)){let m=r.get(g);m&&(r.delete(g),o.splice(o.indexOf(m),1),m.children.forEach(a),m.alias.forEach(a))}else{let m=o.indexOf(g);m>-1&&(o.splice(m,1),g.record.name&&r.delete(g.record.name),g.children.forEach(a),g.alias.forEach(a))}}function u(){return o}function p(g){let m=Ac(g,o);o.splice(m,0,g),g.record.name&&!fa(g)&&r.set(g.record.name,g)}function h(g,m){let w,k={},b,T;if("name"in g&&g.name){if(w=r.get(g.name),!w)throw os(Be.MATCHER_NOT_FOUND,{location:g});T=w.record.name,k=Pe(ca(m.params,w.keys.filter(I=>!I.optional).concat(w.parent?w.parent.keys.filter(I=>I.optional):[]).map(I=>I.name)),g.params&&ca(g.params,w.keys.map(I=>I.name))),b=w.stringify(k)}else if(g.path!=null)b=g.path,w=o.find(I=>I.re.test(b)),w&&(k=w.parse(b),T=w.record.name);else{if(w=m.name?r.get(m.name):o.find(I=>I.re.test(m.path)),!w)throw os(Be.MATCHER_NOT_FOUND,{location:g,currentLocation:m});T=w.record.name,k=Pe({},m.params,g.params),b=w.stringify(k)}let N=[],R=w;for(;R;)N.unshift(R.record),R=R.parent;return{name:T,path:b,params:k,matched:N,meta:Oc(N)}}e.forEach(g=>i(g));function y(){o.length=0,r.clear()}return{addRoute:i,resolve:h,removeRoute:a,clearRoutes:y,getRoutes:u,getRecordMatcher:n}}function ca(e,t){let o={};for(let r of t)r in e&&(o[r]=e[r]);return o}function pa(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Tc(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Tc(e){let t={},o=e.props||!1;if("component"in e)t.default=o;else for(let r in e.components)t[r]=typeof o=="object"?o[r]:o;return t}function fa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Oc(e){return e.reduce((t,o)=>Pe(t,o.meta),{})}function Ac(e,t){let o=0,r=t.length;for(;o!==r;){let i=o+r>>1;wa(e,t[i])<0?r=i:o=i+1}let n=Ic(e);return n&&(r=t.lastIndexOf(n,r-1)),r}function Ic(e){let t=e;for(;t=t.parent;)if(ka(t)&&wa(e,t)===0)return t}function ka({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ma(e){let t=lt(Gn),o=lt(jn),r=!1,n=null,i=tt(()=>{let y=Lt(e.to);return t.resolve(y)}),a=tt(()=>{let{matched:y}=i.value,{length:g}=y,m=y[g-1],w=o.matched;if(!m||!w.length)return-1;let k=w.findIndex(ns.bind(null,m));if(k>-1)return k;let b=ha(y[g-2]);return g>1&&ha(m)===b&&w[w.length-1].path!==b?w.findIndex(ns.bind(null,y[g-2])):k}),u=tt(()=>a.value>-1&&$c(o.params,i.value.params)),p=tt(()=>a.value>-1&&a.value===o.matched.length-1&&zo(o.params,i.value.params));function h(y={}){if(Mc(y)){let g=t[Lt(e.replace)?"replace":"push"](Lt(e.to)).catch(Es);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>g),g}return Promise.resolve()}return{route:i,href:tt(()=>i.value.href),isActive:u,isExactActive:p,navigate:h}}function Vc(e){return e.length===1?e[0]:e}var Pc=xs({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ma,setup(e,{slots:t}){let o=ze(ma(e)),{options:r}=lt(Gn),n=tt(()=>({[va(e.activeClass,r.linkActiveClass,"router-link-active")]:o.isActive,[va(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:o.isExactActive}));return()=>{let i=t.default&&Vc(t.default(o));return e.custom?i:Ne("a",{"aria-current":o.isExactActive?e.ariaCurrentValue:null,href:o.href,onClick:o.navigate,class:n.value},i)}}}),qc=Pc;function Mc(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function $c(e,t){for(let o in t){let r=t[o],n=e[o];if(typeof r=="string"){if(r!==n)return!1}else if(!gt(n)||n.length!==r.length||r.some((i,a)=>i.valueOf()!==n[a].valueOf()))return!1}return!0}function ha(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var va=(e,t,o)=>e??t??o,Lc=xs({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:o}){let r=lt(Wn),n=tt(()=>e.route||r.value),i=lt(jo,0),a=tt(()=>{let h=Lt(i),{matched:y}=n.value,g;for(;(g=y[h])&&!g.components;)h++;return h}),u=tt(()=>n.value.matched[a.value]);ts(jo,tt(()=>a.value+1)),ts(ia,u),ts(Wn,n);let p=Ze();return He(()=>[p.value,u.value,e.name],([h,y,g],[m,w,k])=>{y&&(y.instances[g]=h,w&&w!==y&&h&&h===m&&(y.leaveGuards.size||(y.leaveGuards=w.leaveGuards),y.updateGuards.size||(y.updateGuards=w.updateGuards))),h&&y&&(!w||!ns(y,w)||!m)&&(y.enterCallbacks[g]||[]).forEach(b=>b(h))},{flush:"post"}),()=>{let h=n.value,y=e.name,g=u.value,m=g&&g.components[y];if(!m)return ya(o.default,{Component:m,route:h});let w=g.props[y],k=w?w===!0?h.params:typeof w=="function"?w(h):w:null,T=Ne(m,Pe({},k,t,{onVnodeUnmounted:N=>{N.component.isUnmounted&&(g.instances[y]=null)},ref:p}));return ya(o.default,{Component:T,route:h})||T}}});function ya(e,t){if(!e)return null;let o=e(t);return o.length===1?o[0]:o}var Wo=Lc;function _a(e){let t=Rc(e.routes,e),o=e.parseQuery||oa,r=e.stringifyQuery||Go,n=e.history,i=Cs(),a=Cs(),u=Cs(),p=bn(Gt),h=Gt;rs&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let y=Un.bind(null,L=>""+L),g=Un.bind(null,Ji),m=Un.bind(null,_s);function w(L,ne){let F,W;return Bo(L)?(F=t.getRecordMatcher(L),W=ne):W=L,t.addRoute(W,F)}function k(L){let ne=t.getRecordMatcher(L);ne&&t.removeRoute(ne)}function b(){return t.getRoutes().map(L=>L.record)}function T(L){return!!t.getRecordMatcher(L)}function N(L,ne){if(ne=Pe({},ne||p.value),typeof L=="string"){let _=zn(o,L,ne.path),S=t.resolve({path:_.path},ne),P=n.createHref(_.fullPath);return Pe(_,S,{params:m(S.params),hash:_s(_.hash),redirectedFrom:void 0,href:P})}let F;if(L.path!=null)F=Pe({},L,{path:zn(o,L.path,ne.path).path});else{let _=Pe({},L.params);for(let S in _)_[S]==null&&delete _[S];F=Pe({},L,{params:g(_)}),ne.params=g(ne.params)}let W=t.resolve(F,ne),fe=L.hash||"";W.params=y(m(W.params));let Ce=Qi(r,Pe({},L,{hash:Yi(fe),path:W.path})),ce=n.createHref(Ce);return Pe({fullPath:Ce,hash:fe,query:r===Go?ra(L.query):L.query||{}},W,{redirectedFrom:void 0,href:ce})}function R(L){return typeof L=="string"?zn(o,L,p.value.path):Pe({},L)}function I(L,ne){if(h!==L)return os(Be.NAVIGATION_CANCELLED,{from:ne,to:L})}function C(L){return x(L)}function A(L){return C(Pe(R(L),{replace:!0}))}function q(L,ne){let F=L.matched[L.matched.length-1];if(F&&F.redirect){let{redirect:W}=F,fe=typeof W=="function"?W(L,ne):W;return typeof fe=="string"&&(fe=fe.includes("?")||fe.includes("#")?fe=R(fe):{path:fe},fe.params={}),Pe({query:L.query,hash:L.hash,params:fe.path!=null?{}:L.params},fe)}}function x(L,ne){let F=h=N(L),W=p.value,fe=L.state,Ce=L.force,ce=L.replace===!0,_=q(F,W);if(_)return x(Pe(R(_),{state:typeof _=="object"?Pe({},fe,_.state):fe,force:Ce,replace:ce}),ne||F);let S=F;S.redirectedFrom=ne;let P;return!Ce&&Xi(r,W,F)&&(P=os(Be.NAVIGATION_DUPLICATED,{to:S,from:W}),D(W,W,!0,!1)),(P?Promise.resolve(P):U(S,W)).catch(z=>Vt(z)?Vt(z,Be.NAVIGATION_GUARD_REDIRECT)?z:Se(z):le(z,S,W)).then(z=>{if(z){if(Vt(z,Be.NAVIGATION_GUARD_REDIRECT))return x(Pe({replace:ce},R(z.to),{state:typeof z.to=="object"?Pe({},fe,z.to.state):fe,force:Ce}),ne||S)}else z=te(S,W,!0,ce,fe);return ue(S,W,z),z})}function X(L,ne){let F=I(L,ne);return F?Promise.reject(F):Promise.resolve()}function K(L){let ne=se.values().next().value;return ne&&typeof ne.runWithContext=="function"?ne.runWithContext(L):L()}function U(L,ne){let F,[W,fe,Ce]=aa(L,ne);F=Kn(W.reverse(),"beforeRouteLeave",L,ne);for(let _ of W)_.leaveGuards.forEach(S=>{F.push(Bt(S,L,ne))});let ce=X.bind(null,L,ne);return F.push(ce),qe(F).then(()=>{F=[];for(let _ of i.list())F.push(Bt(_,L,ne));return F.push(ce),qe(F)}).then(()=>{F=Kn(fe,"beforeRouteUpdate",L,ne);for(let _ of fe)_.updateGuards.forEach(S=>{F.push(Bt(S,L,ne))});return F.push(ce),qe(F)}).then(()=>{F=[];for(let _ of Ce)if(_.beforeEnter)if(gt(_.beforeEnter))for(let S of _.beforeEnter)F.push(Bt(S,L,ne));else F.push(Bt(_.beforeEnter,L,ne));return F.push(ce),qe(F)}).then(()=>(L.matched.forEach(_=>_.enterCallbacks={}),F=Kn(Ce,"beforeRouteEnter",L,ne,K),F.push(ce),qe(F))).then(()=>{F=[];for(let _ of a.list())F.push(Bt(_,L,ne));return F.push(ce),qe(F)}).catch(_=>Vt(_,Be.NAVIGATION_CANCELLED)?_:Promise.reject(_))}function ue(L,ne,F){u.list().forEach(W=>K(()=>W(L,ne,F)))}function te(L,ne,F,W,fe){let Ce=I(L,ne);if(Ce)return Ce;let ce=ne===Gt,_=rs?history.state:{};F&&(W||ce?n.replace(L.fullPath,Pe({scroll:ce&&_&&_.scroll},fe)):n.push(L.fullPath,fe)),p.value=L,D(L,ne,F,ce),Se()}let re;function pe(){re||(re=n.listen((L,ne,F)=>{if(!ie.listening)return;let W=N(L),fe=q(W,ie.currentRoute.value);if(fe){x(Pe(fe,{replace:!0,force:!0}),W).catch(Es);return}h=W;let Ce=p.value;rs&&ta(Ho(Ce.fullPath,F.delta),on()),U(W,Ce).catch(ce=>Vt(ce,Be.NAVIGATION_ABORTED|Be.NAVIGATION_CANCELLED)?ce:Vt(ce,Be.NAVIGATION_GUARD_REDIRECT)?(x(Pe(R(ce.to),{force:!0}),W).then(_=>{Vt(_,Be.NAVIGATION_ABORTED|Be.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===Hn.pop&&n.go(-1,!1)}).catch(Es),Promise.reject()):(F.delta&&n.go(-F.delta,!1),le(ce,W,Ce))).then(ce=>{ce=ce||te(W,Ce,!1),ce&&(F.delta&&!Vt(ce,Be.NAVIGATION_CANCELLED)?n.go(-F.delta,!1):F.type===Hn.pop&&Vt(ce,Be.NAVIGATION_ABORTED|Be.NAVIGATION_DUPLICATED)&&n.go(-1,!1)),ue(W,Ce,ce)}).catch(Es)}))}let me=Cs(),be=Cs(),he;function le(L,ne,F){Se(L);let W=be.list();return W.length?W.forEach(fe=>fe(L,ne,F)):console.error(L),Promise.reject(L)}function Ie(){return he&&p.value!==Gt?Promise.resolve():new Promise((L,ne)=>{me.add([L,ne])})}function Se(L){return he||(he=!L,pe(),me.list().forEach(([ne,F])=>L?F(L):ne()),me.reset()),L}function D(L,ne,F,W){let{scrollBehavior:fe}=e;if(!rs||!fe)return Promise.resolve();let Ce=!F&&sa(Ho(L.fullPath,0))||(W||!F)&&history.state&&history.state.scroll||null;return _t().then(()=>fe(L,ne,Ce)).then(ce=>ce&&ea(ce)).catch(ce=>le(ce,L,ne))}let V=L=>n.go(L),H,se=new Set,ie={currentRoute:p,listening:!0,addRoute:w,removeRoute:k,clearRoutes:t.clearRoutes,hasRoute:T,getRoutes:b,resolve:N,options:e,push:C,replace:A,go:V,back:()=>V(-1),forward:()=>V(1),beforeEach:i.add,beforeResolve:a.add,afterEach:u.add,onError:be.add,isReady:Ie,install(L){L.component("RouterLink",qc),L.component("RouterView",Wo),L.config.globalProperties.$router=ie,Object.defineProperty(L.config.globalProperties,"$route",{enumerable:!0,get:()=>Lt(p)}),rs&&!H&&p.value===Gt&&(H=!0,C(n.location).catch(W=>{}));let ne={};for(let W in Gt)Object.defineProperty(ne,W,{get:()=>p.value[W],enumerable:!0});L.provide(Gn,ie),L.provide(jn,Us(ne)),L.provide(Wn,p);let F=L.unmount;se.add(L),L.unmount=function(){se.delete(L),se.size<1&&(h=Gt,re&&re(),re=null,p.value=Gt,H=!1,he=!1),F()}}};function qe(L){return L.reduce((ne,F)=>ne.then(()=>K(F)),Promise.resolve())}return ie}function Ea(e){return lt(jn)}function Ca(e,t){return t?.split(".").reduce((o,r)=>o?.[r],e)}function Ko(e=null,t=new Map){let o=ze({}),r=[],n=!1,i=new Proxy(o,{get(a,u){return typeof u=="string"&&u.startsWith("__v_")||Reflect.has(a,u)?Reflect.get(a,u):e?.[u]}});return Object.defineProperty(o,"parent",{value:e,configurable:!0}),Object.defineProperty(o,"viewState",{get:()=>i}),i.watch=(a,u,p=!1)=>{let h=typeof a=="function"?()=>a(i):()=>Ca(i,a),y=He(h,u,{deep:p,flush:"post"});return r.push(y),_t(()=>{n||u(h(),h())}),y},i.watchGroup=(a,u)=>i.watch(()=>a.map(p=>Ca(i,p)),u,!0),i.on=(a,u)=>{if(a==="dispose")return r.push(u),()=>{};t.has(a)||t.set(a,new Set),t.get(a).add(u);let p=()=>t.get(a)?.delete(u);return r.push(p),p},i.emit=(a,...u)=>{for(let p of[...t.get(a)||[]])p({},...u)},i.dispose=()=>{n=!0,r.splice(0).reverse().forEach(a=>a())},Ls(i.dispose),i}function mt(){let e=new Set,t=new Set,o=!1,r=(i,a=0)=>{if(o)return;let u=setTimeout(()=>{e.delete(u),i()},a);return e.add(u),u};r.cancel=i=>{clearTimeout(i),e.delete(i)};let n=(i,a)=>{if(o)return;let u=setInterval(i,a);return t.add(u),u};return n.cancel=i=>{clearInterval(i),t.delete(i)},Ls(()=>{o=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:r,interval:n}}function as(){let e=[];return Ls(()=>e.forEach(t=>t())),(t,o,r,n)=>{t.addEventListener(o,r,n),e.push(()=>t.removeEventListener(o,r,n))}}var Na=function(e,t,o,r){e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(p){let h=e.toasts.indexOf(p);h!==-1&&e.toasts.splice(h,1)},e.addToast=function(p){return e.toasts.push(p),r(function(){e.removeToast(p)},8e3),p},e.path=o.url(),e.paths=o.path().substring(1).split("/"),e.darkMode=function(p){localStorage.setItem("darkMode",p),e.isDarkMode=p;let h="/css/prism-okaidia.css",y="/css/prism.css";if(p){$("body").addClass("dark-mode");let m=document.createElement("link");m.href=h,m.rel="stylesheet",document.head.append(m),$(`link[href='${y}']`).remove()}else{$("body").removeClass("dark-mode");let m=document.createElement("link");m.href=y,m.rel="stylesheet",document.head.append(m),$(`link[href='${h}']`).remove()}var g=document.querySelector(".floatingchat-container-wrap-mo498 .floating-chat-kofi-text-container-wrap");g&&(g.style.backgroundColor=p?"#FAF9F6":"#1A1815",g.style.color=p?"#1A1815":"#FAF9F6"),e.emit("dark-mode",p)},e.darkMode(localStorage.getItem("darkMode")=="true");function n(){t.get("/api/user").then(p=>{p&&(e.user=p.data)},()=>{e.user=null})}n();function i(){t.get("/api/options").then(p=>{p&&(e.site_options=p.data)},()=>{e.site_options=null})}i();function a(){t.get("/api/message").then(p=>{p&&(e.generalMessage=p.data)},()=>{e.generalMessage=null})}a();function u(p,h){h&&(e.title=h.title),e.path=o.url(),e.paths=o.path().substring(1).split("/")}e.on("routeChange",u),e.on("routeUpdate",u)},Sa=function(e,t){let o=as()},Da=function(e,t,o,r,n){e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,n.load().then(u=>{e.quota=u},console.error);function i(){t.get("/api/user/default").then(u=>{let p=u.data||{};p.terms&&(e.terms=p.terms.join(` `)),e.options=Object.assign({},e.options,p.options)})}i();let a=null;e.saveDefault=u=>{u&&u.preventDefault&&u.preventDefault();let p={terms:e.terms.split(` -`).map(h=>h.trim()).filter(h=>h.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",p).then(()=>{i(),e.saving=!1,e.message="Saved",a&&r.cancel(a),a=r(()=>{e.message=null},2500)},h=>{e.saving=!1;let v=h&&h.data&&h.data.error;o("ERRORS."+v).then(g=>{e.error=g},()=>{e.error="Unable to save your defaults. Please try again."})})},e.deleteAccount=()=>{confirm("Delete your account? All your anonymized repositories, gists, and pull requests will be removed, and your personal data will be erased. This cannot be undone.")&&(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},Ra=function(e,t,o){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(r=>{o.url("/dashboard")},r=>{e.error=r.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},Ta=function(e,t,o,r,n){e.user&&!e.user.status&&o.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&o.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(u){e.feature=u},e.featureHref=function(u){return u.needsUser&&!e.user?"/github/login":u.href},e.featureTarget=function(u){return u.needsUser&&!e.user?"_self":u.target||void 0},e.featureKeydown=function(u,p){let h={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[u.key];if(h===void 0)return;u.preventDefault();let v=e.features.length,g=h==="first"?0:h==="last"?v-1:(p+h+v)%v;e.feature=e.features[g].key,n(()=>{let f=r.document.getElementById("feature-tab-"+e.feature);f&&f.focus()})},e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}];function i(){t.get("/api/stat/").then(u=>{e.stat=u.data,e.cards[0].total=u.data.nbRepositories,e.cards[1].total=u.data.nbUsers,e.cards[2].total=u.data.nbPageViews,e.cards[3].total=u.data.nbPullRequests})}i();function a(u){let p={series:u,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!u||u.length<2)return p;let h=new Array(u.length-1);for(let b=1;b=2){let b=h[v-2];b&&(p.pctChange=(p.deltaToday-b)/b*100)}return p.pctAbs=Math.round(Math.abs(p.pctChange)),p.isUp=p.pctChange>=0,p}e.history={repositories:a([]),users:a([]),pageViews:a([]),pullRequests:a([])},t.get("/api/stat/history?days=60").then(u=>{let p=u.data||[];e.history={repositories:a(p.map(h=>h.nbRepositories||0)),users:a(p.map(h=>h.nbUsers||0)),pageViews:a(p.map(h=>h.nbPageViews||0)),pullRequests:a(p.map(h=>h.nbPullRequests||0))}})},Oa=function(e,t,o,r,n,i){let a=mt();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),a.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"In progress",error:"Error",expired:"Expired",removed:"Removed"};let u=["queue","download","downloaded","preparing","anonymizing"];function p(C){return C==="ready"||C==="error"?C:C==="expired"||C==="expiring"?"expired":C==="removed"||C==="removing"?"removed":(u.indexOf(C)>-1,"progress")}let h=7200*1e3,v="dashboard.filterPrefs",g={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},f=loadFilterPrefs(v)||{};e.typeFilter=f.typeFilter||g.typeFilter,e.filters={status:Object.assign({},g.filters.status,f.filters&&f.filters.status||{})},e.orderBy=f.orderBy||g.orderBy;let w={_name:{label:"Name",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=w,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let C=w[e.sortField()];return C?C.label:"Custom"},e.isSortedBy=C=>e.sortField()===C,e.setSort=(C,A)=>{typeof A!="boolean"&&(A=e.isSortedBy(C)?!e.sortDesc():!!(w[C]&&w[C].defaultDesc)),e.orderBy=(A?"-":"")+C},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(v,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(v,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),i.load().then(C=>{e.quota=C},console.error);function k(C,A,q,Z,X,K){C.pageView||(C.pageView=0),C.lastView||(C.lastView=""),C.options=C.options||{},C.options.terms=(C.options.terms||[]).filter(ue=>ue),C._id=A||"",C._source=Z,C._broken=!A,C._name=A||Z||"(unnamed)",C._editUrl=A?X:null,C._viewUrl=A?K:null,C._broken&&(C.status="error",C.statusMessage="incomplete_record"),C._statusKey=p(C.status);let U=C.anonymizeDate||C.lastView;return C._stale=C._statusKey==="progress"&&!!U&&Date.now()-new Date(U).getTime()>h,C.status==="expired"||C.status==="expiring"?C._expiry={kind:"expired",date:C.options.expirationDate}:C.status!=="ready"?C._expiry={kind:"none"}:C.options.expirationMode==="never"||!C.options.expirationDate?C._expiry={kind:"never"}:C._expiry={kind:"date",date:C.options.expirationDate},C}function b(C){return t.get(C).then(A=>A.data||[],A=>(console.error(A),[]))}function T(){return e.loading=!0,r.all([b("/api/user/anonymized_repositories"),b("/api/user/anonymized_pull_requests"),b("/api/user/anonymized_gists")]).then(C=>{let A=C[0],q=C[1],Z=C[2],X=[];A.forEach(K=>{K._type="repo";let U=K.source||{};X.push(k(K,K.repoId,K.repoId,U.fullName,"/anonymize/"+K.repoId,"/r/"+K.repoId+"/"))}),q.forEach(K=>{K._type="pr";let U=K.source||{};X.push(k(K,K.pullRequestId,K.pullRequestId,U.repositoryFullName+"#"+U.pullRequestId,"/pull-request-anonymize/"+K.pullRequestId,"/pr/"+K.pullRequestId+"/"))}),Z.forEach(K=>{K._type="gist";let U=K.source||{};X.push(k(K,K.gistId,K.gistId,U.gistId,"/gist-anonymize/"+K.gistId,"/gist/"+K.gistId+"/"))}),e.items=X,e.loading=!1})}T(),e.openItem=(C,A)=>{if(!C._viewUrl)return;let q=A&&A.target;q&&q.closest&&q.closest("a, button, .dropdown, input")||(n.location.href=C._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(C=>e.filters.status[C]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0,e.hasActiveFilters=()=>e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(C=>e.filters.status[C]===!1),e.clearFilters=()=>{e.typeFilter="all",e.search="",Object.keys(e.filters.status).forEach(C=>{e.filters.status[C]=!0})};function N(C,A){t.get("/api/repo/"+C).then(q=>{for(let Z of e.items)if(Z._type==="repo"&&Z.repoId==C){Z.status=q.data.status;break}if(q.data.status=="ready"||q.data.status=="error"||q.data.status=="removed"||q.data.status=="expired"){A(q.data);return}a.timeout(()=>N(C,A),2500)})}let D=C=>C==="repo"?"repository":C==="gist"?"gist":"pull request",I=C=>C==="repo"?"/api/repo":C==="gist"?"/api/gist":"/api/pr";e.removeItem=C=>{let A=D(C._type);if(confirm(`Are you sure that you want to remove the ${A} ${C._id}?`)){let q=ze({title:`Removing ${C._id}...`,date:new Date,body:`The ${A} ${C._id} is going to be removed.`});e.addToast(q);let Z=`${I(C._type)}/${C._id}`;t.delete(Z).then(()=>{C._type==="repo"?N(C._id,()=>{q.title=`${C._id} is removed.`,q.body=`The ${A} ${C._id} is removed.`}):(q.title=`${C._id} is removed.`,q.body=`The ${A} ${C._id} is removed.`,T())},X=>{q.title=`Error during the removal of ${C._id}.`,q.body=X.body,T()})}},e.refreshItem=C=>{let A=D(C._type),q=ze({title:`Refreshing ${C._id}...`,date:new Date,body:`The ${A} ${C._id} is going to be refreshed.`});e.addToast(q);let Z=`${I(C._type)}/${C._id}/refresh`;t.post(Z).then(()=>{C._type==="repo"?N(C._id,()=>{q.title=`${C._id} is refreshed.`,q.body=`The ${A} ${C._id} is refreshed.`}):(q.title=`${C._id} is refreshed.`,q.body=`The ${A} ${C._id} is refreshed.`,T())},X=>{q.title=`Error during the refresh of ${C._id}.`,q.body=X.body,T()})},e.extendItem=C=>{let A=D(C._type),q=ze({title:`Extending ${C._id}...`,date:new Date,body:`The expiration of ${A} ${C._id} is going to be extended by 6 months.`});e.addToast(q);let Z=`${I(C._type)}/${C._id}/extend`;t.post(Z).then(()=>{C._type==="repo"?N(C._id,()=>{q.title=`${C._id} is extended.`,q.body=`The expiration of ${A} ${C._id} is extended by 6 months.`}):(q.title=`${C._id} is extended.`,q.body=`The expiration of ${A} ${C._id} is extended by 6 months.`,T())},X=>{q.title=`Error during the extension of ${C._id}.`,q.body=X.data&&X.data.error||X.body,T()})},e.itemFilter=C=>{if(e.typeFilter!=="all"&&C._type!==e.typeFilter||e.filters.status[C._statusKey]===!1)return!1;let A=e.search.trim().toLowerCase();return!!(A.length==0||C._source&&String(C._source).toLowerCase().indexOf(A)>-1||C._id&&String(C._id).toLowerCase().indexOf(A)>-1||C.conference&&String(C.conference).toLowerCase().indexOf(A)>-1)}};var Aa=function(e,t,o){let r=mt();e.repoId=o.repoId,e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="";var n=null;let i=null,a=!1;function u(h){e.rateLimitResetAt=h,n&&r.interval.cancel(n);function v(){var g=Math.max(0,Math.ceil((h-Date.now())/1e3));if(g<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,r.interval.cancel(n),n=null;else{var f=Math.floor(g/60),w=g%60;e.rateLimitCountdown=f>0?f+"m "+w+"s":w+"s"}}v(),n=r.interval(v,1e3)}e.on("dispose",function(){a=!0,n&&r.interval.cancel(n),i&&r.timeout.cancel(i)});function p(h){if(!h)return h;var v=h.match(/^rate_limited:(\d+)$/);return v?(u(parseInt(v[1],10)),null):(e.rateLimitResetAt=0,h)}e.getStatus=()=>{a||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(h=>{if(!a){e.repo=h.data,h.data.rateLimitResetAt?u(h.data.rateLimitResetAt):e.repo.statusMessage=p(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var v=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(v=!1),v&&(i=r.timeout(e.getStatus,2e3))}},h=>{e.error=h.data.error})},e.getStatus()},Yn=function(e,t,o,r,n,i,a){e.sourceUrl="",e.githubConnection=void 0,e.githubConnections=null,e.grantGitHubAccess=()=>{let R={};for(let ie of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])R[ie]=e[ie];sessionStorage.setItem("github-access-draft",JSON.stringify({path:n.path(),savedAt:Date.now(),draft:R}));let V=n.path(),H=f(e.sourceUrl)||"",se=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=se+"?returnTo="+encodeURIComponent(V)+"&repository="+encodeURIComponent(H)+"&install=1"},e.chooseGitHubConnection=async R=>{e.githubConnection=R,e.readme="",e.sourceUrl&&await k()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function u(){let R=new Date;return R.setMonth(R.getMonth()+6),R}e.options.expirationDate=u();function p(R){let V=R.getFullYear(),H=String(R.getMonth()+1).padStart(2,"0"),se=String(R.getDate()).padStart(2,"0");return`${V}-${H}-${se}`}e.minExpirationDate=p(new Date);let h=new Date;h.setFullYear(h.getFullYear()+1),e.maxExpirationDate=p(h),e.anonymize_readme="",e.readme="",e.html_readme="",e.isUpdate=!1;function v(R){t.get("/api/user/default").then(V=>{let H=V.data;H.terms&&(e.defaultTerms=H.terms.join(` -`)),e.options=Object.assign({},e.options,H.options),e.options.expirationDate=H.options&&H.options.expirationDate?new Date(H.options.expirationDate):u(),R&&R()})}function g(R,V,H){e.anonymize&&e.anonymize[R]&&e.anonymize[R].setValidity(V,H)}function f(R){try{let V=parseGithubUrl(R);if(V&&V.owner&&V.repo)return V.owner+"/"+V.repo}catch{}return null}function w(){return!e.isUpdate||!e._originalRepositoryID?void 0:f(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function k(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function b(){let R;try{R=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!R||R.path!==n.path()||Date.now()-R.savedAt>=30*6e4)return!1;for(let V of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(R.draft,V)&&(e[V]=R.draft[V]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await k(),sessionStorage.removeItem("github-access-draft"),!0}v(()=>{!r.repoId&&!r.pullRequestId&&!r.gistId&&a(b,0),r.repoId&&r.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=r.repoId,t.get("/api/repo/"+e.repoId).then(async R=>{e.githubConnection=R.data.connection||"oauth",e.sourceUrl="https://github.com/"+R.data.source.fullName,e._originalFullName=R.data.source.fullName,e.terms=R.data.options.terms.filter(V=>V).join(` -`),e.source=R.data.source,e.role=R.data.role||"owner",e.coauthors=R.data.coauthors||[],e._originalBranch=R.data.source.branch,e.options=Object.assign({},e.options,R.data.options),e.conference=R.data.conference,e._originalConference=R.data.conference,e.repositoryID=R.data.source.repositoryID,e._originalRepositoryID=R.data.source.repositoryID,R.data.options.expirationDate&&(e.options.expirationDate=new Date(R.data.options.expirationDate)),!await b()&&(await Promise.all([T(),N()]),A())},()=>{n.url("/404")})),r.pullRequestId&&r.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=r.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async R=>{if(e.githubConnection=R.data.connection||"oauth",e.sourceUrl="https://github.com/"+R.data.source.repositoryFullName+"/pull/"+R.data.source.pullRequestId,e.terms=R.data.options.terms.filter(V=>V).join(` -`),e.source=R.data.source,e.options=Object.assign({},e.options,R.data.options),e.conference=R.data.conference,e._originalConference=R.data.conference,R.data.options.expirationDate&&(e.options.expirationDate=new Date(R.data.options.expirationDate)),!await b())try{e.details=(await t.get(`/api/pr/${R.data.source.repositoryFullName}/${R.data.source.pullRequestId}`,{params:{connection:e.githubConnection}})).data}catch(V){let H=V&&V.data&&V.data.error;H&&(i("ERRORS."+H).then(se=>{e.addToast({title:"Error",date:new Date,body:se}),e.error=se},console.error),Se(H))}},()=>{n.url("/404")})),r.gistId&&r.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=r.gistId,t.get("/api/gist/"+e.gistId).then(async R=>{e.sourceUrl="https://gist.github.com/"+R.data.source.gistId,e.terms=R.data.options.terms.filter(V=>V).join(` -`),e.source=R.data.source,e.options=Object.assign({},e.options,R.data.options),e.conference=R.data.conference,e._originalConference=R.data.conference,R.data.options.expirationDate&&(e.options.expirationDate=new Date(R.data.options.expirationDate)),!await b()&&(e.details=(await t.get(`/api/gist/source/${R.data.source.gistId}`)).data)},()=>{n.url("/404")}))}),t.get("/github/connections").then(R=>{e.githubConnections=R.data}).catch(()=>{}),e.urlSelected=async(R=!1)=>{R||(e.terms=e.defaultTerms),!R&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],R||(e.source={type:"GitHubStream",branch:"",commit:""}),e.anonymize_readme="",e.readme="",e.html_readme="",e.detectedType=null;let V;try{V=parseGithubUrl(e.sourceUrl)}catch{g("sourceUrl","github",!1);return}g("sourceUrl","github",!0);try{V.gistId&&!V.repo?(e.detectedType="gist",e.source={gistId:V.gistId},await ue()):V.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:V.owner+"/"+V.repo,pullRequestId:V.pullRequestId},await q()):(e.detectedType="repo",await Promise.all([T(),N()]),A())}catch{return}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let R=e.branches.filter(H=>H.name==e.source.branch)[0];if(!R)return;!(e.isUpdate&&e._originalBranch===e.source.branch&&!!e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=R.commit),e.readme=R.readme,await N(),A()}),e.getBranches=async R=>{let V=parseGithubUrl(e.sourceUrl);try{let H=await t.get(`/api/repo/${V.owner}/${V.repo}/branches`,{params:{anonymizedRepoId:e.isUpdate&&r.repoId&&f(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,force:R===!0?"1":"0",repositoryID:w()}});e.branches=H.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let se=e.branches.filter(ie=>ie.name==e.source.branch);se.length>0&&(!(!R&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=se[0].commit),e.readme=se[0].readme,await N(R))}catch(H){e.branches=[],e.sourceUnreachable=H&&(H.status===404||H.data&&H.data.error==="repo_not_found");let se=H&&H.data&&H.data.error||(H&&H.status===404?"repo_not_found":"unknown_error");i("ERRORS."+se).then(ie=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:ie}),e.error=ie},console.error),typeof g=="function"&&g("sourceUrl","missing",!1)}};async function T(){let R=parseGithubUrl(e.sourceUrl);try{le();let V=await t.get(`/api/repo/${R.owner}/${R.repo}/`,{params:{anonymizedRepoId:e.isUpdate&&r.repoId&&f(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,repositoryID:w(),force:"1"}});e.details=V.data,e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches()}catch(V){throw V.data&&(i("ERRORS."+V.data.error).then(H=>{e.addToast({title:"Error",date:new Date,body:H}),e.error=H},console.error),Se(V.data.error)),g("sourceUrl","missing",!1),V}}async function N(R){if(e.readme&&!R)return e.readme;let V=parseGithubUrl(e.sourceUrl);try{let H=await t.get(`/api/repo/${V.owner}/${V.repo}/readme`,{params:{anonymizedRepoId:e.isUpdate&&r.repoId&&f(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,force:R===!0?"1":"0",branch:e.source.branch,repositoryID:w()}});e.readme=H.data}catch{e.readme=""}}function D(){let R={terms:e.terms?e.terms.split(` -`):[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(R.branchName=e.source.branch);try{let V=parseGithubUrl(e.sourceUrl);R.repoName=`${V.owner}/${V.repo}`}catch{}return R}function I(R,V){let H=null,se=0;return function(){H&&a.cancel(H),H=a(()=>{H=null;let qe=++se,L=R();L&&t.post("/api/anonymize-preview",L).then(ne=>{qe===se&&V(ne.data)},()=>{})},200)}}let C=I(()=>e.readme?{content:e.readme,options:D()}:null,R=>{e.anonymize_readme=R.content||"";let V="";try{let se=parseGithubUrl(e.sourceUrl),ie=e.source.branch||e.details&&e.details.defaultBranch||"main";V=`https://github.com/${se.owner}/${se.repo}/raw/${ie}/`}catch{}let H=renderMD(e.anonymize_readme,V);e.html_readme=H,a(Prism.highlightAll,150)});function A(){!e.anonymize||!e.anonymize.terms||(e.termsRegexWarning=!!e.terms&&!!e.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),C())}async function q(){let R=parseGithubUrl(e.sourceUrl);try{le();let V=await t.get(`/api/pr/${R.owner}/${R.repo}/${R.pullRequestId}`,{params:{connection:e.githubConnection}});e.details=V.data,e.pullRequestId||(e.pullRequestId=R.repo+"-PR"+R.pullRequestId+"-"+generateRandomId(4))}catch(V){throw V.data&&(i("ERRORS."+V.data.error).then(H=>{e.addToast({title:"Error",date:new Date,body:H}),e.error=H},console.error),Se(V.data.error)),g("sourceUrl","missing",!1),V}}let Z=ze(new Map),X=new Set;function K(){let R=new Set,V=e.details&&e.details.pullRequest;if(!V)return R;typeof V.title=="string"&&R.add(V.title),typeof V.body=="string"&&R.add(V.body),typeof V.diff=="string"&&R.add(V.diff);let H=V.comments||[];for(let se of H)typeof se.author=="string"&&R.add(se.author),typeof se.body=="string"&&R.add(se.body);return R}let U=I(()=>{let R=K();X=R;let V=Array.from(R);return V.length===0?null:{contents:V,options:D()}},R=>{if(!R||!Array.isArray(R.contents))return;let V=Array.from(X),H=new Map;for(let se=0;seZ.set(ie,se))});e.anonymizePrContent=function(R){return R&&(Z.has(R)?Z.get(R):(X.has(R)||U(),R))};async function ue(){let R=parseGithubUrl(e.sourceUrl);try{le();let V=await t.get(`/api/gist/source/${R.gistId}`);e.details=V.data,e.gistId||(e.gistId="gist-"+R.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(V){throw V.data&&(i("ERRORS."+V.data.error).then(H=>{e.addToast({title:"Error",date:new Date,body:H}),e.error=H},console.error),Se(V.data.error)),g("sourceUrl","missing",!1),V}}let te=ze(new Map),re=new Set;function pe(){let R=new Set,V=e.details&&e.details.gist;if(!V)return R;typeof V.description=="string"&&R.add(V.description),typeof V.ownerLogin=="string"&&R.add(V.ownerLogin);let H=V.files||[];for(let ie of H)typeof ie.filename=="string"&&R.add(ie.filename),typeof ie.content=="string"&&R.add(ie.content);let se=V.comments||[];for(let ie of se)typeof ie.author=="string"&&R.add(ie.author),typeof ie.body=="string"&&R.add(ie.body);return R}let me=I(()=>{let R=pe();re=R;let V=Array.from(R);return V.length===0?null:{contents:V,options:D()}},R=>{if(!R||!Array.isArray(R.contents))return;let V=Array.from(re),H=new Map;for(let se=0;sete.set(ie,se)),be()});e.anonymizeGistContent=function(R){return R&&(te.has(R)?te.get(R):(re.has(R)||me(),R))},e.previewGistFiles=[];function be(){let R=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=R.map(V=>({filename:e.anonymizeGistContent(V.filename),content:e.anonymizeGistContent(V.content),language:V.language}))}e.watch("details.gist.files",be,!0),e.watch("terms",be);function he(){let R=e.conference;if(e.conference_data=null,!R)return;let V=e.isUpdate&&R===e._originalConference;t.get("/api/conferences/"+R).then(H=>{e.conference===R&&(e.conference_data=H.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!V&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===R&&(e.conference_data=null)})}function le(){g("repoId","used",!0),g("repoId","format",!0),g("pullRequestId","used",!0),g("pullRequestId","format",!0),g("gistId","used",!0),g("gistId","format",!0),g("sourceUrl","used",!0),g("sourceUrl","missing",!0),g("sourceUrl","access",!0),g("sourceUrl","github",!0),g("commit","exists",!0),g("conference","activated",!0),g("terms","format",!0),e.termsRegexWarning=!1}function Ie(){let R=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||R&&R.invalid?(R&&R.setDirty&&R.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function Se(R){let V=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(R){case"repoId_already_used":g(V,"used",!1);break;case"invalid_repoId":g(V,"format",!1);break;case"options_not_provided":g(V,"format",!1);break;case"repo_already_anonymized":g("sourceUrl","used",!1);break;case"invalid_terms_format":g("terms","format",!1);break;case"repo_not_found":g("sourceUrl","missing",!1);break;case"repo_not_accessible":g("sourceUrl","access",!1);break;case"commit_not_found":g("commit","exists",!1);break;case"conf_not_activated":g("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let R=(e.coauthorSearch||"").trim();if(e.coauthorError="",R.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:R}}).then(V=>{let H=new Set((e.coauthors||[]).map(se=>(se.username||"").toLowerCase()));e.coauthorResults=(V.data||[]).filter(se=>!H.has((se.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(R,V)=>{V&&V.preventDefault(),!(!R||!R.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:R.username}).then(H=>{e.coauthors=H.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},H=>{let se=H&&H.data&&H.data.error||"unknown_error";e.coauthorError=se})},e.removeCoauthor=R=>{!R||!R.username||confirm("Remove co-author "+R.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(R.username)).then(V=>{e.coauthors=V.data||[]},V=>{let H=V&&V.data&&V.data.error||"unknown_error";e.coauthorError=H})},e.anonymizeRepo=R=>{if(Ie())return;R.target.disabled=!0;let V=parseGithubUrl(e.sourceUrl),H={repoId:e.repoId,terms:e.terms.trim().split(` -`).filter(ie=>ie),connection:e.githubConnection,fullName:`${V.owner}/${V.repo}`,repository:e.sourceUrl,options:e.options,source:e.source,conference:e.conference};e.details&&(H.options.pageSource=e.details.pageSource),le();let se=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(se,H,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/status/"+e.repoId},ie=>{ie.data&&(i("ERRORS."+ie.data.error).then(qe=>{e.error=qe},console.error),Se(ie.data.error))}).finally(()=>{R.target.disabled=!1})},e.anonymizeGist=R=>{if(Ie())return;R.target.disabled=!0;let V=parseGithubUrl(e.sourceUrl),H={gistId:e.gistId,terms:e.terms.trim().split(` -`).filter(ie=>ie),source:{gistId:V.gistId},options:e.options,conference:e.conference};le();let se=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(se,H,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/gist/"+e.gistId},ie=>{ie.data&&(i("ERRORS."+ie.data.error).then(qe=>{e.error=qe},console.error),Se(ie.data.error))}).finally(()=>{R.target.disabled=!1})},e.anonymizePullRequest=R=>{if(Ie())return;R.target.disabled=!0;let V=parseGithubUrl(e.sourceUrl),H={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(` -`).filter(ie=>ie),source:{repositoryFullName:`${V.owner}/${V.repo}`,pullRequestId:V.pullRequestId},options:e.options,conference:e.conference};le();let se=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(se,H,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/pr/"+e.pullRequestId},ie=>{ie.data&&(i("ERRORS."+ie.data.error).then(qe=>{e.error=qe},console.error),Se(ie.data.error))}).finally(()=>{R.target.disabled=!1})},e.watch("conference",()=>{he()}),e.watch("terms",()=>{e.detectedType==="repo"&&A(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&me()}),e.watch("options.image",()=>{e.detectedType==="repo"&&A(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&me()}),e.watch("options.link",()=>{e.detectedType==="repo"&&A(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&me()}),e.watch("details",()=>{e.detectedType==="pr"&&U(),e.detectedType==="gist"&&me()},!0)},Yo=function(e,t,o,r,n,i){let a=mt(),u=as(),p=0,h=!1;e.on("dispose",()=>{h=!0,p++,v&&v.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,u(document,"keydown",function(U){if((U.metaKey||U.ctrlKey)&&U.key==="k"){U.preventDefault();var ue=document.querySelector(".tree-search-input");ue&&(ue.focus(),ue.select())}});var v=null;e.onFileSearchChange=function(){v&&(v.resolve(),v=null);let U=e.fileSearchQuery;if(!U||U.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let ue=i.defer();v=ue,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(U)}`,{timeout:ue.promise}).then(function(te){if(!(h||v!==ue)){v=null,e.fileSearchLoading=!1;var re={};e.files.forEach(function(L){re[(L.path||"")+"/"+L.name]=!0});for(var pe=[],me={},be=0;be0&&e.files.push.apply(e.files,pe);for(var H=[],se=0;se0&&e.files.push.apply(e.files,H),e.fileSearchResults=te.data}},function(){!h&&v===ue&&(v=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})};let g={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},f=["license","txt"],w=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],k=["wav","mp3","ogg","wma","flac","aac","m4a"],b=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.on("routeUpdate",function(U,ue){if(e.repoId!=r.repoId)return K();if((r.path||"")!=e.filePath){e.filePath=r.path||"",e.paths=e.filePath.split("/").filter(te=>te&&te.trim().length>0),X();for(let te=0;te0?e.paths.slice(0,te).join("/"):"";e.files.some(me=>me.path===re)||e.getFiles(re)}}});function T(){if(e.paths[0]!="")return;let U=["readme.md","readme.txt","readme.org","readme.1st","readme"],ue={};for(let re of e.files)re.name.toLowerCase().indexOf("readme")>-1&&(ue[re.name.toLowerCase()]=re.name);let te=null;for(let re of U)if(ue[re]){te=re;break}if(!te&&Object.keys(ue).length>0&&(te=Object.keys(ue)[0]),te){let re=o.url();re[re.length-1]!="/"&&(re+="/"),o.url(re+encodePathForUrl(ue[te]))}}e.fileCounts=null,e.getFiles=function(U){let ue=e.repoId;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(U)}&v=${e.options.lastUpdateDate}`).then(function(te){if(h||ue!==e.repoId)return[];let re=U||"";return e.files=e.files.filter(pe=>pe.path!==re),e.files.push(...te.data),te.data},function(te){if(h||ue!==e.repoId)return[];e.type="error",e.content=te&&te.data&&te.data.error||"unknown_error",e.files=[]})};function N(){let U=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts`).then(function(ue){h||U!==e.repoId||(e.fileCounts=ue.data)},function(){e.fileCounts={}})}function D(){return e.files.filter(U=>U.name==e.paths[e.paths.length-1]&&U.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var I=null;e.on("dispose",function(){I&&a.interval.cancel(I)});function C(U){if(h)return;let ue=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(te=>{if(!(h||ue!==e.repoId)){if(e.options=te.data,e.options.url){window.location=e.options.url;return}U&&U(te.data)}},te=>{if(!(h||ue!==e.repoId)){var re=te.data||{};if(re.error==="rate_limited"&&re.resetAt){let me=function(){var be=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(be<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,I&&(a.interval.cancel(I),I=null),C(U);else{var he=Math.floor(be/60),le=be%60;e.rateLimitCountdown=he>0?he+"m "+le+"s":le+"s"}};var pe=me;e.type="rate_limited",e.rateLimitResetAt=re.resetAt,I&&a.interval.cancel(I),me(),I=a.interval(me,1e3)}else re.error==="repository_not_ready"?(e.type="loading",a.timeout(function(){C(U)},3e3)):(e.type="error",e.content=re.error)}})}e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};function A(U){return g[U]?g[U]:U}function q(U){return U=="pdf"?"pdf":U=="html"||U=="htm"?"html-doc":U=="md"?"md":U=="org"?"org":U=="ipynb"?"IPython":f.indexOf(U)>-1?"text":w.indexOf(U)>-1?"image":b.indexOf(U)>-1?"media":k.indexOf(U)>-1?"audio":"code"}function Z(U,ue){let te=p;if(!U){e.type="error",e.content="no_file_selected";return}let re=e.type;e.type="loading",e.content="loading";let pe=ue&&ue.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(U)}?v=`+pe,{transformResponse:me=>me}).then(me=>{if(!(h||te!==p)){if(e.type=re,e.content=me.data,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(me.data,o.url()+"/../"),e.type="html"),e.type=="org"){let he=contentAbs2Relative(me.data);var be=new Org.Parser().parse(he).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(be.toString()),e.type="html"}e.type=="code"&&me.headers("content-type")=="application/octet-stream"&&(e.type="binary",e.content="binary"),a.timeout(()=>{Prism.highlightAll()},50)}},me=>{if(!(h||te!==p)){e.type="error",e.content="unknown_error";try{me.data=JSON.parse(me.data),me.data.error?e.content=me.data.error:e.content=me.data}catch{console.log(me),me.status==-1?e.content="request_error":me.status==502&&(e.content="unreachable")}}})}function X(){p++,e.content="",e.file=D();let U="0";e.file&&e.file.sha&&(U=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${U}`;let ue=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);e.fileBaseUrl=`/api/repo/${e.repoId}/file/${ue?encodePathForUrl(ue):""}`,e.showSource=!1,e.allowScripts=!1;let te=e.filePath.toLowerCase(),re=te.lastIndexOf(".");if(re>-1&&(te=te.substring(re+1)),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:15,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!0,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:A(te),onLoad:function(pe){let me=ace.require("ace/range").Range,be=null;function he(Se,R){be!==null&&(pe.session.removeMarker(be),be=null),Se!=null&&(be=pe.session.addMarker(new me(Se,0,R,1),"highlighted-line","fullLine"))}function le(Se){let R=window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!R){he(null);return}let V=parseInt(R[1])-1,H=R[2]?parseInt(R[2])-1:V;he(V,H),Se&&a.timeout(()=>{pe.scrollToLine(V,!0,!0,function(){})},100)}le(!0);let Ie=null;pe.on("guttermousedown",function(Se){let R=Se.getDocumentPosition().row,V=Se.domEvent&&Se.domEvent.shiftKey,H=R,se=R;V&&Ie!==null?(H=Math.min(Ie,R),se=Math.max(Ie,R)):Ie=R;let ie=H===se?`#L${H+1}`:`#L${H+1}-L${se+1}`,qe=window.location.pathname+window.location.search+ie;window.history.replaceState(null,"",qe),he(H,se),Se.stop()}),u(window,"hashchange",()=>le(!1)),pe.setFontSize(e.aceOption.fontSize),pe.setReadOnly(e.aceOption.readOnly),pe.setKeyboardHandler(e.aceOption.keyBinding),pe.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),pe.setOption("displayIndentGuides",!0),pe.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(pe.renderer.$cursorLayer.element.style.display="none"),pe.setHighlightGutterLine(e.aceOption.highlightGutterLine),pe.setShowInvisibles(e.aceOption.showInvisibles),pe.setDisplayIndentGuides(e.aceOption.showIndentGuides),pe.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),pe.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),pe.session.setUseSoftTabs(e.aceOption.useSoftTab),pe.session.setTabSize(e.aceOption.tabSize),pe.setBehavioursEnabled(e.aceOption.enableBehaviours),pe.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets)}},e.on("dark-mode",(pe,me)=>{me?e.aceOption.theme="nord_dark":e.aceOption.theme="chrome"}),e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=q(te),e.type=="pdf"){e.content="pdf";return}Z(e.filePath,e.file)}function K(){p++,e.files=[],e.content=null,e.fileCounts=null,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=r.repoId,e.type="loading",e.filePath=r.path||"",e.paths=e.filePath.split("/");let U=e.repoId;C(function(ue){N();var te=i.resolve();for(let re=0;re0?e.paths.slice(0,re).join("/"):"";te=te.then(function(){return e.getFiles(pe)}).then(function(){if(e.type==="error")return i.reject("error")})}te.then(function(){h||U!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(T(),X()))})})}K()},Ia=function(e,t,o,r,n){async function i(p){t.get(`/api/pr/${e.pullRequestId}/options`).then(h=>{if(e.options=h.data,e.options.url){window.location=e.options.url;return}p&&p(h.data)},h=>{e.type="error",e.content=h.data.error})}async function a(p){t.get(`/api/pr/${e.pullRequestId}/content`).then(h=>{e.details=h.data,e.tabState={active:h.data.diff?"diff":"comments"},p&&p(h.data)},h=>{e.type="error",e.content=h.data.error})}function u(){e.pullRequestId=r.pullRequestId,e.type="loading",i(p=>{a()})}u()},Va=function(e,t,o,r,n){async function i(p){t.get(`/api/gist/${e.gistId}/options`).then(h=>{if(e.options=h.data,e.options.url){window.location=e.options.url;return}p&&p(h.data)},h=>{e.type="error",e.content=h.data.error})}async function a(p){t.get(`/api/gist/${e.gistId}/content`).then(h=>{e.details=h.data;let v=h.data&&h.data.files&&h.data.files.length;e.tabState={active:v?"files":"comments"},p&&p(h.data)},h=>{e.type="error",e.content=h.data.error})}function u(){e.gistId=r.gistId,e.type="loading",i(()=>{a()})}u()},Pa=function(e,t,o){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.search="";let r="conferences.filterPrefs",n={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},i=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},n.filters.status,i.filters&&i.filters.status||{})},e.orderBy=i.orderBy||n.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(r,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(u){if(confirm(`Are you sure that you want to remove the conference ${u.name}? All the repositories linked to this conference will expire.`)){let p=ze({title:`Removing ${u.name}...`,date:new Date,body:`The conference ${u.name} is going to be removed.`});e.addToast(p),t.delete(`/api/conferences/${u.conferenceID}`).then(()=>{p.title=`${u.name} is removed.`,p.body=`The conference ${u.name} is removed.`,a()})}};function a(){t.get("/api/conferences/").then(u=>{e.conferences=u.data||[]},u=>{console.error(u)})}a(),e.conferenceFilter=u=>e.filters.status[u.status]==!1?!1:e.search.trim().length==0||u.name.indexOf(e.search)>-1||u.conferenceID.indexOf(e.search)>-1},Jo=function(e,t,o,r){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.plans=[],e.editionMode=!1;function n(){t.get("/api/conferences/"+r.conferenceId).then(v=>{e.options=v.data,e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}r.conferenceId&&(e.editionMode=!0,n());function i(){t.get("/api/conferences/plans").then(v=>{e.plans=v.data,e.plan=e.plans.filter(g=>g.id==e.options.plan.planID)[0]})}i();let a=new Date;a.setDate(1),a.setMonth(a.getMonth()+1);let u=new Date(a);u.setMonth(a.getMonth()+7,0),e.options={startDate:a,endDate:u,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(v=>v.id==e.options.plan.planID)[0]});function p(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function h(v){switch(v){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){let v=ze({title:`Creating ${e.options.name}...`,date:new Date,body:`The conference ${e.options.conferenceID} is in creation.`});e.editionMode&&(v.title=`Updating ${e.options.name}...`,v.body=`The conference '${e.options.conferenceID}' is updating.`),e.addToast(v),p(),t.post("/api/conferences/"+(e.editionMode?e.options.conferenceID:""),e.options).then(()=>{e.editionMode?(v.title=`${e.options.name} updated`,v.body=`The conference '${e.options.conferenceID}' is updated.`):(v.title=`${e.options.name} created`,v.body=`The conference '${e.options.conferenceID}' is created.`),o.url("/conference/"+e.options.conferenceID)},g=>{h(g.data.error),e.removeToast(v)})}},qa=function(e,t,o,r){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,expired:!1,removed:!1}},e.orderBy="-anonymizeDate",e.repoFiler=i=>e.filters.status[i.status]==!1?!1:e.search.trim().length==0||i.source.fullName.indexOf(e.search)>-1||i.repoId.indexOf(e.search)>-1;function n(){t.get("/api/conferences/"+r.conferenceId).then(i=>{e.conference=i.data})}n()},Ma=function(e,t){e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(o=>{e.connections=o.data}).catch(o=>{e.connectionError=o.data?.error||"Unable to load connections."}),e.changeConnection=async(o,r,n)=>{e.busy=!0,e.connectionError="";try{let i=await t.post("/github/connections/migrate",{type:o.type,id:o.id,connection:r,preview:n},{headers:{"X-CSRF-Token":e.connections.csrf}});n?o.eligible=i.data.eligible:await e.loadConnections()}catch(i){e.connectionError=i.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(o){e.connectionError=o.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()};var $a=function(e,t,o){let r=mt(),n=as();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let i=k=>{if(k.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){k.preventDefault();let b=document.querySelector('.admin-filter-toolbar input[type="search"]');b&&b.focus()}};n(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=k=>{k==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[k]="",e.query.page=1},e.chips=[];let a=()=>{let k=[];e.query.owner&&k.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&k.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=k};e.showStatusMessage=k=>{let b=k.statusMessage||"(no message)";window.prompt(`Status message for ${k.repoId} (${k.status}):`,b)},e.fetchGithubInfo=k=>{let b=window.open("","_blank");b&&b.document.write("
Loading GitHub info for "+k.repoId+"...
"),t.get("/api/admin/repos/"+k.repoId+"/github").then(T=>{b&&(b.document.open(),b.document.write('
'+JSON.stringify(T.data,null,2).replace(/[<>]/g,N=>N==="<"?"<":">")+"
"),b.document.close())},T=>{let N=T&&T.data?JSON.stringify(T.data,null,2):String(T);b&&(b.document.body.innerHTML='
'+N+"
")})},e.statusCountFor=k=>{let b=(e.statusCounts||[]).find(T=>T._id===k);return b?b.count:0},e.statusStorageFor=k=>{let b=(e.statusCounts||[]).find(T=>T._id===k);return b?b.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=k=>{e.query.sort===k?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=k,e.query.direction="desc"),e.query.page=1},e.sortIcon=k=>e.query.sort===k?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.repos.filterPrefs",p={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},h=loadFilterPrefs(u)||{};e.query=Object.assign({},p,h,{page:1,search:""});let v=o.search();v.owner&&(e.query.owner=v.owner),v.conference&&(e.query.conference=v.conference),v.search&&(e.query.search=v.search);let g="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(g)||"[]"),e.savePreset=()=>{let k=window.prompt("Preset name:");if(!k)return;let b=Object.assign({},e.query);delete b.page,e.presets=(e.presets||[]).filter(T=>T.name!==k),e.presets.push({name:k,query:b}),localStorage.setItem(g,JSON.stringify(e.presets))},e.applyPreset=k=>{Object.assign(e.query,k.query,{page:1})},e.deletePreset=k=>{e.presets=(e.presets||[]).filter(b=>b.name!==k.name),localStorage.setItem(g,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(k=>{e.selected[k.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(k=>e.selected[k.repoId]),e.bulkRefresh=()=>{let k=e.selectedRepos();k.length&&confirm(`Force refresh ${k.length} repositories?`)&&k.forEach(b=>e.updateRepository(b))},e.bulkRemoveCache=()=>{let k=e.selectedRepos();k.length&&confirm(`Purge cache for ${k.length} repositories?`)&&k.forEach(b=>e.removeCache(b))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let k=new URLSearchParams(Object.entries(e.query).filter(([,b])=>b!==""&&b!==!1&&b!=null));k.set("format","csv"),k.set("limit","10000"),window.open("/api/admin/repos?"+k.toString(),"_blank")},e.removeCache=k=>{confirm("Remove cached files for "+k.repoId+"?")&&t.delete("/api/admin/repos/"+k.repoId).then(()=>f(),b=>console.error(b))},e.removeRepository=k=>{confirm("Remove repository "+k.repoId+"?")&&t.delete("/api/repo/"+k.repoId+"/").then(()=>f(),b=>console.error(b))},e.updateRepository=k=>{let b=ze({title:`Refreshing ${k.repoId}...`,date:new Date,body:`The repository ${k.repoId} is going to be refreshed.`});e.toasts.push(b),t.post(`/api/repo/${k.repoId}/refresh`).then(T=>{T.data.status=="ready"?b.title=`${k.repoId} is refreshed.`:b.title=`Refreshing of ${k.repoId}.`},T=>{b.title=`Error during the refresh of ${k.repoId}.`,b.body=T.body})},e.fetchError=null;function f(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(k=>{e.total=k.data.total,e.totalPage=Math.ceil(k.data.total/e.query.limit),e.repositories=k.data.results,e.statusCounts=k.data.statusCounts||[],e.totalSize=k.data.totalSize||0,e.allSelected=!1},k=>{e.fetchError=k&&k.data&&k.data.error||"Failed to load repositories",console.error(k)})}f();let w=null;e.watch("query",()=>{r.timeout.cancel(w),w=r.timeout(f,500);let{page:k,search:b,...T}=e.query;saveFilterPrefs(u,T),a()},!0),a()},La=function(e,t,o){let r=mt(),n=as();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let i=f=>{if(f.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){f.preventDefault();let w=document.querySelector('.admin-filter-toolbar input[type="search"]');w&&w.focus()}};n(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=f=>{f==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[f]="",e.query.page=1},e.chips=[];let a=()=>{let f=[];e.query.role&&f.push({key:"role",label:"Role",value:e.query.role}),e.chips=f};e.statusCountFor=f=>{let w=(e.statusCounts||[]).find(k=>k._id===f);return w?w.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=f=>{e.query.sort===f?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=f,e.query.direction="desc"),e.query.page=1},e.sortIcon=f=>e.query.sort===f?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.users.filterPrefs",p={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},h=loadFilterPrefs(u)||{};e.query=Object.assign({},p,h,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(f=>{e.selected[f.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(f=>e.selected[f.username]),e.banUser=f=>{confirm(`Ban user ${f.username}?`)&&t.post(`/api/admin/users/${f.username}/ban`).then(v,w=>console.error(w))},e.activateUser=f=>{t.post(`/api/admin/users/${f.username}/activate`).then(v,w=>console.error(w))},e.bulkBan=()=>{let f=e.selectedUsers();f.length&&confirm(`Ban ${f.length} users?`)&&f.forEach(w=>e.banUser(w))},e.exportCsv=()=>{let f=new URLSearchParams(Object.entries(e.query).filter(([,w])=>w!==""&&w!==!1&&w!=null));f.set("format","csv"),f.set("limit","10000"),window.open("/api/admin/users?"+f.toString(),"_blank")},e.fetchError=null;function v(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(f=>{e.total=f.data.total,e.totalPage=Math.ceil(f.data.total/e.query.limit),e.users=f.data.results,e.statusCounts=f.data.statusCounts||[],e.allSelected=!1},f=>{e.fetchError=f&&f.data&&f.data.error||"Failed to load users",console.error(f)})}v();let g=null;e.watch("query",()=>{r.timeout.cancel(g),g=r.timeout(v,500);let{page:f,search:w,...k}=e.query;saveFilterPrefs(u,k),a()},!0),a()},Fa=function(e,t,o,r){let n=mt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let i="admin.user.filterPrefs",a={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},u=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},a.filters.status,u.filters&&u.filters.status||{})},e.query={sort:u.sort||a.sort,direction:u.direction||a.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=f=>{e.query.sort===f?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=f,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=f=>e.query.sort===f?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(i,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=f=>(e.repositories||[]).filter(w=>w.status===f).length,e.repoFiler=f=>e.filters.status[f.status]==!1?!1:!!(e.search.trim().length==0||f.source.fullName.indexOf(e.search)>-1||f.repoId.indexOf(e.search)>-1||f.statusMessage&&f.statusMessage.indexOf(e.search)>-1||f.conference&&f.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(f=>{e.selected[f.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(f=>e.selected[f.repoId]),e.bulkRefresh=()=>{let f=e.selectedRepos();f.length&&confirm(`Force refresh ${f.length} repositories?`)&&f.forEach(w=>e.updateRepository(w))},e.bulkRemoveCache=()=>{let f=e.selectedRepos();f.length&&confirm(`Purge cache for ${f.length} repositories?`)&&f.forEach(w=>e.removeCache(w))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let f=e.filteredRepositories||e.repositories,k=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),b=f.map(D=>[D.repoId,D.status,D.statusMessage||"",D.pageView||0,D.anonymizeDate||"",D.source&&D.source.fullName||"",D.conference||"",D.size&&D.size.storage||0].map(I=>{let C=String(I??"");return/[",\n\r]/.test(C)?'"'+C.replace(/"/g,'""')+'"':C}).join(",")),T=new Blob([k+` +`).map(h=>h.trim()).filter(h=>h.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",p).then(()=>{i(),e.saving=!1,e.message="Saved",a&&r.cancel(a),a=r(()=>{e.message=null},2500)},h=>{e.saving=!1;let y=h&&h.data&&h.data.error;o("ERRORS."+y).then(g=>{e.error=g},()=>{e.error="Unable to save your defaults. Please try again."})})},e.deleteAccount=()=>{confirm("Delete your account? All your anonymized repositories, gists, and pull requests will be removed, and your personal data will be erased. This cannot be undone.")&&(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},Ra=function(e,t,o){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(r=>{o.url("/dashboard")},r=>{e.error=r.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},Ta=function(e,t,o,r,n){e.user&&!e.user.status&&o.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&o.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(u){e.feature=u},e.featureHref=function(u){return u.needsUser&&!e.user?"/github/login":u.href},e.featureTarget=function(u){return u.needsUser&&!e.user?"_self":u.target||void 0},e.featureKeydown=function(u,p){let h={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[u.key];if(h===void 0)return;u.preventDefault();let y=e.features.length,g=h==="first"?0:h==="last"?y-1:(p+h+y)%y;e.feature=e.features[g].key,n(()=>{let m=r.document.getElementById("feature-tab-"+e.feature);m&&m.focus()})},e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}];function i(){t.get("/api/stat/").then(u=>{e.stat=u.data,e.cards[0].total=u.data.nbRepositories,e.cards[1].total=u.data.nbUsers,e.cards[2].total=u.data.nbPageViews,e.cards[3].total=u.data.nbPullRequests})}i();function a(u){let p={series:u,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!u||u.length<2)return p;let h=new Array(u.length-1);for(let b=1;b=2){let b=h[y-2];b&&(p.pctChange=(p.deltaToday-b)/b*100)}return p.pctAbs=Math.round(Math.abs(p.pctChange)),p.isUp=p.pctChange>=0,p}e.history={repositories:a([]),users:a([]),pageViews:a([]),pullRequests:a([])},t.get("/api/stat/history?days=60").then(u=>{let p=u.data||[];e.history={repositories:a(p.map(h=>h.nbRepositories||0)),users:a(p.map(h=>h.nbUsers||0)),pageViews:a(p.map(h=>h.nbPageViews||0)),pullRequests:a(p.map(h=>h.nbPullRequests||0))}})},Oa=function(e,t,o,r,n,i){let a=mt();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),a.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"In progress",error:"Error",expired:"Expired",removed:"Removed"};let u=["queue","download","downloaded","preparing","anonymizing"];function p(C){return C==="ready"||C==="error"?C:C==="expired"||C==="expiring"?"expired":C==="removed"||C==="removing"?"removed":(u.indexOf(C)>-1,"progress")}let h=7200*1e3,y="dashboard.filterPrefs",g={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},m=loadFilterPrefs(y)||{};e.typeFilter=m.typeFilter||g.typeFilter,e.filters={status:Object.assign({},g.filters.status,m.filters&&m.filters.status||{})},e.orderBy=m.orderBy||g.orderBy;let w={_name:{label:"Name",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=w,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let C=w[e.sortField()];return C?C.label:"Custom"},e.isSortedBy=C=>e.sortField()===C,e.setSort=(C,A)=>{typeof A!="boolean"&&(A=e.isSortedBy(C)?!e.sortDesc():!!(w[C]&&w[C].defaultDesc)),e.orderBy=(A?"-":"")+C},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(y,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(y,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),i.load().then(C=>{e.quota=C},console.error);function k(C,A,q,x,X,K){C.pageView||(C.pageView=0),C.lastView||(C.lastView=""),C.options=C.options||{},C.options.terms=(C.options.terms||[]).filter(ue=>ue),C._id=A||"",C._source=x,C._broken=!A,C._name=A||x||"(unnamed)",C._editUrl=A?X:null,C._viewUrl=A?K:null,C._broken&&(C.status="error",C.statusMessage="incomplete_record"),C._statusKey=p(C.status);let U=C.anonymizeDate||C.lastView;return C._stale=C._statusKey==="progress"&&!!U&&Date.now()-new Date(U).getTime()>h,C.status==="expired"||C.status==="expiring"?C._expiry={kind:"expired",date:C.options.expirationDate}:C.status!=="ready"?C._expiry={kind:"none"}:C.options.expirationMode==="never"||!C.options.expirationDate?C._expiry={kind:"never"}:C._expiry={kind:"date",date:C.options.expirationDate},C}function b(C){return t.get(C).then(A=>A.data||[],A=>(console.error(A),[]))}function T(){return e.loading=!0,r.all([b("/api/user/anonymized_repositories"),b("/api/user/anonymized_pull_requests"),b("/api/user/anonymized_gists")]).then(C=>{let A=C[0],q=C[1],x=C[2],X=[];A.forEach(K=>{K._type="repo";let U=K.source||{};X.push(k(K,K.repoId,K.repoId,U.fullName,"/anonymize/"+K.repoId,"/r/"+K.repoId+"/"))}),q.forEach(K=>{K._type="pr";let U=K.source||{};X.push(k(K,K.pullRequestId,K.pullRequestId,U.repositoryFullName+"#"+U.pullRequestId,"/pull-request-anonymize/"+K.pullRequestId,"/pr/"+K.pullRequestId+"/"))}),x.forEach(K=>{K._type="gist";let U=K.source||{};X.push(k(K,K.gistId,K.gistId,U.gistId,"/gist-anonymize/"+K.gistId,"/gist/"+K.gistId+"/"))}),e.items=X,e.loading=!1})}T(),e.openItem=(C,A)=>{if(!C._viewUrl)return;let q=A&&A.target;q&&q.closest&&q.closest("a, button, .dropdown, input")||(n.location.href=C._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(C=>e.filters.status[C]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0,e.hasActiveFilters=()=>e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(C=>e.filters.status[C]===!1),e.clearFilters=()=>{e.typeFilter="all",e.search="",Object.keys(e.filters.status).forEach(C=>{e.filters.status[C]=!0})};function N(C,A){t.get("/api/repo/"+C).then(q=>{for(let x of e.items)if(x._type==="repo"&&x.repoId==C){x.status=q.data.status;break}if(q.data.status=="ready"||q.data.status=="error"||q.data.status=="removed"||q.data.status=="expired"){A(q.data);return}a.timeout(()=>N(C,A),2500)})}let R=C=>C==="repo"?"repository":C==="gist"?"gist":"pull request",I=C=>C==="repo"?"/api/repo":C==="gist"?"/api/gist":"/api/pr";e.removeItem=C=>{let A=R(C._type);if(confirm(`Are you sure that you want to remove the ${A} ${C._id}?`)){let q=ze({title:`Removing ${C._id}...`,date:new Date,body:`The ${A} ${C._id} is going to be removed.`});e.addToast(q);let x=`${I(C._type)}/${C._id}`;t.delete(x).then(()=>{C._type==="repo"?N(C._id,()=>{q.title=`${C._id} is removed.`,q.body=`The ${A} ${C._id} is removed.`}):(q.title=`${C._id} is removed.`,q.body=`The ${A} ${C._id} is removed.`,T())},X=>{q.title=`Error during the removal of ${C._id}.`,q.body=X.body,T()})}},e.refreshItem=C=>{let A=R(C._type),q=ze({title:`Refreshing ${C._id}...`,date:new Date,body:`The ${A} ${C._id} is going to be refreshed.`});e.addToast(q);let x=`${I(C._type)}/${C._id}/refresh`;t.post(x).then(()=>{C._type==="repo"?N(C._id,()=>{q.title=`${C._id} is refreshed.`,q.body=`The ${A} ${C._id} is refreshed.`}):(q.title=`${C._id} is refreshed.`,q.body=`The ${A} ${C._id} is refreshed.`,T())},X=>{q.title=`Error during the refresh of ${C._id}.`,q.body=X.body,T()})},e.extendItem=C=>{let A=R(C._type),q=ze({title:`Extending ${C._id}...`,date:new Date,body:`The expiration of ${A} ${C._id} is going to be extended by 6 months.`});e.addToast(q);let x=`${I(C._type)}/${C._id}/extend`;t.post(x).then(()=>{C._type==="repo"?N(C._id,()=>{q.title=`${C._id} is extended.`,q.body=`The expiration of ${A} ${C._id} is extended by 6 months.`}):(q.title=`${C._id} is extended.`,q.body=`The expiration of ${A} ${C._id} is extended by 6 months.`,T())},X=>{q.title=`Error during the extension of ${C._id}.`,q.body=X.data&&X.data.error||X.body,T()})},e.itemFilter=C=>{if(e.typeFilter!=="all"&&C._type!==e.typeFilter||e.filters.status[C._statusKey]===!1)return!1;let A=e.search.trim().toLowerCase();return!!(A.length==0||C._source&&String(C._source).toLowerCase().indexOf(A)>-1||C._id&&String(C._id).toLowerCase().indexOf(A)>-1||C.conference&&String(C.conference).toLowerCase().indexOf(A)>-1)}};var Aa=function(e,t,o){let r=mt();e.repoId=o.repoId,e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="";var n=null;let i=null,a=!1;function u(h){e.rateLimitResetAt=h,n&&r.interval.cancel(n);function y(){var g=Math.max(0,Math.ceil((h-Date.now())/1e3));if(g<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,r.interval.cancel(n),n=null;else{var m=Math.floor(g/60),w=g%60;e.rateLimitCountdown=m>0?m+"m "+w+"s":w+"s"}}y(),n=r.interval(y,1e3)}e.on("dispose",function(){a=!0,n&&r.interval.cancel(n),i&&r.timeout.cancel(i)});function p(h){if(!h)return h;var y=h.match(/^rate_limited:(\d+)$/);return y?(u(parseInt(y[1],10)),null):(e.rateLimitResetAt=0,h)}e.getStatus=()=>{a||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(h=>{if(!a){e.repo=h.data,h.data.rateLimitResetAt?u(h.data.rateLimitResetAt):e.repo.statusMessage=p(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var y=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(y=!1),y&&(i=r.timeout(e.getStatus,2e3))}},h=>{e.error=h.data.error})},e.getStatus()},Yn=function(e,t,o,r,n,i,a){e.sourceUrl="",e.githubConnection=void 0,e.githubConnections=null,e.grantGitHubAccess=()=>{let D={};for(let ie of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])D[ie]=e[ie];sessionStorage.setItem("github-access-draft",JSON.stringify({path:n.path(),savedAt:Date.now(),draft:D}));let V=n.path(),H=m(e.sourceUrl)||"",se=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=se+"?returnTo="+encodeURIComponent(V)+"&repository="+encodeURIComponent(H)+"&install=1"},e.chooseGitHubConnection=async D=>{e.githubConnection=D,e.readme="",e.sourceUrl&&await k()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function u(){let D=new Date;return D.setMonth(D.getMonth()+6),D}e.options.expirationDate=u();function p(D){let V=D.getFullYear(),H=String(D.getMonth()+1).padStart(2,"0"),se=String(D.getDate()).padStart(2,"0");return`${V}-${H}-${se}`}e.minExpirationDate=p(new Date);let h=new Date;h.setFullYear(h.getFullYear()+1),e.maxExpirationDate=p(h),e.anonymize_readme="",e.readme="",e.html_readme="",e.isUpdate=!1;function y(D){t.get("/api/user/default").then(V=>{let H=V.data;H.terms&&(e.defaultTerms=H.terms.join(` +`)),e.options=Object.assign({},e.options,H.options),e.options.expirationDate=H.options&&H.options.expirationDate?new Date(H.options.expirationDate):u(),D&&D()})}function g(D,V,H){e.anonymize&&e.anonymize[D]&&e.anonymize[D].setValidity(V,H)}function m(D){try{let V=parseGithubUrl(D);if(V&&V.owner&&V.repo)return V.owner+"/"+V.repo}catch{}return null}function w(){return!e.isUpdate||!e._originalRepositoryID?void 0:m(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function k(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function b(){let D;try{D=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!D||D.path!==n.path()||Date.now()-D.savedAt>=30*6e4)return!1;for(let V of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(D.draft,V)&&(e[V]=D.draft[V]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await k(),sessionStorage.removeItem("github-access-draft"),!0}y(()=>{!r.repoId&&!r.pullRequestId&&!r.gistId&&a(b,0),r.repoId&&r.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=r.repoId,t.get("/api/repo/"+e.repoId).then(async D=>{e.githubConnection=D.data.connection||"oauth",e.sourceUrl="https://github.com/"+D.data.source.fullName,e._originalFullName=D.data.source.fullName,e.terms=D.data.options.terms.filter(V=>V).join(` +`),e.source=D.data.source,e.role=D.data.role||"owner",e.coauthors=D.data.coauthors||[],e._originalBranch=D.data.source.branch,e.options=Object.assign({},e.options,D.data.options),e.conference=D.data.conference,e._originalConference=D.data.conference,e.repositoryID=D.data.source.repositoryID,e._originalRepositoryID=D.data.source.repositoryID,D.data.options.expirationDate&&(e.options.expirationDate=new Date(D.data.options.expirationDate)),!await b()&&(await Promise.all([T(),N()]),A())},()=>{n.url("/404")})),r.pullRequestId&&r.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=r.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async D=>{if(e.githubConnection=D.data.connection||"oauth",e.sourceUrl="https://github.com/"+D.data.source.repositoryFullName+"/pull/"+D.data.source.pullRequestId,e.terms=D.data.options.terms.filter(V=>V).join(` +`),e.source=D.data.source,e.options=Object.assign({},e.options,D.data.options),e.conference=D.data.conference,e._originalConference=D.data.conference,D.data.options.expirationDate&&(e.options.expirationDate=new Date(D.data.options.expirationDate)),!await b())try{e.details=(await t.get(`/api/pr/${D.data.source.repositoryFullName}/${D.data.source.pullRequestId}`,{params:{connection:e.githubConnection}})).data}catch(V){let H=V&&V.data&&V.data.error;H&&(i("ERRORS."+H).then(se=>{e.addToast({title:"Error",date:new Date,body:se}),e.error=se},console.error),Se(H))}},()=>{n.url("/404")})),r.gistId&&r.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=r.gistId,t.get("/api/gist/"+e.gistId).then(async D=>{e.sourceUrl="https://gist.github.com/"+D.data.source.gistId,e.terms=D.data.options.terms.filter(V=>V).join(` +`),e.source=D.data.source,e.options=Object.assign({},e.options,D.data.options),e.conference=D.data.conference,e._originalConference=D.data.conference,D.data.options.expirationDate&&(e.options.expirationDate=new Date(D.data.options.expirationDate)),!await b()&&(e.details=(await t.get(`/api/gist/source/${D.data.source.gistId}`)).data)},()=>{n.url("/404")}))}),t.get("/github/connections").then(D=>{e.githubConnections=D.data,!r.repoId&&!r.pullRequestId&&!r.gistId&&e.githubConnection===void 0&&D.data.appEnabled&&D.data.appConnected&&(e.githubConnection="github-app")}).catch(()=>{}),e.urlSelected=async(D=!1)=>{D||(e.terms=e.defaultTerms),!D&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],D||(e.source={type:"GitHubStream",branch:"",commit:""}),e.anonymize_readme="",e.readme="",e.html_readme="",e.detectedType=null;let V;try{V=parseGithubUrl(e.sourceUrl)}catch{g("sourceUrl","github",!1);return}g("sourceUrl","github",!0);try{V.gistId&&!V.repo?(e.detectedType="gist",e.source={gistId:V.gistId},await ue()):V.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:V.owner+"/"+V.repo,pullRequestId:V.pullRequestId},await q()):(e.detectedType="repo",await Promise.all([T(),N()]),A())}catch{return}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let D=e.branches.filter(H=>H.name==e.source.branch)[0];if(!D)return;!(e.isUpdate&&e._originalBranch===e.source.branch&&!!e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=D.commit),e.readme=D.readme,await N(),A()}),e.getBranches=async D=>{let V=parseGithubUrl(e.sourceUrl);try{let H=await t.get(`/api/repo/${V.owner}/${V.repo}/branches`,{params:{anonymizedRepoId:e.isUpdate&&r.repoId&&m(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,force:D===!0?"1":"0",repositoryID:w()}});e.branches=H.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let se=e.branches.filter(ie=>ie.name==e.source.branch);se.length>0&&(!(!D&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=se[0].commit),e.readme=se[0].readme,await N(D))}catch(H){e.branches=[],e.sourceUnreachable=H&&(H.status===404||H.data&&H.data.error==="repo_not_found");let se=H&&H.data&&H.data.error||(H&&H.status===404?"repo_not_found":"unknown_error");i("ERRORS."+se).then(ie=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:ie}),e.error=ie},console.error),typeof g=="function"&&g("sourceUrl","missing",!1)}};async function T(){let D=parseGithubUrl(e.sourceUrl);try{le();let V=await t.get(`/api/repo/${D.owner}/${D.repo}/`,{params:{anonymizedRepoId:e.isUpdate&&r.repoId&&m(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,repositoryID:w(),force:"1"}});e.details=V.data,e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches()}catch(V){throw V.data&&(i("ERRORS."+V.data.error).then(H=>{e.addToast({title:"Error",date:new Date,body:H}),e.error=H},console.error),Se(V.data.error)),g("sourceUrl","missing",!1),V}}async function N(D){if(e.readme&&!D)return e.readme;let V=parseGithubUrl(e.sourceUrl);try{let H=await t.get(`/api/repo/${V.owner}/${V.repo}/readme`,{params:{anonymizedRepoId:e.isUpdate&&r.repoId&&m(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,force:D===!0?"1":"0",branch:e.source.branch,repositoryID:w()}});e.readme=H.data}catch{e.readme=""}}function R(){let D={terms:e.terms?e.terms.split(` +`):[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(D.branchName=e.source.branch);try{let V=parseGithubUrl(e.sourceUrl);D.repoName=`${V.owner}/${V.repo}`}catch{}return D}function I(D,V){let H=null,se=0;return function(){H&&a.cancel(H),H=a(()=>{H=null;let qe=++se,L=D();L&&t.post("/api/anonymize-preview",L).then(ne=>{qe===se&&V(ne.data)},()=>{})},200)}}let C=I(()=>e.readme?{content:e.readme,options:R()}:null,D=>{e.anonymize_readme=D.content||"";let V="";try{let se=parseGithubUrl(e.sourceUrl),ie=e.source.branch||e.details&&e.details.defaultBranch||"main";V=`https://github.com/${se.owner}/${se.repo}/raw/${ie}/`}catch{}let H=renderMD(e.anonymize_readme,V);e.html_readme=H,a(Prism.highlightAll,150)});function A(){!e.anonymize||!e.anonymize.terms||(e.termsRegexWarning=!!e.terms&&!!e.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),C())}async function q(){let D=parseGithubUrl(e.sourceUrl);try{le();let V=await t.get(`/api/pr/${D.owner}/${D.repo}/${D.pullRequestId}`,{params:{connection:e.githubConnection}});e.details=V.data,e.pullRequestId||(e.pullRequestId=D.repo+"-PR"+D.pullRequestId+"-"+generateRandomId(4))}catch(V){throw V.data&&(i("ERRORS."+V.data.error).then(H=>{e.addToast({title:"Error",date:new Date,body:H}),e.error=H},console.error),Se(V.data.error)),g("sourceUrl","missing",!1),V}}let x=ze(new Map),X=new Set;function K(){let D=new Set,V=e.details&&e.details.pullRequest;if(!V)return D;typeof V.title=="string"&&D.add(V.title),typeof V.body=="string"&&D.add(V.body),typeof V.diff=="string"&&D.add(V.diff);let H=V.comments||[];for(let se of H)typeof se.author=="string"&&D.add(se.author),typeof se.body=="string"&&D.add(se.body);return D}let U=I(()=>{let D=K();X=D;let V=Array.from(D);return V.length===0?null:{contents:V,options:R()}},D=>{if(!D||!Array.isArray(D.contents))return;let V=Array.from(X),H=new Map;for(let se=0;sex.set(ie,se))});e.anonymizePrContent=function(D){return D&&(x.has(D)?x.get(D):(X.has(D)||U(),D))};async function ue(){let D=parseGithubUrl(e.sourceUrl);try{le();let V=await t.get(`/api/gist/source/${D.gistId}`);e.details=V.data,e.gistId||(e.gistId="gist-"+D.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(V){throw V.data&&(i("ERRORS."+V.data.error).then(H=>{e.addToast({title:"Error",date:new Date,body:H}),e.error=H},console.error),Se(V.data.error)),g("sourceUrl","missing",!1),V}}let te=ze(new Map),re=new Set;function pe(){let D=new Set,V=e.details&&e.details.gist;if(!V)return D;typeof V.description=="string"&&D.add(V.description),typeof V.ownerLogin=="string"&&D.add(V.ownerLogin);let H=V.files||[];for(let ie of H)typeof ie.filename=="string"&&D.add(ie.filename),typeof ie.content=="string"&&D.add(ie.content);let se=V.comments||[];for(let ie of se)typeof ie.author=="string"&&D.add(ie.author),typeof ie.body=="string"&&D.add(ie.body);return D}let me=I(()=>{let D=pe();re=D;let V=Array.from(D);return V.length===0?null:{contents:V,options:R()}},D=>{if(!D||!Array.isArray(D.contents))return;let V=Array.from(re),H=new Map;for(let se=0;sete.set(ie,se)),be()});e.anonymizeGistContent=function(D){return D&&(te.has(D)?te.get(D):(re.has(D)||me(),D))},e.previewGistFiles=[];function be(){let D=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=D.map(V=>({filename:e.anonymizeGistContent(V.filename),content:e.anonymizeGistContent(V.content),language:V.language}))}e.watch("details.gist.files",be,!0),e.watch("terms",be);function he(){let D=e.conference;if(e.conference_data=null,!D)return;let V=e.isUpdate&&D===e._originalConference;t.get("/api/conferences/"+D).then(H=>{e.conference===D&&(e.conference_data=H.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!V&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===D&&(e.conference_data=null)})}function le(){g("repoId","used",!0),g("repoId","format",!0),g("pullRequestId","used",!0),g("pullRequestId","format",!0),g("gistId","used",!0),g("gistId","format",!0),g("sourceUrl","used",!0),g("sourceUrl","missing",!0),g("sourceUrl","access",!0),g("sourceUrl","github",!0),g("commit","exists",!0),g("conference","activated",!0),g("terms","format",!0),e.termsRegexWarning=!1}function Ie(){let D=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||D&&D.invalid?(D&&D.setDirty&&D.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function Se(D){let V=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(D){case"repoId_already_used":g(V,"used",!1);break;case"invalid_repoId":g(V,"format",!1);break;case"options_not_provided":g(V,"format",!1);break;case"repo_already_anonymized":g("sourceUrl","used",!1);break;case"invalid_terms_format":g("terms","format",!1);break;case"repo_not_found":g("sourceUrl","missing",!1);break;case"repo_not_accessible":g("sourceUrl","access",!1);break;case"commit_not_found":g("commit","exists",!1);break;case"conf_not_activated":g("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let D=(e.coauthorSearch||"").trim();if(e.coauthorError="",D.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:D}}).then(V=>{let H=new Set((e.coauthors||[]).map(se=>(se.username||"").toLowerCase()));e.coauthorResults=(V.data||[]).filter(se=>!H.has((se.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(D,V)=>{V&&V.preventDefault(),!(!D||!D.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:D.username}).then(H=>{e.coauthors=H.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},H=>{let se=H&&H.data&&H.data.error||"unknown_error";e.coauthorError=se})},e.removeCoauthor=D=>{!D||!D.username||confirm("Remove co-author "+D.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(D.username)).then(V=>{e.coauthors=V.data||[]},V=>{let H=V&&V.data&&V.data.error||"unknown_error";e.coauthorError=H})},e.anonymizeRepo=D=>{if(Ie())return;D.target.disabled=!0;let V=parseGithubUrl(e.sourceUrl),H={repoId:e.repoId,terms:e.terms.trim().split(` +`).filter(ie=>ie),connection:e.githubConnection,fullName:`${V.owner}/${V.repo}`,repository:e.sourceUrl,options:e.options,source:e.source,conference:e.conference};e.details&&(H.options.pageSource=e.details.pageSource),le();let se=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(se,H,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/status/"+e.repoId},ie=>{ie.data&&(i("ERRORS."+ie.data.error).then(qe=>{e.error=qe},console.error),Se(ie.data.error))}).finally(()=>{D.target.disabled=!1})},e.anonymizeGist=D=>{if(Ie())return;D.target.disabled=!0;let V=parseGithubUrl(e.sourceUrl),H={gistId:e.gistId,terms:e.terms.trim().split(` +`).filter(ie=>ie),source:{gistId:V.gistId},options:e.options,conference:e.conference};le();let se=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(se,H,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/gist/"+e.gistId},ie=>{ie.data&&(i("ERRORS."+ie.data.error).then(qe=>{e.error=qe},console.error),Se(ie.data.error))}).finally(()=>{D.target.disabled=!1})},e.anonymizePullRequest=D=>{if(Ie())return;D.target.disabled=!0;let V=parseGithubUrl(e.sourceUrl),H={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(` +`).filter(ie=>ie),source:{repositoryFullName:`${V.owner}/${V.repo}`,pullRequestId:V.pullRequestId},options:e.options,conference:e.conference};le();let se=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(se,H,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/pr/"+e.pullRequestId},ie=>{ie.data&&(i("ERRORS."+ie.data.error).then(qe=>{e.error=qe},console.error),Se(ie.data.error))}).finally(()=>{D.target.disabled=!1})},e.watch("conference",()=>{he()}),e.watch("terms",()=>{e.detectedType==="repo"&&A(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&me()}),e.watch("options.image",()=>{e.detectedType==="repo"&&A(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&me()}),e.watch("options.link",()=>{e.detectedType==="repo"&&A(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&me()}),e.watch("details",()=>{e.detectedType==="pr"&&U(),e.detectedType==="gist"&&me()},!0)},Yo=function(e,t,o,r,n,i){let a=mt(),u=as(),p=0,h=!1;e.on("dispose",()=>{h=!0,p++,y&&y.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,u(document,"keydown",function(U){if((U.metaKey||U.ctrlKey)&&U.key==="k"){U.preventDefault();var ue=document.querySelector(".tree-search-input");ue&&(ue.focus(),ue.select())}});var y=null;e.onFileSearchChange=function(){y&&(y.resolve(),y=null);let U=e.fileSearchQuery;if(!U||U.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let ue=i.defer();y=ue,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(U)}`,{timeout:ue.promise}).then(function(te){if(!(h||y!==ue)){y=null,e.fileSearchLoading=!1;var re={};e.files.forEach(function(L){re[(L.path||"")+"/"+L.name]=!0});for(var pe=[],me={},be=0;be0&&e.files.push.apply(e.files,pe);for(var H=[],se=0;se0&&e.files.push.apply(e.files,H),e.fileSearchResults=te.data}},function(){!h&&y===ue&&(y=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})};let g={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},m=["license","txt"],w=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],k=["wav","mp3","ogg","wma","flac","aac","m4a"],b=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.on("routeUpdate",function(U,ue){if(e.repoId!=r.repoId)return K();if((r.path||"")!=e.filePath){e.filePath=r.path||"",e.paths=e.filePath.split("/").filter(te=>te&&te.trim().length>0),X();for(let te=0;te0?e.paths.slice(0,te).join("/"):"";e.files.some(me=>me.path===re)||e.getFiles(re)}}});function T(){if(e.paths[0]!="")return;let U=["readme.md","readme.txt","readme.org","readme.1st","readme"],ue={};for(let re of e.files)re.name.toLowerCase().indexOf("readme")>-1&&(ue[re.name.toLowerCase()]=re.name);let te=null;for(let re of U)if(ue[re]){te=re;break}if(!te&&Object.keys(ue).length>0&&(te=Object.keys(ue)[0]),te){let re=o.url();re[re.length-1]!="/"&&(re+="/"),o.url(re+encodePathForUrl(ue[te]))}}e.fileCounts=null,e.getFiles=function(U){let ue=e.repoId;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(U)}&v=${e.options.lastUpdateDate}`).then(function(te){if(h||ue!==e.repoId)return[];let re=U||"";return e.files=e.files.filter(pe=>pe.path!==re),e.files.push(...te.data),te.data},function(te){if(h||ue!==e.repoId)return[];e.type="error",e.content=te&&te.data&&te.data.error||"unknown_error",e.files=[]})};function N(){let U=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts`).then(function(ue){h||U!==e.repoId||(e.fileCounts=ue.data)},function(){e.fileCounts={}})}function R(){return e.files.filter(U=>U.name==e.paths[e.paths.length-1]&&U.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var I=null;e.on("dispose",function(){I&&a.interval.cancel(I)});function C(U){if(h)return;let ue=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(te=>{if(!(h||ue!==e.repoId)){if(e.options=te.data,e.options.url){window.location=e.options.url;return}U&&U(te.data)}},te=>{if(!(h||ue!==e.repoId)){var re=te.data||{};if(re.error==="rate_limited"&&re.resetAt){let me=function(){var be=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(be<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,I&&(a.interval.cancel(I),I=null),C(U);else{var he=Math.floor(be/60),le=be%60;e.rateLimitCountdown=he>0?he+"m "+le+"s":le+"s"}};var pe=me;e.type="rate_limited",e.rateLimitResetAt=re.resetAt,I&&a.interval.cancel(I),me(),I=a.interval(me,1e3)}else re.error==="repository_not_ready"?(e.type="loading",a.timeout(function(){C(U)},3e3)):(e.type="error",e.content=re.error)}})}e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};function A(U){return g[U]?g[U]:U}function q(U){return U=="pdf"?"pdf":U=="html"||U=="htm"?"html-doc":U=="md"?"md":U=="org"?"org":U=="ipynb"?"IPython":m.indexOf(U)>-1?"text":w.indexOf(U)>-1?"image":b.indexOf(U)>-1?"media":k.indexOf(U)>-1?"audio":"code"}function x(U,ue){let te=p;if(!U){e.type="error",e.content="no_file_selected";return}let re=e.type;e.type="loading",e.content="loading";let pe=ue&&ue.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(U)}?v=`+pe,{transformResponse:me=>me}).then(me=>{if(!(h||te!==p)){if(e.type=re,e.content=me.data,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(me.data,o.url()+"/../"),e.type="html"),e.type=="org"){let he=contentAbs2Relative(me.data);var be=new Org.Parser().parse(he).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(be.toString()),e.type="html"}e.type=="code"&&me.headers("content-type")=="application/octet-stream"&&(e.type="binary",e.content="binary"),a.timeout(()=>{Prism.highlightAll()},50)}},me=>{if(!(h||te!==p)){e.type="error",e.content="unknown_error";try{me.data=JSON.parse(me.data),me.data.error?e.content=me.data.error:e.content=me.data}catch{console.log(me),me.status==-1?e.content="request_error":me.status==502&&(e.content="unreachable")}}})}function X(){p++,e.content="",e.file=R();let U="0";e.file&&e.file.sha&&(U=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${U}`;let ue=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);e.fileBaseUrl=`/api/repo/${e.repoId}/file/${ue?encodePathForUrl(ue):""}`,e.showSource=!1,e.allowScripts=!1;let te=e.filePath.toLowerCase(),re=te.lastIndexOf(".");if(re>-1&&(te=te.substring(re+1)),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:15,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!0,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:A(te),onLoad:function(pe){let me=ace.require("ace/range").Range,be=null;function he(Se,D){be!==null&&(pe.session.removeMarker(be),be=null),Se!=null&&(be=pe.session.addMarker(new me(Se,0,D,1),"highlighted-line","fullLine"))}function le(Se){let D=window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!D){he(null);return}let V=parseInt(D[1])-1,H=D[2]?parseInt(D[2])-1:V;he(V,H),Se&&a.timeout(()=>{pe.scrollToLine(V,!0,!0,function(){})},100)}le(!0);let Ie=null;pe.on("guttermousedown",function(Se){let D=Se.getDocumentPosition().row,V=Se.domEvent&&Se.domEvent.shiftKey,H=D,se=D;V&&Ie!==null?(H=Math.min(Ie,D),se=Math.max(Ie,D)):Ie=D;let ie=H===se?`#L${H+1}`:`#L${H+1}-L${se+1}`,qe=window.location.pathname+window.location.search+ie;window.history.replaceState(null,"",qe),he(H,se),Se.stop()}),u(window,"hashchange",()=>le(!1)),pe.setFontSize(e.aceOption.fontSize),pe.setReadOnly(e.aceOption.readOnly),pe.setKeyboardHandler(e.aceOption.keyBinding),pe.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),pe.setOption("displayIndentGuides",!0),pe.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(pe.renderer.$cursorLayer.element.style.display="none"),pe.setHighlightGutterLine(e.aceOption.highlightGutterLine),pe.setShowInvisibles(e.aceOption.showInvisibles),pe.setDisplayIndentGuides(e.aceOption.showIndentGuides),pe.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),pe.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),pe.session.setUseSoftTabs(e.aceOption.useSoftTab),pe.session.setTabSize(e.aceOption.tabSize),pe.setBehavioursEnabled(e.aceOption.enableBehaviours),pe.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets)}},e.on("dark-mode",(pe,me)=>{me?e.aceOption.theme="nord_dark":e.aceOption.theme="chrome"}),e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=q(te),e.type=="pdf"){e.content="pdf";return}x(e.filePath,e.file)}function K(){p++,e.files=[],e.content=null,e.fileCounts=null,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=r.repoId,e.type="loading",e.filePath=r.path||"",e.paths=e.filePath.split("/");let U=e.repoId;C(function(ue){N();var te=i.resolve();for(let re=0;re0?e.paths.slice(0,re).join("/"):"";te=te.then(function(){return e.getFiles(pe)}).then(function(){if(e.type==="error")return i.reject("error")})}te.then(function(){h||U!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(T(),X()))})})}K()},Ia=function(e,t,o,r,n){async function i(p){t.get(`/api/pr/${e.pullRequestId}/options`).then(h=>{if(e.options=h.data,e.options.url){window.location=e.options.url;return}p&&p(h.data)},h=>{e.type="error",e.content=h.data.error})}async function a(p){t.get(`/api/pr/${e.pullRequestId}/content`).then(h=>{e.details=h.data,e.tabState={active:h.data.diff?"diff":"comments"},p&&p(h.data)},h=>{e.type="error",e.content=h.data.error})}function u(){e.pullRequestId=r.pullRequestId,e.type="loading",i(p=>{a()})}u()},Va=function(e,t,o,r,n){async function i(p){t.get(`/api/gist/${e.gistId}/options`).then(h=>{if(e.options=h.data,e.options.url){window.location=e.options.url;return}p&&p(h.data)},h=>{e.type="error",e.content=h.data.error})}async function a(p){t.get(`/api/gist/${e.gistId}/content`).then(h=>{e.details=h.data;let y=h.data&&h.data.files&&h.data.files.length;e.tabState={active:y?"files":"comments"},p&&p(h.data)},h=>{e.type="error",e.content=h.data.error})}function u(){e.gistId=r.gistId,e.type="loading",i(()=>{a()})}u()},Pa=function(e,t,o){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.search="";let r="conferences.filterPrefs",n={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},i=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},n.filters.status,i.filters&&i.filters.status||{})},e.orderBy=i.orderBy||n.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(r,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(u){if(confirm(`Are you sure that you want to remove the conference ${u.name}? All the repositories linked to this conference will expire.`)){let p=ze({title:`Removing ${u.name}...`,date:new Date,body:`The conference ${u.name} is going to be removed.`});e.addToast(p),t.delete(`/api/conferences/${u.conferenceID}`).then(()=>{p.title=`${u.name} is removed.`,p.body=`The conference ${u.name} is removed.`,a()})}};function a(){t.get("/api/conferences/").then(u=>{e.conferences=u.data||[]},u=>{console.error(u)})}a(),e.conferenceFilter=u=>e.filters.status[u.status]==!1?!1:e.search.trim().length==0||u.name.indexOf(e.search)>-1||u.conferenceID.indexOf(e.search)>-1},Jo=function(e,t,o,r){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.plans=[],e.editionMode=!1;function n(){t.get("/api/conferences/"+r.conferenceId).then(y=>{e.options=y.data,e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}r.conferenceId&&(e.editionMode=!0,n());function i(){t.get("/api/conferences/plans").then(y=>{e.plans=y.data,e.plan=e.plans.filter(g=>g.id==e.options.plan.planID)[0]})}i();let a=new Date;a.setDate(1),a.setMonth(a.getMonth()+1);let u=new Date(a);u.setMonth(a.getMonth()+7,0),e.options={startDate:a,endDate:u,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(y=>y.id==e.options.plan.planID)[0]});function p(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function h(y){switch(y){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){let y=ze({title:`Creating ${e.options.name}...`,date:new Date,body:`The conference ${e.options.conferenceID} is in creation.`});e.editionMode&&(y.title=`Updating ${e.options.name}...`,y.body=`The conference '${e.options.conferenceID}' is updating.`),e.addToast(y),p(),t.post("/api/conferences/"+(e.editionMode?e.options.conferenceID:""),e.options).then(()=>{e.editionMode?(y.title=`${e.options.name} updated`,y.body=`The conference '${e.options.conferenceID}' is updated.`):(y.title=`${e.options.name} created`,y.body=`The conference '${e.options.conferenceID}' is created.`),o.url("/conference/"+e.options.conferenceID)},g=>{h(g.data.error),e.removeToast(y)})}},qa=function(e,t,o,r){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,expired:!1,removed:!1}},e.orderBy="-anonymizeDate",e.repoFiler=i=>e.filters.status[i.status]==!1?!1:e.search.trim().length==0||i.source.fullName.indexOf(e.search)>-1||i.repoId.indexOf(e.search)>-1;function n(){t.get("/api/conferences/"+r.conferenceId).then(i=>{e.conference=i.data})}n()},Ma=function(e,t){e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(o=>{e.connections=o.data}).catch(o=>{e.connectionError=o.data?.error||"Unable to load connections."}),e.changeConnection=async(o,r,n)=>{e.busy=!0,e.connectionError="";try{let i=await t.post("/github/connections/migrate",{type:o.type,id:o.id,connection:r,preview:n},{headers:{"X-CSRF-Token":e.connections.csrf}});n?o.eligible=i.data.eligible:await e.loadConnections()}catch(i){e.connectionError=i.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(o){e.connectionError=o.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()};var $a=function(e,t,o){let r=mt(),n=as();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let i=k=>{if(k.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){k.preventDefault();let b=document.querySelector('.admin-filter-toolbar input[type="search"]');b&&b.focus()}};n(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=k=>{k==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[k]="",e.query.page=1},e.chips=[];let a=()=>{let k=[];e.query.owner&&k.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&k.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=k};e.showStatusMessage=k=>{let b=k.statusMessage||"(no message)";window.prompt(`Status message for ${k.repoId} (${k.status}):`,b)},e.fetchGithubInfo=k=>{let b=window.open("","_blank");b&&b.document.write("
Loading GitHub info for "+k.repoId+"...
"),t.get("/api/admin/repos/"+k.repoId+"/github").then(T=>{b&&(b.document.open(),b.document.write('
'+JSON.stringify(T.data,null,2).replace(/[<>]/g,N=>N==="<"?"<":">")+"
"),b.document.close())},T=>{let N=T&&T.data?JSON.stringify(T.data,null,2):String(T);b&&(b.document.body.innerHTML='
'+N+"
")})},e.statusCountFor=k=>{let b=(e.statusCounts||[]).find(T=>T._id===k);return b?b.count:0},e.statusStorageFor=k=>{let b=(e.statusCounts||[]).find(T=>T._id===k);return b?b.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=k=>{e.query.sort===k?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=k,e.query.direction="desc"),e.query.page=1},e.sortIcon=k=>e.query.sort===k?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.repos.filterPrefs",p={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},h=loadFilterPrefs(u)||{};e.query=Object.assign({},p,h,{page:1,search:""});let y=o.search();y.owner&&(e.query.owner=y.owner),y.conference&&(e.query.conference=y.conference),y.search&&(e.query.search=y.search);let g="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(g)||"[]"),e.savePreset=()=>{let k=window.prompt("Preset name:");if(!k)return;let b=Object.assign({},e.query);delete b.page,e.presets=(e.presets||[]).filter(T=>T.name!==k),e.presets.push({name:k,query:b}),localStorage.setItem(g,JSON.stringify(e.presets))},e.applyPreset=k=>{Object.assign(e.query,k.query,{page:1})},e.deletePreset=k=>{e.presets=(e.presets||[]).filter(b=>b.name!==k.name),localStorage.setItem(g,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(k=>{e.selected[k.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(k=>e.selected[k.repoId]),e.bulkRefresh=()=>{let k=e.selectedRepos();k.length&&confirm(`Force refresh ${k.length} repositories?`)&&k.forEach(b=>e.updateRepository(b))},e.bulkRemoveCache=()=>{let k=e.selectedRepos();k.length&&confirm(`Purge cache for ${k.length} repositories?`)&&k.forEach(b=>e.removeCache(b))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let k=new URLSearchParams(Object.entries(e.query).filter(([,b])=>b!==""&&b!==!1&&b!=null));k.set("format","csv"),k.set("limit","10000"),window.open("/api/admin/repos?"+k.toString(),"_blank")},e.removeCache=k=>{confirm("Remove cached files for "+k.repoId+"?")&&t.delete("/api/admin/repos/"+k.repoId).then(()=>m(),b=>console.error(b))},e.removeRepository=k=>{confirm("Remove repository "+k.repoId+"?")&&t.delete("/api/repo/"+k.repoId+"/").then(()=>m(),b=>console.error(b))},e.updateRepository=k=>{let b=ze({title:`Refreshing ${k.repoId}...`,date:new Date,body:`The repository ${k.repoId} is going to be refreshed.`});e.toasts.push(b),t.post(`/api/repo/${k.repoId}/refresh`).then(T=>{T.data.status=="ready"?b.title=`${k.repoId} is refreshed.`:b.title=`Refreshing of ${k.repoId}.`},T=>{b.title=`Error during the refresh of ${k.repoId}.`,b.body=T.body})},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(k=>{e.total=k.data.total,e.totalPage=Math.ceil(k.data.total/e.query.limit),e.repositories=k.data.results,e.statusCounts=k.data.statusCounts||[],e.totalSize=k.data.totalSize||0,e.allSelected=!1},k=>{e.fetchError=k&&k.data&&k.data.error||"Failed to load repositories",console.error(k)})}m();let w=null;e.watch("query",()=>{r.timeout.cancel(w),w=r.timeout(m,500);let{page:k,search:b,...T}=e.query;saveFilterPrefs(u,T),a()},!0),a()},La=function(e,t,o){let r=mt(),n=as();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let i=m=>{if(m.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){m.preventDefault();let w=document.querySelector('.admin-filter-toolbar input[type="search"]');w&&w.focus()}};n(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=m=>{m==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[m]="",e.query.page=1},e.chips=[];let a=()=>{let m=[];e.query.role&&m.push({key:"role",label:"Role",value:e.query.role}),e.chips=m};e.statusCountFor=m=>{let w=(e.statusCounts||[]).find(k=>k._id===m);return w?w.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=m=>{e.query.sort===m?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=m,e.query.direction="desc"),e.query.page=1},e.sortIcon=m=>e.query.sort===m?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.users.filterPrefs",p={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},h=loadFilterPrefs(u)||{};e.query=Object.assign({},p,h,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(m=>{e.selected[m.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(m=>e.selected[m.username]),e.banUser=m=>{confirm(`Ban user ${m.username}?`)&&t.post(`/api/admin/users/${m.username}/ban`).then(y,w=>console.error(w))},e.activateUser=m=>{t.post(`/api/admin/users/${m.username}/activate`).then(y,w=>console.error(w))},e.bulkBan=()=>{let m=e.selectedUsers();m.length&&confirm(`Ban ${m.length} users?`)&&m.forEach(w=>e.banUser(w))},e.exportCsv=()=>{let m=new URLSearchParams(Object.entries(e.query).filter(([,w])=>w!==""&&w!==!1&&w!=null));m.set("format","csv"),m.set("limit","10000"),window.open("/api/admin/users?"+m.toString(),"_blank")},e.fetchError=null;function y(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(m=>{e.total=m.data.total,e.totalPage=Math.ceil(m.data.total/e.query.limit),e.users=m.data.results,e.statusCounts=m.data.statusCounts||[],e.allSelected=!1},m=>{e.fetchError=m&&m.data&&m.data.error||"Failed to load users",console.error(m)})}y();let g=null;e.watch("query",()=>{r.timeout.cancel(g),g=r.timeout(y,500);let{page:m,search:w,...k}=e.query;saveFilterPrefs(u,k),a()},!0),a()},Fa=function(e,t,o,r){let n=mt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let i="admin.user.filterPrefs",a={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},u=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},a.filters.status,u.filters&&u.filters.status||{})},e.query={sort:u.sort||a.sort,direction:u.direction||a.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=m=>{e.query.sort===m?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=m,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=m=>e.query.sort===m?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(i,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=m=>(e.repositories||[]).filter(w=>w.status===m).length,e.repoFiler=m=>e.filters.status[m.status]==!1?!1:!!(e.search.trim().length==0||m.source.fullName.indexOf(e.search)>-1||m.repoId.indexOf(e.search)>-1||m.statusMessage&&m.statusMessage.indexOf(e.search)>-1||m.conference&&m.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(m=>{e.selected[m.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(m=>e.selected[m.repoId]),e.bulkRefresh=()=>{let m=e.selectedRepos();m.length&&confirm(`Force refresh ${m.length} repositories?`)&&m.forEach(w=>e.updateRepository(w))},e.bulkRemoveCache=()=>{let m=e.selectedRepos();m.length&&confirm(`Purge cache for ${m.length} repositories?`)&&m.forEach(w=>e.removeCache(w))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let m=e.filteredRepositories||e.repositories,k=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),b=m.map(R=>[R.repoId,R.status,R.statusMessage||"",R.pageView||0,R.anonymizeDate||"",R.source&&R.source.fullName||"",R.conference||"",R.size&&R.size.storage||0].map(I=>{let C=String(I??"");return/[",\n\r]/.test(C)?'"'+C.replace(/"/g,'""')+'"':C}).join(",")),T=new Blob([k+` `+b.join(` -`)],{type:"text/csv"}),N=document.createElement("a");N.href=URL.createObjectURL(T),N.download=r.username+"-repositories.csv",N.click()},e.showStatusMessage=f=>{let w=f.statusMessage||"(no message)";window.prompt(`Status message for ${f.repoId} (${f.status}):`,w)},e.fetchGithubInfo=f=>{let w=window.open("","_blank");w&&w.document.write("
Loading GitHub info for "+f.repoId+"...
"),t.get("/api/admin/repos/"+f.repoId+"/github").then(k=>{w&&(w.document.open(),w.document.write('
'+JSON.stringify(k.data,null,2).replace(/[<>]/g,b=>b==="<"?"<":">")+"
"),w.document.close())},k=>{let b=k&&k.data?JSON.stringify(k.data,null,2):String(k);w&&(w.document.body.innerHTML='
'+b+"
")})};function p(f){t.get("/api/admin/users/"+f+"/repos",{}).then(w=>{e.repositories=w.data},w=>{console.error(w)})}function h(f){t.get("/api/admin/users/"+f,{}).then(w=>{e.userInfo=w.data},w=>{console.error(w)})}h(r.username),p(r.username),e.banUser=()=>{confirm(`Ban user ${r.username}?`)&&t.post(`/api/admin/users/${r.username}/ban`).then(()=>h(r.username),f=>console.error(f))},e.activateUser=()=>{t.post(`/api/admin/users/${r.username}/activate`).then(()=>h(r.username),f=>console.error(f))},e.promoteUser=()=>{confirm(`Promote ${r.username} to admin?`)&&t.post(`/api/admin/users/${r.username}/promote`).then(()=>h(r.username),f=>console.error(f))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${r.username}?`)&&t.post(`/api/admin/users/${r.username}/demote`).then(()=>h(r.username),f=>console.error(f))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function v(){t.get("/api/admin/tokens").then(f=>{e.tokens=f.data||[]},f=>{f.status!==401&&f.status!==403&&console.error(f)})}v(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(f=>{e.tokenForm.plaintext=f.data.token,e.tokenForm.name="",v()},f=>console.error(f))},e.revokeToken=f=>{confirm(`Revoke token "${f.name}"?`)&&t.delete("/api/admin/tokens/"+f.id).then(()=>v(),w=>console.error(w))},e.removeCache=f=>{confirm("Remove cached files for "+f.repoId+"?")&&t.delete("/api/admin/repos/"+f.repoId).then(()=>p(r.username),w=>console.error(w))},e.removeRepository=f=>{confirm("Remove repository "+f.repoId+"?")&&t.delete("/api/repo/"+f.repoId+"/").then(()=>p(r.username),w=>console.error(w))},e.updateRepository=f=>{let w=ze({title:`Refreshing ${f.repoId}...`,date:new Date,body:`The repository ${f.repoId} is going to be refreshed.`});e.toasts.push(w),t.post(`/api/repo/${f.repoId}/refresh`).then(k=>{k.data.status=="ready"?w.title=`${f.repoId} is refreshed.`:w.title=`Refreshing of ${f.repoId}.`},k=>{w.title=`Error during the refresh of ${f.repoId}.`,w.body=k.body})},e.getGitHubRepositories=f=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(w=>{e.userInfo.repositories=w.data})};let g=null;e.watch("query",()=>{n.timeout.cancel(g),g=n.timeout(()=>{p(r.username)},500)},!0)},Ua=function(e,t,o){let r=mt(),n=as();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let i=k=>{if(k.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){k.preventDefault();let b=document.querySelector('.admin-filter-toolbar input[type="search"]');b&&b.focus()}};n(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=k=>{k==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[k]="",e.query.page=1},e.chips=[];let a=()=>{let k=[];(e.query.dateFrom||e.query.dateTo)&&k.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=k};e.statusCountFor=k=>{let b=(e.statusCounts||[]).find(T=>T._id===k);return b?b.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=k=>{e.query.sort===k?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=k,e.query.direction="desc"),e.query.page=1},e.sortIcon=k=>e.query.sort===k?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.conferences.filterPrefs",p={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},h=loadFilterPrefs(u)||{};e.query=Object.assign({},p,h,{page:1,search:""});let v=o.search();v.search&&(e.query.search=v.search);let g="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(g)||"[]"),e.savePreset=()=>{let k=window.prompt("Preset name:");if(!k)return;let b=Object.assign({},e.query);delete b.page,e.presets=(e.presets||[]).filter(T=>T.name!==k),e.presets.push({name:k,query:b}),localStorage.setItem(g,JSON.stringify(e.presets))},e.applyPreset=k=>{Object.assign(e.query,k.query,{page:1})},e.deletePreset=k=>{e.presets=(e.presets||[]).filter(b=>b.name!==k.name),localStorage.setItem(g,JSON.stringify(e.presets))},e.removeConference=k=>{confirm("Remove conference "+k.conferenceID+"?")&&t.delete("/api/admin/conferences/"+k.conferenceID).then(()=>f(),b=>console.error(b))},e.exportCsv=()=>{let k=new URLSearchParams(Object.entries(e.query).filter(([,b])=>b!==""&&b!==!1&&b!=null));k.set("format","csv"),k.set("limit","10000"),window.open("/api/admin/conferences?"+k.toString(),"_blank")},e.fetchError=null;function f(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(k=>{e.total=k.data.total,e.totalPage=Math.ceil(k.data.total/e.query.limit),e.conferences=k.data.results,e.statusCounts=k.data.statusCounts||[]},k=>{e.fetchError=k&&k.data&&k.data.error||"Failed to load conferences",console.error(k)})}f();let w=null;e.watch("query",()=>{r.timeout.cancel(w),w=r.timeout(f,500);let{page:k,search:b,...T}=e.query;saveFilterPrefs(u,T),a()},!0),a()},za=function(e,t,o,r,n){let i=mt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(b=>e.stateFilter[b._state]),e.jobProgressPct=b=>b&&b.progress&&typeof b.progress=="object"&&typeof b.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(b.progress.percent))):typeof b.progress=="number"?Math.max(0,Math.min(100,Math.round(b.progress))):null,e.jobDuration=b=>{if(!b.processedOn)return"-";let N=(b.finishedOn||Date.now())-b.processedOn;return N<1e3?N+"ms":(N/1e3).toFixed(1)+"s"},e.metricsPoints=[],e.selectQueue=b=>{e.selectedQueue=b,a(),u()},e.setRange=b=>{e.range=b,u()};function a(){let b={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:b}).then(T=>{e.queueList=T.data.queues||[],e.jobs=T.data.jobs||[],e.selectedStats=e.queueList.find(N=>N.key===e.selectedQueue)||e.queueList[0]||null},T=>console.error(T))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(b=>{e.metricsPoints=b.data.points||[],n(f,0)},b=>console.error(b))}a(),u();let p=r(()=>{e.query.autoRefresh&&(a(),u())},15e3);e.on("dispose",()=>r.cancel(p)),e.refreshNow=function(){a(),u()};function h(b){let T=b&&b.data&&(b.data.message||b.data.error)||"Request failed";e.actionError=T,n(()=>{e.actionError=null},5e3),console.error(b)}e.actionError=null,e.removeJob=b=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${b.id}`).then(a,h)},e.retryJob=b=>{t.post(`/api/admin/queue/${e.selectedQueue}/${b.id}`).then(a,h)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(a,b=>console.error(b))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(a,b=>console.error(b))},e.togglePause=()=>{let b=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${b}`).then(a,T=>console.error(T))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(a,b=>console.error(b))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(a,b=>console.error(b))};let v=null;e.watch("query.search",()=>{i.timeout.cancel(v),v=i.timeout(a,350)}),e.expanded={},e.toggleJob=b=>{e.expanded[b.id]=!e.expanded[b.id]},e.humanTime=b=>{if(!b)return"";let T=new Date(b);return T.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+T.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=b=>{if(!b)return"";var T=Math.max(0,Math.ceil((b-Date.now())/1e3));if(T<=0)return"resuming soon";var N=Math.floor(T/60),D=T%60;return"in "+(N>0?N+"m "+D+"s":D+"s")};function g(b){if(b<=0)return{ticks:[0],niceMax:1};let T=Math.pow(10,Math.floor(Math.log10(b))),N=T;b/N<2?N=T/2:b/N>5&&(N=T*2);let D=Math.ceil(b/N)*N,I=[];for(let C=0;C<=D;C+=N)I.push(C);return{ticks:I,niceMax:D}}function f(){var b=document.getElementById("q-throughput-chart");if(!b)return;var T=b.getContext("2d"),N=window.devicePixelRatio||1,D=b.parentElement.getBoundingClientRect(),I=44,C=50,A=20,q=D.width-40,Z=180,X=q-I-C,K=Z-A;b.width=q*N,b.height=Z*N,b.style.width=q+"px",b.style.height=Z+"px",T.setTransform(N,0,0,N,0,0);var U=document.body.classList.contains("dark-mode"),ue="#8A857C",te=U?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",re=U?"#A7B2FF":"#3B4AD6",pe=U?"rgba(167,178,255,0.12)":"rgba(59,74,214,0.08)",me=U?"#F08A82":"#B42318",be=U?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",he=U?"#F5C842":"#B8860B",le=e.metricsPoints||[];if(le.length===0){T.fillStyle=ue,T.font="12px monospace",T.textAlign="center",T.fillText("No metrics data yet",q/2,Z/2),w=null;return}var Ie=le.map(function(M){return M.completed}),Se=le.map(function(M){return M.failed}),R=le.map(function(M){return M.avgMs}),V=le.length,H=X/(V-1||1),se=Math.max(1,Math.max.apply(null,Ie),Math.max.apply(null,Se)),ie=g(se),qe=Math.max.apply(null,R),L=qe>0?g(qe):{ticks:[0],niceMax:1},ne=function(M){return K-M/ie.niceMax*(K-10)},F=function(M){return K-M/L.niceMax*(K-10)},W=function(M){return I+M*H};T.textAlign="right",T.textBaseline="middle",T.font="10px monospace",ie.ticks.forEach(function(M){var J=ne(M);T.strokeStyle=te,T.lineWidth=1,T.beginPath(),T.moveTo(I,J),T.lineTo(q-C,J),T.stroke(),T.fillStyle=ue,T.fillText(M>=1e3?(M/1e3).toFixed(1)+"k":String(M),I-6,J)}),qe>0&&(T.textAlign="left",L.ticks.forEach(function(M){var J=F(M);T.fillStyle=he,T.fillText(M>=1e3?(M/1e3).toFixed(1)+"s":M+"ms",q-C+6,J)}));var fe=Date.now(),Ce=Math.min(6,V);T.textAlign="center",T.textBaseline="top";for(var ce=0;ce0&&(T.beginPath(),R.forEach(function(M,J){var x=W(J),Q=F(M);if(J===0)T.moveTo(x,Q);else{var B=(W(J-1)+x)/2;T.bezierCurveTo(B,F(R[J-1]),B,Q,x,Q)}}),T.strokeStyle=he,T.lineWidth=1,T.setLineDash([4,3]),T.stroke(),T.setLineDash([])),w={pts:le,maxLen:V,marginLeft:I,step:H,totalW:q,toX:W}}var w=null;function k(){var b=document.getElementById("q-throughput-chart");if(!(!b||b._tipBound)){b._tipBound=!0;var T=document.getElementById("q-chart-tooltip"),N=document.getElementById("q-chart-crosshair");b.addEventListener("mousemove",function(D){if(!(!w||!T||!N)){var I=w,C=b.getBoundingClientRect(),A=D.clientX-C.left,q=Math.round((A-I.marginLeft)/I.step);if(q<0||q>=I.maxLen){T.style.display="none",N.style.display="none";return}var Z=I.pts[q],X=Date.now(),K=Math.round((X-Z.ts)/6e4),U;if(K<=0)U="now";else if(K<60)U=K+"m ago";else if(K<1440){var ue=Math.floor(K/60),te=K%60;U=ue+"h"+(te?" "+te+"m":"")+" ago"}else U=Math.round(K/1440)+"d ago";var re='
'+U+'
● completed: '+Z.completed+'/min
● failed: '+Z.failed+"/min
";if(Z.avgMs>0){var pe=Z.avgMs>=1e3?(Z.avgMs/1e3).toFixed(1)+"s":Z.avgMs+"ms";re+='
● avg time: '+pe+"
"}T.innerHTML=re;var me=I.toX(q),be=T.offsetWidth,he=me+10;he+be>I.totalW&&(he=me-be-10),T.style.display="block",T.style.left=he+"px",T.style.top="8px",N.style.display="block",N.style.left=me+"px"}}),b.addEventListener("mouseleave",function(){T&&(T.style.display="none"),N&&(N.style.display="none")})}}e.watch("metricsPoints",function(){n(k,50)})},Ha=function(e,t,o,r){let n=mt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=N=>{if(!N)return"";let D=new Date(N).getTime();if(isNaN(D))return N;let I=Math.max(0,Date.now()-D),C=Math.floor(I/1e3);if(C<5)return"just now";if(C<60)return`${C}s ago`;let A=Math.floor(C/60);if(A<60)return`${A}m ago`;let q=Math.floor(A/60);if(q<24)return`${q}h ago`;let Z=Math.floor(q/24);return Z<7?`${Z}d ago`:new Date(N).toLocaleDateString()},e.absTime=N=>{if(!N)return"";let D=new Date(N);return isNaN(D.getTime())?N:D.toLocaleString()},e.absTimeShort=N=>{if(!N)return"";let D=new Date(N);return isNaN(D.getTime())?N:D.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let i=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function a(N,D){let I=N&&(N.httpStatus||N.status)||null;if(typeof I=="number"){if(I>=500)return"error";if(I===401||I===403||I===404)return"info";if(I>=400)return"warn"}return D==="error"?"error":D==="warn"?"warn":"info"}function u(N){let D=(N.raw||[]).find(q=>q&&typeof q=="object"&&!Array.isArray(q));if(D){D.message&&i.test(D.message)?(N.displayMessage=D.message,N.displayContext=N.message):D.code&&i.test(String(D.code))?(N.displayMessage=String(D.code),N.displayContext=N.message):D.name&&D.name!=="AnonymousError"&&D.name!=="Error"?(N.displayMessage=D.name,N.displayContext=D.message||N.message):N.displayMessage=N.message,N._status=D.httpStatus||D.status||null,N._url=D.url||null,N._method=D.method||null,N._repoId=D.repoId||D.detail||null,N._detail=D.detail&&D.detail!==N._repoId?D.detail:null;let q=typeof D.stack=="string"?D.stack:null;for(var I=[D.cause,D.err].filter(Boolean),C=0;!q&&C{K==null||K===""||I.push([X,K])};C("name",D&&D.name),C("code",N.displayMessage||D&&D.message),N._bucket&&C("kind",N._bucket),C("httpStatus",D&&D.httpStatus),D&&D.status&&!D.httpStatus&&C("status",D.status),C("module",N.module);let A=D&&D.detail;if(typeof A=="string"){let X=A.trim();if(X[0]==="{"||X[0]==="[")try{A=JSON.parse(A)}catch{}}if(C("detail",A),C("repoId",D&&D.repoId),C("filePath",D&&D.filePath),C("upstreamStatus",D&&D.upstreamStatus),C("upstreamBody",D&&D.upstreamBody),C("url",N._url),C("err",D&&D.err),C("cause",D&&!D.err&&D.cause),C("ts",N.ts),!I.length)return JSON.stringify(N,null,2);let q=I.reduce((X,K)=>Math.max(X,K[0].length),0),Z=["{"];return I.forEach(([X,K],U)=>{let te=` ${`"${X}":`.padEnd(q+3," ")} `,re=U{let w=m.statusMessage||"(no message)";window.prompt(`Status message for ${m.repoId} (${m.status}):`,w)},e.fetchGithubInfo=m=>{let w=window.open("","_blank");w&&w.document.write("
Loading GitHub info for "+m.repoId+"...
"),t.get("/api/admin/repos/"+m.repoId+"/github").then(k=>{w&&(w.document.open(),w.document.write('
'+JSON.stringify(k.data,null,2).replace(/[<>]/g,b=>b==="<"?"<":">")+"
"),w.document.close())},k=>{let b=k&&k.data?JSON.stringify(k.data,null,2):String(k);w&&(w.document.body.innerHTML='
'+b+"
")})};function p(m){t.get("/api/admin/users/"+m+"/repos",{}).then(w=>{e.repositories=w.data},w=>{console.error(w)})}function h(m){t.get("/api/admin/users/"+m,{}).then(w=>{e.userInfo=w.data},w=>{console.error(w)})}h(r.username),p(r.username),e.banUser=()=>{confirm(`Ban user ${r.username}?`)&&t.post(`/api/admin/users/${r.username}/ban`).then(()=>h(r.username),m=>console.error(m))},e.activateUser=()=>{t.post(`/api/admin/users/${r.username}/activate`).then(()=>h(r.username),m=>console.error(m))},e.promoteUser=()=>{confirm(`Promote ${r.username} to admin?`)&&t.post(`/api/admin/users/${r.username}/promote`).then(()=>h(r.username),m=>console.error(m))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${r.username}?`)&&t.post(`/api/admin/users/${r.username}/demote`).then(()=>h(r.username),m=>console.error(m))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function y(){t.get("/api/admin/tokens").then(m=>{e.tokens=m.data||[]},m=>{m.status!==401&&m.status!==403&&console.error(m)})}y(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(m=>{e.tokenForm.plaintext=m.data.token,e.tokenForm.name="",y()},m=>console.error(m))},e.revokeToken=m=>{confirm(`Revoke token "${m.name}"?`)&&t.delete("/api/admin/tokens/"+m.id).then(()=>y(),w=>console.error(w))},e.removeCache=m=>{confirm("Remove cached files for "+m.repoId+"?")&&t.delete("/api/admin/repos/"+m.repoId).then(()=>p(r.username),w=>console.error(w))},e.removeRepository=m=>{confirm("Remove repository "+m.repoId+"?")&&t.delete("/api/repo/"+m.repoId+"/").then(()=>p(r.username),w=>console.error(w))},e.updateRepository=m=>{let w=ze({title:`Refreshing ${m.repoId}...`,date:new Date,body:`The repository ${m.repoId} is going to be refreshed.`});e.toasts.push(w),t.post(`/api/repo/${m.repoId}/refresh`).then(k=>{k.data.status=="ready"?w.title=`${m.repoId} is refreshed.`:w.title=`Refreshing of ${m.repoId}.`},k=>{w.title=`Error during the refresh of ${m.repoId}.`,w.body=k.body})},e.getGitHubRepositories=m=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(w=>{e.userInfo.repositories=w.data})};let g=null;e.watch("query",()=>{n.timeout.cancel(g),g=n.timeout(()=>{p(r.username)},500)},!0)},Ua=function(e,t,o){let r=mt(),n=as();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let i=k=>{if(k.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){k.preventDefault();let b=document.querySelector('.admin-filter-toolbar input[type="search"]');b&&b.focus()}};n(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=k=>{k==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[k]="",e.query.page=1},e.chips=[];let a=()=>{let k=[];(e.query.dateFrom||e.query.dateTo)&&k.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=k};e.statusCountFor=k=>{let b=(e.statusCounts||[]).find(T=>T._id===k);return b?b.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=k=>{e.query.sort===k?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=k,e.query.direction="desc"),e.query.page=1},e.sortIcon=k=>e.query.sort===k?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.conferences.filterPrefs",p={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},h=loadFilterPrefs(u)||{};e.query=Object.assign({},p,h,{page:1,search:""});let y=o.search();y.search&&(e.query.search=y.search);let g="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(g)||"[]"),e.savePreset=()=>{let k=window.prompt("Preset name:");if(!k)return;let b=Object.assign({},e.query);delete b.page,e.presets=(e.presets||[]).filter(T=>T.name!==k),e.presets.push({name:k,query:b}),localStorage.setItem(g,JSON.stringify(e.presets))},e.applyPreset=k=>{Object.assign(e.query,k.query,{page:1})},e.deletePreset=k=>{e.presets=(e.presets||[]).filter(b=>b.name!==k.name),localStorage.setItem(g,JSON.stringify(e.presets))},e.removeConference=k=>{confirm("Remove conference "+k.conferenceID+"?")&&t.delete("/api/admin/conferences/"+k.conferenceID).then(()=>m(),b=>console.error(b))},e.exportCsv=()=>{let k=new URLSearchParams(Object.entries(e.query).filter(([,b])=>b!==""&&b!==!1&&b!=null));k.set("format","csv"),k.set("limit","10000"),window.open("/api/admin/conferences?"+k.toString(),"_blank")},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(k=>{e.total=k.data.total,e.totalPage=Math.ceil(k.data.total/e.query.limit),e.conferences=k.data.results,e.statusCounts=k.data.statusCounts||[]},k=>{e.fetchError=k&&k.data&&k.data.error||"Failed to load conferences",console.error(k)})}m();let w=null;e.watch("query",()=>{r.timeout.cancel(w),w=r.timeout(m,500);let{page:k,search:b,...T}=e.query;saveFilterPrefs(u,T),a()},!0),a()},za=function(e,t,o,r,n){let i=mt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(b=>e.stateFilter[b._state]),e.jobProgressPct=b=>b&&b.progress&&typeof b.progress=="object"&&typeof b.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(b.progress.percent))):typeof b.progress=="number"?Math.max(0,Math.min(100,Math.round(b.progress))):null,e.jobDuration=b=>{if(!b.processedOn)return"-";let N=(b.finishedOn||Date.now())-b.processedOn;return N<1e3?N+"ms":(N/1e3).toFixed(1)+"s"},e.metricsPoints=[],e.selectQueue=b=>{e.selectedQueue=b,a(),u()},e.setRange=b=>{e.range=b,u()};function a(){let b={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:b}).then(T=>{e.queueList=T.data.queues||[],e.jobs=T.data.jobs||[],e.selectedStats=e.queueList.find(N=>N.key===e.selectedQueue)||e.queueList[0]||null},T=>console.error(T))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(b=>{e.metricsPoints=b.data.points||[],n(m,0)},b=>console.error(b))}a(),u();let p=r(()=>{e.query.autoRefresh&&(a(),u())},15e3);e.on("dispose",()=>r.cancel(p)),e.refreshNow=function(){a(),u()};function h(b){let T=b&&b.data&&(b.data.message||b.data.error)||"Request failed";e.actionError=T,n(()=>{e.actionError=null},5e3),console.error(b)}e.actionError=null,e.removeJob=b=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${b.id}`).then(a,h)},e.retryJob=b=>{t.post(`/api/admin/queue/${e.selectedQueue}/${b.id}`).then(a,h)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(a,b=>console.error(b))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(a,b=>console.error(b))},e.togglePause=()=>{let b=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${b}`).then(a,T=>console.error(T))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(a,b=>console.error(b))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(a,b=>console.error(b))};let y=null;e.watch("query.search",()=>{i.timeout.cancel(y),y=i.timeout(a,350)}),e.expanded={},e.toggleJob=b=>{e.expanded[b.id]=!e.expanded[b.id]},e.humanTime=b=>{if(!b)return"";let T=new Date(b);return T.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+T.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=b=>{if(!b)return"";var T=Math.max(0,Math.ceil((b-Date.now())/1e3));if(T<=0)return"resuming soon";var N=Math.floor(T/60),R=T%60;return"in "+(N>0?N+"m "+R+"s":R+"s")};function g(b){if(b<=0)return{ticks:[0],niceMax:1};let T=Math.pow(10,Math.floor(Math.log10(b))),N=T;b/N<2?N=T/2:b/N>5&&(N=T*2);let R=Math.ceil(b/N)*N,I=[];for(let C=0;C<=R;C+=N)I.push(C);return{ticks:I,niceMax:R}}function m(){var b=document.getElementById("q-throughput-chart");if(!b)return;var T=b.getContext("2d"),N=window.devicePixelRatio||1,R=b.parentElement.getBoundingClientRect(),I=44,C=50,A=20,q=R.width-40,x=180,X=q-I-C,K=x-A;b.width=q*N,b.height=x*N,b.style.width=q+"px",b.style.height=x+"px",T.setTransform(N,0,0,N,0,0);var U=document.body.classList.contains("dark-mode"),ue="#8A857C",te=U?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",re=U?"#A7B2FF":"#3B4AD6",pe=U?"rgba(167,178,255,0.12)":"rgba(59,74,214,0.08)",me=U?"#F08A82":"#B42318",be=U?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",he=U?"#F5C842":"#B8860B",le=e.metricsPoints||[];if(le.length===0){T.fillStyle=ue,T.font="12px monospace",T.textAlign="center",T.fillText("No metrics data yet",q/2,x/2),w=null;return}var Ie=le.map(function(M){return M.completed}),Se=le.map(function(M){return M.failed}),D=le.map(function(M){return M.avgMs}),V=le.length,H=X/(V-1||1),se=Math.max(1,Math.max.apply(null,Ie),Math.max.apply(null,Se)),ie=g(se),qe=Math.max.apply(null,D),L=qe>0?g(qe):{ticks:[0],niceMax:1},ne=function(M){return K-M/ie.niceMax*(K-10)},F=function(M){return K-M/L.niceMax*(K-10)},W=function(M){return I+M*H};T.textAlign="right",T.textBaseline="middle",T.font="10px monospace",ie.ticks.forEach(function(M){var J=ne(M);T.strokeStyle=te,T.lineWidth=1,T.beginPath(),T.moveTo(I,J),T.lineTo(q-C,J),T.stroke(),T.fillStyle=ue,T.fillText(M>=1e3?(M/1e3).toFixed(1)+"k":String(M),I-6,J)}),qe>0&&(T.textAlign="left",L.ticks.forEach(function(M){var J=F(M);T.fillStyle=he,T.fillText(M>=1e3?(M/1e3).toFixed(1)+"s":M+"ms",q-C+6,J)}));var fe=Date.now(),Ce=Math.min(6,V);T.textAlign="center",T.textBaseline="top";for(var ce=0;ce0&&(T.beginPath(),D.forEach(function(M,J){var Z=W(J),Q=F(M);if(J===0)T.moveTo(Z,Q);else{var B=(W(J-1)+Z)/2;T.bezierCurveTo(B,F(D[J-1]),B,Q,Z,Q)}}),T.strokeStyle=he,T.lineWidth=1,T.setLineDash([4,3]),T.stroke(),T.setLineDash([])),w={pts:le,maxLen:V,marginLeft:I,step:H,totalW:q,toX:W}}var w=null;function k(){var b=document.getElementById("q-throughput-chart");if(!(!b||b._tipBound)){b._tipBound=!0;var T=document.getElementById("q-chart-tooltip"),N=document.getElementById("q-chart-crosshair");b.addEventListener("mousemove",function(R){if(!(!w||!T||!N)){var I=w,C=b.getBoundingClientRect(),A=R.clientX-C.left,q=Math.round((A-I.marginLeft)/I.step);if(q<0||q>=I.maxLen){T.style.display="none",N.style.display="none";return}var x=I.pts[q],X=Date.now(),K=Math.round((X-x.ts)/6e4),U;if(K<=0)U="now";else if(K<60)U=K+"m ago";else if(K<1440){var ue=Math.floor(K/60),te=K%60;U=ue+"h"+(te?" "+te+"m":"")+" ago"}else U=Math.round(K/1440)+"d ago";var re='
'+U+'
● completed: '+x.completed+'/min
● failed: '+x.failed+"/min
";if(x.avgMs>0){var pe=x.avgMs>=1e3?(x.avgMs/1e3).toFixed(1)+"s":x.avgMs+"ms";re+='
● avg time: '+pe+"
"}T.innerHTML=re;var me=I.toX(q),be=T.offsetWidth,he=me+10;he+be>I.totalW&&(he=me-be-10),T.style.display="block",T.style.left=he+"px",T.style.top="8px",N.style.display="block",N.style.left=me+"px"}}),b.addEventListener("mouseleave",function(){T&&(T.style.display="none"),N&&(N.style.display="none")})}}e.watch("metricsPoints",function(){n(k,50)})},Ha=function(e,t,o,r){let n=mt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=N=>{if(!N)return"";let R=new Date(N).getTime();if(isNaN(R))return N;let I=Math.max(0,Date.now()-R),C=Math.floor(I/1e3);if(C<5)return"just now";if(C<60)return`${C}s ago`;let A=Math.floor(C/60);if(A<60)return`${A}m ago`;let q=Math.floor(A/60);if(q<24)return`${q}h ago`;let x=Math.floor(q/24);return x<7?`${x}d ago`:new Date(N).toLocaleDateString()},e.absTime=N=>{if(!N)return"";let R=new Date(N);return isNaN(R.getTime())?N:R.toLocaleString()},e.absTimeShort=N=>{if(!N)return"";let R=new Date(N);return isNaN(R.getTime())?N:R.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let i=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function a(N,R){let I=N&&(N.httpStatus||N.status)||null;if(typeof I=="number"){if(I>=500)return"error";if(I===401||I===403||I===404)return"info";if(I>=400)return"warn"}return R==="error"?"error":R==="warn"?"warn":"info"}function u(N){let R=(N.raw||[]).find(q=>q&&typeof q=="object"&&!Array.isArray(q));if(R){R.message&&i.test(R.message)?(N.displayMessage=R.message,N.displayContext=N.message):R.code&&i.test(String(R.code))?(N.displayMessage=String(R.code),N.displayContext=N.message):R.name&&R.name!=="AnonymousError"&&R.name!=="Error"?(N.displayMessage=R.name,N.displayContext=R.message||N.message):N.displayMessage=N.message,N._status=R.httpStatus||R.status||null,N._url=R.url||null,N._method=R.method||null,N._repoId=R.repoId||R.detail||null,N._detail=R.detail&&R.detail!==N._repoId?R.detail:null;let q=typeof R.stack=="string"?R.stack:null;for(var I=[R.cause,R.err].filter(Boolean),C=0;!q&&C{K==null||K===""||I.push([X,K])};C("name",R&&R.name),C("code",N.displayMessage||R&&R.message),N._bucket&&C("kind",N._bucket),C("httpStatus",R&&R.httpStatus),R&&R.status&&!R.httpStatus&&C("status",R.status),C("module",N.module);let A=R&&R.detail;if(typeof A=="string"){let X=A.trim();if(X[0]==="{"||X[0]==="[")try{A=JSON.parse(A)}catch{}}if(C("detail",A),C("repoId",R&&R.repoId),C("filePath",R&&R.filePath),C("upstreamStatus",R&&R.upstreamStatus),C("upstreamBody",R&&R.upstreamBody),C("url",N._url),C("err",R&&R.err),C("cause",R&&!R.err&&R.cause),C("ts",N.ts),!I.length)return JSON.stringify(N,null,2);let q=I.reduce((X,K)=>Math.max(X,K[0].length),0),x=["{"];return I.forEach(([X,K],U)=>{let te=` ${`"${X}":`.padEnd(q+3," ")} `,re=Uhe===0?be:me+be).join(` -`)}else typeof K=="number"||typeof K=="boolean"?pe=String(K):pe=JSON.stringify(K);Z.push(`${te}${pe}${re}`)}),Z.push("}"),Z.join(` -`)}function h(N){let D=[],I="",C=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,A=0,q;for(;q=C.exec(N);)I+=N.slice(A,q.index),A=C.lastIndex,D.push({key:q[1],op:q[2]||"=",val:q[3]});return I+=N.slice(A),{filters:D,free:I.trim().toLowerCase()}}function v(N,D){for(let I of D.filters){let C=(q,Z,X)=>{let K=parseFloat(q),U=parseFloat(Z);return X==="="?String(q)===String(Z):X==="!="?String(q)!==String(Z):X===">="?K>=U:X==="<="?K<=U:X===">"?K>U:X==="<"?KD&&A._bucket!==D?!1:v(A,N)),C=e.query.group;if(C){let A=X=>C==="module"?X.module:X.displayMessage||X.message||"_",q=new Map;for(let X of I){let K=A(X);if(q.has(K)){let U=q.get(K);U.count++,U._related.push(X),new Date(X.ts)>new Date(U.ts)&&(U.ts=X.ts,U._url=X._url,U._status=X._status),new Date(X.ts)new Date(K.ts).getTime()>=Z).length;I=Array.from(q.values())}else I=I.map((A,q)=>(A._key="row:"+q+":"+A.ts,A._related=[A],A._firstSeen=A.ts,A._lastHourCount=0,A.count=1,A));e.query.sort==="count"?I.sort((A,q)=>q.count-A.count||new Date(q.ts)-new Date(A.ts)):I.sort((A,q)=>new Date(q.ts)-new Date(A.ts)),e.visible=I}function f(N){let D=N?e.entries.length:0,I=N?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:D,limit:I}}).then(C=>{let A=(C.data.entries||[]).map(u);e.entries=N?e.entries.concat(A):A,e.available=!!C.data.available,e.cap=C.data.max||e.cap,e.total=C.data.total||e.entries.length,g()},C=>console.error(C))}e.loadMore=()=>f(!0),e.canLoadMore=()=>e.entries.length{let D=N.data||{},I=D.prev24h?Math.round((D.last24h-D.prev24h)/D.prev24h*100):0;e.stats={last24h:D.last24h||0,prev24h:D.prev24h||0,delta:I,severity:D.severity||{error:0,warn:0,info:0},unique:D.unique||{error:0,warn:0,info:0},buckets:D.buckets||[],dropped:D.dropped||0}},N=>console.error(N))}function k(){f(),w()}e.barPx=(N,D)=>{let I=e.stats.buckets||[],C=0;for(let X of I)C=Math.max(C,(X.error||0)+(X.warn||0)+(X.info||0));if(!C)return 0;let A=(N.error||0)+(N.warn||0)+(N.info||0);if(!A)return 0;let q=Math.round(A/C*60),Z=N[D]||0;return Math.round(Z/A*q)},e.bucketTitle=N=>`${new Date(N.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${N.error||0} err \xB7 ${N.warn||0} warn \xB7 ${N.info||0} info`,e.toggle=N=>{e.expanded[N._key]=!e.expanded[N._key]},e.setBucket=N=>{e.query.bucket=N},e.refreshNow=k,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(k,N=>console.error(N))},e.exportCsv=()=>{let N=["ts","level","module","displayMessage","_status","_url","_repoId"],D=[N.join(",")];for(let q of e.visible)D.push(N.map(Z=>{let X=q[Z]==null?"":String(q[Z]);return/[",\n]/.test(X)?`"${X.replace(/"/g,'""')}"`:X}).join(","));let I=new Blob([D.join(` -`)],{type:"text/csv;charset=utf-8"}),C=URL.createObjectURL(I),A=document.createElement("a");A.href=C,A.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(A),A.click(),document.body.removeChild(A),URL.revokeObjectURL(C)};function b(N){e.copyHint=`${N} copied`,n.timeout(()=>{e.copyHint=""},1500)}e.copyJson=N=>{navigator.clipboard.writeText(N._detailJson).then(()=>b("JSON"))},e.copyCurl=N=>{if(!N._url)return;let I=`curl -X ${N._method||"GET"} '${window.location.origin}${N._url}'`;navigator.clipboard.writeText(I).then(()=>b("curl"))},k();let T=r(()=>{e.query.autoRefresh&&k()},15e3);e.on("dispose",()=>r.cancel(T)),e.watch("query.search",g),e.watch("query.bucket",g),e.watch("query.sort",g),e.watch("query.group",g)},Ba=function(e,t,o,r){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null){o.url("/");return}e.data=null,e.loading=!0,e.error=null;function n(f){if(f==null)return"\u2014";for(var w=["B","KB","MB","GB","TB"],k=0,b=f;b>=1024&&k0?1:0)+" "+w[k]}e.humanBytes=n;function i(f){if(!f)return"\u2014";var w=Math.floor(f/86400),k=Math.floor(f%86400/3600),b=Math.floor(f%3600/60);return w>0?w+"d "+(k<10?"0":"")+k+"h":k>0?k+"h "+(b<10?"0":"")+b+"m":b+"m"}e.humanDuration=i;function a(f){return f==null?"\u2014":f>=1e6?(f/1e6).toFixed(1)+"M":f>=1e3?(f/1e3).toFixed(1)+"K":String(f)}e.humanNum=a,e.queueTotal=function(f){return f?(f.waiting||0)+(f.active||0)+(f.delayed||0)+(f.failed||0):0},e.statusCount=function(f){if(!e.data||!e.data.repos)return 0;for(var w=e.data.repos.statusBreakdown||[],k=0;kh[k])&&(h[k]=w[k])})})},function(f){e.loading=!1,e.error=f.data&&f.data.error||"Failed to load overview"})}v();var g=r(v,3e4);e.on("dispose",function(){r.cancel(g)})};var Ga=[{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ma(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>Ta(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Oa(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Yn(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Yn(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Yn(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Aa(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Pa(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Jo(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Jo(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>qa(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Sa(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Da(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ra(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ia(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Va(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>Yo(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>Yo(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ba(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>$a(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>La(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Fa(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ua(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>za(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ha(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var zc={class:"container paper-page connections-page"},Hc={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Bc={key:1,role:"status"},Gc=["disabled"],jc={key:3},Wc={class:"connections-grid"},Kc={key:0},Yc={class:"connection-title"},Jc={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Qc={class:"connection-actions"},Xc={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},xc={key:1,class:"connection-installations"},Zc={key:0},ep=["href"],tp={class:"sr-only"},sp=["disabled"],np={class:"connection-title"},op={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},rp={key:1,class:"connection-revoke"},ip={key:0},ap=["disabled"],lp={class:"connection-resources"},dp={class:"connection-title"},up={class:"connection-count"},cp={key:0,class:"connection-empty"},pp={class:"connection-resource-name"},fp={key:0,class:"connection-resource-actions"},mp=["disabled","onClick"],hp=["disabled","onClick"],vp={key:1,class:"connection-help",role:"status"},yp=["disabled","onClick"];function ja(e,t){return l(),d("div",zc,[t[20]||(t[20]=ge('
My work / GitHub connections

GitHub connections

Manage how GitHub shares your code. Your anonymizations and URLs stay the same.

',2)),e.connectionError?(l(),d("p",Hc,c(e.connectionError),1)):m("v-if",!0),!e.connections&&!e.connectionError?(l(),d("p",Bc,"Loading your connections\u2026")):m("v-if",!0),!e.connections&&e.connectionError?(l(),d("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=o=>e.loadConnections())},"Try again",8,Gc)):m("v-if",!0),e.connections?(l(),d("div",jc,[s("div",Wc,[e.connections.appEnabled?(l(),d("section",Kc,[t[8]||(t[8]=s("div",{class:"connection-top"},[s("i",{class:"fab fa-github","aria-hidden":"true"}),s("span",{class:"connection-badge"},"Recommended")],-1)),s("div",Yc,[t[3]||(t[3]=s("h2",null,"GitHub App",-1)),s("span",{class:O(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},c(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[9]||(t[9]=s("p",null,"Read-only access to the repositories you choose.",-1)),e.connections.appError?(l(),d("p",Jc,c(e.connections.appError)+". Reconnect to restore access.",1)):m("v-if",!0),s("div",Qc,[e.connections.appConnected&&!e.connections.appError?(l(),d("a",Xc,[...t[4]||(t[4]=[y("Manage repository access ",-1),s("i",{class:"fas fa-external-link-alt","aria-hidden":"true"},null,-1)])])):m("v-if",!0),s("a",{class:O(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},c(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3)]),t[10]||(t[10]=s("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(l(),d("ul",xc,[(l(!0),d(Y,null,oe(e.connections.installations,o=>(l(),d("li",{key:o.id},[s("div",null,[s("strong",null,c(o.account),1),o.suspended?(l(),d("span",Zc," \xB7 Suspended")):m("v-if",!0)]),s("a",{target:"_self",href:"/github/app/install?installationId="+o.id},[t[5]||(t[5]=y("Manage access ",-1)),s("span",tp,"for "+c(o.account),1),t[6]||(t[6]=y(" \u2192",-1))],8,ep)]))),128))])):m("v-if",!0),s("button",{class:"connection-link",disabled:e.busy,onClick:t[1]||(t[1]=o=>e.loadConnections())},[...t[7]||(t[7]=[s("i",{class:"fas fa-sync-alt","aria-hidden":"true"},null,-1),y(" Refresh access",-1)])],8,sp)])):m("v-if",!0),s("section",null,[t[13]||(t[13]=s("div",{class:"connection-top"},[s("i",{class:"fas fa-key","aria-hidden":"true"}),s("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),s("div",np,[t[11]||(t[11]=s("h2",null,"GitHub OAuth",-1)),s("span",{class:O(["connection-status",{"is-connected":e.connections.oauthConnected}])},c(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[14]||(t[14]=s("p",null,"For existing OAuth anonymizations and gists.",-1)),t[15]||(t[15]=s("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(l(),d("a",op,c(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):m("v-if",!0),e.connections.oauthConnected?(l(),d("div",rp,[e.connections.gistCount?(l(),d("p",ip,c(e.connections.gistCount)+" gist(s) still require OAuth.",1)):m("v-if",!0),t[12]||(t[12]=s("p",null,"Switch all dependent repositories before revoking access. Gists still require OAuth.",-1)),e.connections.appConnected?(l(),d("button",{key:1,class:"connection-link connection-danger",disabled:e.busy||e.connections.gistCount||e.connections.resources.some(o=>o.connection==="oauth"),onClick:t[2]||(t[2]=o=>e.disconnectOAuth())},"Revoke OAuth access",8,ap)):m("v-if",!0)])):m("v-if",!0)])]),s("section",lp,[s("div",dp,[t[16]||(t[16]=s("h2",null,"Repository connections",-1)),s("span",up,c(e.connections.resources?.length||0)+" resources",1)]),t[18]||(t[18]=s("p",null,"Check access, then switch each resource to the GitHub App.",-1)),e.connections.resources?.length?m("v-if",!0):(l(),d("div",cp,[...t[17]||(t[17]=[s("i",{class:"fas fa-code-branch","aria-hidden":"true"},null,-1),s("div",null,[s("h3",null,"No repository connections yet"),s("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),s("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(l(!0),d(Y,null,oe(e.connections.resources,o=>(l(),d("div",{class:"connection-resource",key:o.type+o.id},[s("div",pp,[s("strong",null,c(o.name||o.id),1),s("small",null,c(o.type)+" \xB7 "+c(o.id),1)]),s("span",{class:O(["connection-badge",{"connection-badge-muted":o.connection==="oauth"}])},c(o.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),o.connection==="oauth"&&e.connections.appEnabled&&e.connections.appConnected?(l(),d("div",fp,[s("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:r=>e.changeConnection(o,"github-app",!0)},"Check read-only access",8,mp),o.eligible?(l(),d("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:r=>e.changeConnection(o,"github-app",!1)},"Switch to read-only access",8,hp)):m("v-if",!0),o.eligible===!1?(l(),d("span",vp,"Access unavailable. Allow this repository on GitHub, then check again.")):m("v-if",!0)])):m("v-if",!0),o.connection==="github-app"&&e.connections.oauthConnected?(l(),d("button",{key:1,class:"connection-link",disabled:e.busy,onClick:r=>e.changeConnection(o,"oauth",!1)},"Use OAuth",8,yp)):m("v-if",!0)]))),128)),t[19]||(t[19]=s("p",{class:"connection-footnote"},[s("i",{class:"fas fa-info-circle","aria-hidden":"true"}),y(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):m("v-if",!0)])}var gp={class:"container paper-page auth-page"},bp={class:"auth-layout"},wp={class:"auth-options"},kp={key:0,class:"auth-existing",role:"note"},_p={key:1},Ep={key:2,class:"auth-legacy"},Cp={key:3,role:"status"};function Wa(e,t){return l(),d("div",gp,[t[4]||(t[4]=s("a",{class:"auth-back",href:"/"},[s("i",{class:"fas fa-arrow-left","aria-hidden":"true"}),y(" Anonymous GitHub")],-1)),s("div",bp,[t[3]||(t[3]=ge('
Your research, ready for review

Your code.
Your identity,
protected.
Sign in to GitHub

Sign in to create and manage your anonymizations.

',1)),s("div",wp,[e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("p",kp,[...t[0]||(t[0]=[y("Already have an account? Sign in with ",-1),s("a",{target:"_self",href:"/github/login"},"legacy GitHub OAuth",-1),y(" to keep access to your anonymizations. You can connect the read-only App from GitHub connections after signing in.",-1)])])):m("v-if",!0),e.site_options?.GITHUB_APP_ENABLED?(l(),d("section",_p,[...t[1]||(t[1]=[ge('
Read-only access

Continue with GitHub

Connect through the GitHub App with read-only repository access.

  • You choose which repositories to share
  • No permission to write to your code
Sign in with GitHub Select your repositories after signing in.',6)])])):m("v-if",!0),e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("section",Ep,[...t[2]||(t[2]=[s("div",{class:"connection-title"},[s("h2",null,"Legacy OAuth"),s("span",{class:"connection-badge connection-badge-muted"},"For gists & existing accounts")],-1),s("p",null,"Use this connection for gists or your existing OAuth setup. GitHub's private repository scope includes write access.",-1),s("a",{class:"connection-link",target:"_self",href:"/github/login"},[y("Continue with OAuth "),s("i",{class:"fas fa-arrow-right","aria-hidden":"true"})],-1)])])):m("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(l(),d("p",Cp,"GitHub sign-in is currently unavailable. Please try again later.")):m("v-if",!0)])])])}var Np={class:"paper-empty"};function Ka(e,t){return l(),d("div",Np,[...t[0]||(t[0]=[ge('
Error \xB7 404

This link
isn\u2019t here.

The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.

',1)])])}var Sp={class:"container paper-page admin-page"},Dp={class:"admin-summary"},Rp={class:"summary-total"},Tp={class:"count"},Op={class:"count"},Ap={class:"count"},Ip={class:"count"},Vp={class:"count"},Pp={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},qp={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},Mp={class:"admin-filter-row"},$p={class:"search-wrap"},Lp={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},Fp={key:0,class:"admin-search-hint"},Up={class:"admin-filter-inline","aria-label":"Pagination"},zp=["disabled"],Hp={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},Bp=["disabled"],Gp={key:0,class:"admin-filter-row"},jp={class:"admin-active-chips"},Wp={class:"key"},Kp=["onClick"],Yp={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},Jp={class:"paper-table-head",role:"row"},Qp={role:"columnheader"},Xp={role:"columnheader"},xp={role:"columnheader"},Zp={class:"paper-table-row",role:"row"},ef={class:"cell-anon",role:"cell"},tf={class:"anon-text"},sf=["textContent","href"],nf={class:"anon-sub"},of={class:"cell-status",role:"cell"},rf=["textContent"],af={class:"cell-views num",role:"cell"},lf=["textContent","href"],df={class:"cell-expires",role:"cell"},uf={class:"cell-actions",role:"cell"},cf={class:"dropdown"},pf={class:"dropdown-menu dropdown-menu-right"},ff=["href"],mf=["href"],hf=["href"],vf=["onClick"],yf={key:0,class:"paper-table-empty"},gf={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},bf={style:{"font-size":"12px",color:"var(--ink-muted)"}},wf={key:0,class:"pagination-compact"},kf=["disabled"],_f=["max"],Ef=["disabled"],Cf={class:"admin-filter-inline"},Nf={class:"form-control form-control-sm"};function Ya(e,t){let o=we("field"),r=we("form");return l(),d("div",Sp,[t[42]||(t[42]=ge('
Admin \xA0/\xA0 Conferences

Conferences

',3)),s("div",Dp,[s("span",Rp,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),s("span",{class:O(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=n=>{e.query.ready=!e.query.ready,e.query.page=1})},[t[13]||(t[13]=y("Ready ",-1)),s("span",Tp,c(e.fmt?.number(e.statusCountFor("ready"))),1)],2),s("span",{class:O(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=n=>{e.query.preparing=!e.query.preparing,e.query.page=1})},[t[14]||(t[14]=y("Preparing ",-1)),s("span",Op,c(e.fmt?.number(e.statusCountFor("preparing"))),1)],2),s("span",{class:O(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=n=>{e.query.error=!e.query.error,e.query.page=1})},[t[15]||(t[15]=y("Errored ",-1)),s("span",Ap,c(e.fmt?.number(e.statusCountFor("error"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=n=>{e.query.expired=!e.query.expired,e.query.page=1})},[t[16]||(t[16]=y("Expired ",-1)),s("span",Ip,c(e.fmt?.number(e.statusCountFor("expired"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=n=>{e.query.removed=!e.query.removed,e.query.page=1})},[t[17]||(t[17]=y("Removed ",-1)),s("span",Vp,c(e.fmt?.number(e.statusCountFor("removed"))),1)],2)]),e.fetchError?(l(),d("div",Pp,[t[18]||(t[18]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),y(" "+c(e.fetchError),1)])):m("v-if",!0),E((l(),d("form",qp,[s("div",Mp,[s("div",$p,[E(s("input",Lp,null,512),[[o,{state:e.viewState,set:n=>{e.query.search=n},value:e.query?.search,form:null,options:{}}]]),e.query?.search?m("v-if",!0):(l(),d("span",Fp,"/"))]),t[22]||(t[22]=s("span",{class:"admin-filter-spacer"},null,-1)),s("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=n=>e.exportCsv())},[...t[19]||(t[19]=[s("i",{class:"fas fa-file-csv"},null,-1),y(" Export",-1)])]),s("span",Up,[s("button",{class:"btn btn-sm",type:"button",onClick:t[6]||(t[6]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[20]||(t[20]=[s("i",{class:"fas fa-chevron-left"},null,-1)])],8,zp),s("span",Hp,c(e.query?.page)+"/"+c(e.totalPage||1),1),s("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[21]||(t[21]=[s("i",{class:"fas fa-chevron-right"},null,-1)])],8,Bp)])]),e.chips?.length?(l(),d("div",Gp,[s("div",jp,[(l(!0),d(Y,null,oe(e.chips,(n,i)=>(l(),d("span",{class:"admin-active-chip",key:n?.key},[s("span",Wp,c(n?.label),1),s("span",null,c(n?.value),1),s("button",{type:"button",onClick:a=>e.clearFilter(n.key)},[...t[23]||(t[23]=[s("i",{class:"fas fa-times"},null,-1)])],8,Kp)]))),128))])])):m("v-if",!0)])),[[r,e.viewState]]),s("div",Yp,[s("div",Jp,[s("div",Qp,[s("span",{class:O(["sortable",{active:e.query?.sort=="name"}]),onClick:t[8]||(t[8]=n=>e.sortBy("name"))},[t[24]||(t[24]=y("Conference ",-1)),s("i",{class:O(["fas",e.sortIcon("name")])},null,2)],2)]),s("div",Xp,[s("span",{class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[9]||(t[9]=n=>e.sortBy("status"))},[t[25]||(t[25]=y("Status ",-1)),s("i",{class:O(["fas",e.sortIcon("status")])},null,2)],2)]),t[27]||(t[27]=s("div",{role:"columnheader",class:"num"},"Repos",-1)),s("div",xp,[s("span",{class:O(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[10]||(t[10]=n=>e.sortBy("startDate"))},[t[26]||(t[26]=y("Window ",-1)),s("i",{class:O(["fas",e.sortIcon("startDate")])},null,2)],2)]),t[28]||(t[28]=s("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(Y,null,oe(e.filteredConferences,(n,i)=>(l(),d("div",Zp,[s("div",ef,[t[30]||(t[30]=s("span",{class:"type-badge type-repo"},"Conf",-1)),s("div",tf,[s("a",{class:"repo-name",textContent:c(n?.name),href:e.safeUrl("/conference/"+n?.conferenceID)},null,8,sf),s("div",nf,[s("span",null,c(n?.conferenceID),1),t[29]||(t[29]=y("\xA0\xB7\xA0",-1)),s("span",null,c(e.fmt?.number(n?.price||0))+" \u20AC",1)])])]),s("div",of,[s("span",{class:O(["status-dot",{"status-removed":n?.status=="removed"||n?.status=="expired","status-ready":n?.status=="ready","status-error":n?.status=="error","status-preparing":n?.status=="preparing"}])},null,2),s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,rf)]),s("div",af,[s("a",{title:"Show repositories in this conference",textContent:c(e.fmt?.number(n?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+n?.conferenceID)},null,8,lf)]),s("div",df,c(e.fmt?.date(n?.startDate))+" \u2013 "+c(e.fmt?.date(n?.endDate)),1),s("div",uf,[s("div",cf,[t[36]||(t[36]=s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"})],-1)),s("div",pf,[s("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+n?.conferenceID+"/edit")},[...t[31]||(t[31]=[s("i",{class:"far fa-edit"},null,-1),y(" Edit",-1)])],8,ff),s("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+n?.conferenceID+"/")},[...t[32]||(t[32]=[s("i",{class:"fa fa-eye"},null,-1),y(" View",-1)])],8,mf),s("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+n?.conferenceID)},[...t[33]||(t[33]=[s("i",{class:"fas fa-code-branch"},null,-1),y(" View repositories",-1)])],8,hf),t[35]||(t[35]=s("div",{class:"dropdown-divider"},null,-1)),E(s("a",{class:"dropdown-item text-danger",href:"#",onClick:ke(a=>e.removeConference(n),["prevent"])},[...t[34]||(t[34]=[s("i",{class:"fas fa-trash-alt"},null,-1),y(" Remove",-1)])],8,vf),[[G,n?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(l(),d("div",yf,[...t[37]||(t[37]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No conferences match the current filters.",-1)])])):m("v-if",!0)]),s("div",gf,[s("span",bf,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",wf,[s("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[38]||(t[38]=[s("i",{class:"fas fa-chevron-left"},null,-1),y(" Previous",-1)])],8,kf),E(s("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,_f),[[o,{state:e.viewState,set:n=>{e.query.page=n},value:e.query?.page,form:null,options:{}}]]),s("span",null,"of "+c(e.totalPage),1),s("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[39]||(t[39]=[y("Next ",-1),s("i",{class:"fas fa-chevron-right"},null,-1)])],8,Ef)])):m("v-if",!0),s("span",Cf,[t[41]||(t[41]=s("label",null,"Per page",-1)),E((l(),d("select",Nf,[...t[40]||(t[40]=[ge('',5)])])),[[o,{state:e.viewState,set:n=>{e.query.limit=n},value:e.query?.limit,form:null,options:{}}]])])])])}var Sf={class:"container paper-page admin-page errors-page"},Df={class:"errors-header"},Rf={class:"errors-actions"},Tf={class:"kpi-grid"},Of={class:"kpi-card"},Af={class:"kpi-value"},If={key:0},Vf={key:1},Pf={class:"kpi-card kpi-error"},qf={class:"kpi-value"},Mf={class:"kpi-sub"},$f={class:"kpi-card kpi-warn"},Lf={class:"kpi-value"},Ff={class:"kpi-sub"},Uf={class:"kpi-card kpi-info"},zf={class:"kpi-value"},Hf={class:"kpi-sub"},Bf={class:"kpi-value"},Gf={class:"kpi-sub"},jf={key:0,class:"dropped-warn"},Wf={class:"volume-chart"},Kf={class:"volume-bars"},Yf=["title"],Jf={class:"errors-toolbar","aria-label":"Error filters"},Qf={class:"seg-tabs"},Xf={class:"search-wrap"},xf={type:"search",class:"form-control",placeholder:"code:repo_not_found module:route status:>=400",autocomplete:"off"},Zf={key:0,class:"filter-count"},em={class:"select-wrap"},tm={class:"form-control form-control-sm"},sm={class:"select-wrap"},nm={class:"form-control form-control-sm"},om={class:"autoref"},rm={type:"checkbox"},im={key:0,class:"admin-empty"},am={key:1,class:"errors-pager"},lm={key:2,class:"errors-list"},dm=["onClick"],um={class:"col-when"},cm={class:"when-rel"},pm={class:"when-abs"},fm={class:"col-sev"},mm={class:"sev-label"},hm={class:"col-mod"},vm={class:"pill pill-module"},ym={class:"col-msg"},gm={class:"msg-code"},bm={key:0,class:"msg-context"},wm={key:1,class:"msg-detail"},km={key:2,class:"msg-url"},_m={class:"col-count"},Em={key:0,class:"count-pill"},Cm={key:1,class:"count-pill count-pill-muted"},Nm={class:"col-status"},Sm={key:0,class:"errors-row-detail"},Dm={class:"detail-tabs"},Rm=["onClick"],Tm=["onClick"],Om=["onClick"],Am={class:"detail-body"},Im={class:"detail-main"},Vm={key:0},Pm={key:1,class:"stack-pre"},qm={key:2,class:"related-list"},Mm={class:"when-abs"},$m={class:"msg-url"},Lm={class:"detail-actions"},Fm=["onClick"],Um=["onClick"],zm={key:0,class:"copy-hint"},Hm={class:"detail-aside"},Bm={class:"aside-block"},Gm=["title"],jm={class:"aside-block"},Wm=["title"],Km={class:"aside-block"},Ym={class:"aside-value"},Jm={key:0,class:"aside-sub"},Qm={key:0,class:"aside-block"},Xm=["href"],xm={key:1,class:"aside-block"},Zm={class:"aside-value mono"};function Ja(e,t){let o=we("field"),r=we("form");return l(),d("div",Sf,[t[32]||(t[32]=s("div",{class:"paper-crumbs"},[y("Admin \xA0/\xA0 "),s("span",{class:"here"},"Errors")],-1)),s("header",Df,[t[10]||(t[10]=s("h1",{class:"paper-page-title"},"Errors",-1)),s("div",Rf,[s("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=n=>e.exportCsv())},[...t[8]||(t[8]=[s("i",{class:"fas fa-file-export"},null,-1),y(" Export CSV",-1)])]),s("button",{class:"btn btn-sm btn-danger",type:"button",onClick:t[1]||(t[1]=n=>e.clearAll())},[...t[9]||(t[9]=[s("i",{class:"fas fa-trash"},null,-1),y(" Clear all",-1)])])])]),t[33]||(t[33]=ge('',1)),s("section",Tf,[s("div",Of,[t[11]||(t[11]=s("div",{class:"kpi-label"},"Last 24h",-1)),s("div",Af,c(e.stats?.last24h),1),s("div",{class:O(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h?(l(),d("span",If,c(e.stats?.delta>0?"+":"")+c(e.stats?.delta)+"% vs yesterday",1)):m("v-if",!0),e.stats?.prev24h?m("v-if",!0):(l(),d("span",Vf,"no prior baseline"))],2)]),s("div",Pf,[t[12]||(t[12]=s("div",{class:"kpi-label"},"Errors (5xx)",-1)),s("div",qf,c(e.stats?.severity?.error),1),s("div",Mf,c(e.stats?.unique?.error)+" unique",1)]),s("div",$f,[t[13]||(t[13]=s("div",{class:"kpi-label"},"Warnings (4xx)",-1)),s("div",Lf,c(e.stats?.severity?.warn),1),s("div",Ff,c(e.stats?.unique?.warn)+" unique",1)]),s("div",Uf,[t[14]||(t[14]=s("div",{class:"kpi-label"},"Info (auth, 404)",-1)),s("div",zf,c(e.stats?.severity?.info),1),s("div",Hf,c(e.stats?.unique?.info)+" unique",1)]),s("div",{class:O(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[15]||(t[15]=s("div",{class:"kpi-label"},"Captured",-1)),s("div",Bf,c(e.total),1),s("div",Gf,[y(" cap "+c(e.cap)+" \xB7 "+c(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(l(),d("span",jf," \xB7 "+c(e.stats?.dropped)+" dropped",1)):m("v-if",!0)])],2)]),s("section",Wf,[t[16]||(t[16]=ge('
Volume \xB7 24h \xB7 1h bucketserror warn info
',1)),s("div",Kf,[(l(!0),d(Y,null,oe(e.stats?.buckets,(n,i)=>(l(),d("div",{class:"volume-bar",key:i,title:e.bucketTitle(n)},[s("span",{class:"seg seg-error",style:Ve({height:e.barPx(n,"error")+"px"})},null,4),s("span",{class:"seg seg-warn",style:Ve({height:e.barPx(n,"warn")+"px"})},null,4),s("span",{class:"seg seg-info",style:Ve({height:e.barPx(n,"info")+"px"})},null,4)],8,Yf))),128))])]),E((l(),d("form",Jf,[s("div",Qf,[s("button",{type:"button",class:O({active:e.query?.bucket===""}),onClick:t[2]||(t[2]=n=>e.setBucket(""))},"All",2),s("button",{type:"button",class:O({active:e.query?.bucket==="error"}),onClick:t[3]||(t[3]=n=>e.setBucket("error"))},"5xx",2),s("button",{type:"button",class:O({active:e.query?.bucket==="warn"}),onClick:t[4]||(t[4]=n=>e.setBucket("warn"))},"4xx",2),s("button",{type:"button",class:O({active:e.query?.bucket==="info"}),onClick:t[5]||(t[5]=n=>e.setBucket("info"))},"Info",2)]),s("div",Xf,[t[17]||(t[17]=s("i",{class:"fas fa-search search-icon"},null,-1)),E(s("input",xf,null,512),[[o,{state:e.viewState,set:n=>{e.query.search=n},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(l(),d("span",Zf,c(e.parsedFilterCount)+" filter"+c(e.parsedFilterCount>1?"s":""),1)):m("v-if",!0)]),s("div",em,[t[19]||(t[19]=s("label",null,"Sort",-1)),E((l(),d("select",tm,[...t[18]||(t[18]=[s("option",{value:"recent"},"Most recent",-1),s("option",{value:"count"},"Most frequent",-1)])])),[[o,{state:e.viewState,set:n=>{e.query.sort=n},value:e.query?.sort,form:null,options:{}}]])]),s("div",sm,[t[21]||(t[21]=s("label",null,"Group",-1)),E((l(),d("select",nm,[...t[20]||(t[20]=[s("option",{value:""},"Off",-1),s("option",{value:"code"},"By code",-1),s("option",{value:"module"},"By module",-1)])])),[[o,{state:e.viewState,set:n=>{e.query.group=n},value:e.query?.group,form:null,options:{}}]])]),s("label",om,[E(s("input",rm,null,512),[[o,{state:e.viewState,set:n=>{e.query.autoRefresh=n},value:e.query?.autoRefresh,form:null,options:{}}]]),t[22]||(t[22]=y(" Auto-refresh ",-1))]),s("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[6]||(t[6]=n=>e.refreshNow())},[...t[23]||(t[23]=[s("i",{class:"fas fa-sync"},null,-1)])])])),[[r,e.viewState]]),e.visible?.length?m("v-if",!0):(l(),d("div",im,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(l(),d("div",am,[s("span",null,"Showing "+c(e.entries?.length)+" of "+c(e.total)+" captured",1),s("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=n=>e.loadMore())},"Load older")])):m("v-if",!0),e.visible?.length?(l(),d("div",lm,[t[31]||(t[31]=ge('
WhenSeverityModuleMessageCountStatus
',1)),(l(!0),d(Y,null,oe(e.visible,(n,i)=>(l(),d("div",{class:O(["errors-row",{open:e.expanded[n?._key]}]),key:n?._key},[s("div",{class:"errors-row-main",onClick:a=>e.toggle(n)},[s("div",um,[s("div",cm,c(e.relTime(n?.ts)),1),s("div",pm,c(e.absTimeShort(n?.ts)),1)]),s("div",fm,[s("span",{class:O(["sev-dot","sev-"+n?._bucket])},null,2),s("span",mm,c(e.fmt?.uppercase(n?._bucket)),1)]),s("div",hm,[s("span",vm,c(n?.module),1)]),s("div",ym,[s("strong",gm,c(n?.displayMessage),1),n?.displayContext&&n?.displayContext!==n?.displayMessage?(l(),d("span",bm,c(n?.displayContext),1)):m("v-if",!0),n?._detail?(l(),d("span",wm,c(n?._detail),1)):m("v-if",!0),n?._url?(l(),d("div",km,c(n?._url),1)):m("v-if",!0)]),s("div",_m,[n?.count>1?(l(),d("span",Em,"\xD7"+c(n?.count),1)):m("v-if",!0),n?.count===1?(l(),d("span",Cm,"\xD71")):m("v-if",!0)]),s("div",Nm,[n?._status?(l(),d("span",{key:0,class:O(["status-pill","status-"+n?._bucket])},c(n?._status),3)):m("v-if",!0)])],8,dm),e.expanded[n?._key]?(l(),d("div",Sm,[s("div",Dm,[s("button",{type:"button",class:O({active:e.detailTab[n?._key]==="raw"||!e.detailTab[n?._key]}),onClick:a=>e.detailTab[n._key]="raw"},"Raw",10,Rm),n?._stack?(l(),d("button",{key:0,type:"button",class:O({active:e.detailTab[n?._key]==="stack"}),onClick:a=>e.detailTab[n._key]="stack"},"Stack",10,Tm)):m("v-if",!0),n?.count>1?(l(),d("button",{key:1,type:"button",class:O({active:e.detailTab[n?._key]==="related"}),onClick:a=>e.detailTab[n._key]="related"},"Related ("+c(n?.count)+")",11,Om)):m("v-if",!0)]),s("div",Am,[s("div",Im,[(e.detailTab[n?._key]||"raw")==="raw"?(l(),d("pre",Vm,c(n?._detailJson),1)):m("v-if",!0),e.detailTab[n?._key]==="stack"?(l(),d("pre",Pm,c(n?._stack),1)):m("v-if",!0),e.detailTab[n?._key]==="related"?(l(),d("div",qm,[(l(!0),d(Y,null,oe(n?._related,(a,u)=>(l(),d("div",{class:"related-row",key:u},[s("span",Mm,c(e.absTimeShort(a?.ts)),1),s("span",$m,c(a?._url),1),a?._status?(l(),d("span",{key:0,class:O(["status-pill","status-"+a?._bucket])},c(a?._status),3)):m("v-if",!0)]))),128))])):m("v-if",!0),s("div",Lm,[s("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:a=>e.copyCurl(n)},[...t[24]||(t[24]=[s("i",{class:"fas fa-terminal"},null,-1),y(" Copy curl",-1)])],8,Fm),s("button",{class:"btn btn-sm",type:"button",onClick:a=>e.copyJson(n)},[...t[25]||(t[25]=[s("i",{class:"fas fa-clipboard"},null,-1),y(" Copy JSON",-1)])],8,Um),e.copyHint?(l(),d("span",zm,c(e.copyHint),1)):m("v-if",!0)])]),s("aside",Hm,[s("div",Bm,[t[26]||(t[26]=s("div",{class:"aside-label"},"First seen",-1)),s("div",{class:"aside-value",title:e.absTime(n?._firstSeen)},c(e.relTime(n?._firstSeen)),9,Gm)]),s("div",jm,[t[27]||(t[27]=s("div",{class:"aside-label"},"Last seen",-1)),s("div",{class:"aside-value",title:e.absTime(n?.ts)},c(e.relTime(n?.ts)),9,Wm)]),s("div",Km,[t[28]||(t[28]=s("div",{class:"aside-label"},"Occurrences",-1)),s("div",Ym,[y(c(n?.count),1),n?._lastHourCount?(l(),d("span",Jm," \xB7 "+c(n?._lastHourCount)+" this hour",1)):m("v-if",!0)])]),n?._repoId?(l(),d("div",Qm,[t[29]||(t[29]=s("div",{class:"aside-label"},"Repository",-1)),s("a",{class:"aside-value",href:e.safeUrl("/r/"+n?._repoId)},c(n?._repoId),9,Xm)])):m("v-if",!0),n?._url?(l(),d("div",xm,[t[30]||(t[30]=s("div",{class:"aside-label"},"URL",-1)),s("div",Zm,c(n?._url),1)])):m("v-if",!0)])])])):m("v-if",!0)],2))),128))])):m("v-if",!0)])}var eh={class:"container paper-page admin-page overview-page"},th={key:0,class:"admin-empty"},sh={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},nh={key:2},oh={class:"ov-kpi-row"},rh={class:"ov-kpi-card"},ih={class:"ov-kpi-value"},ah={class:"ov-kpi-sub"},lh={class:"ov-kpi-card"},dh={class:"ov-kpi-sub"},uh={class:"ov-kpi-card"},ch={class:"ov-kpi-sub"},ph={class:"ov-kpi-card"},fh={class:"ov-kpi-sub"},mh={class:"ov-kpi-card"},hh={class:"ov-kpi-value"},vh={class:"ov-kpi-sub"},yh={class:"ov-daily-row"},gh={class:"ov-daily-card"},bh={class:"ov-daily-value"},wh={class:"ov-daily-card"},kh={class:"ov-daily-value"},_h={class:"ov-daily-sub"},Eh={class:"ov-daily-card"},Ch={class:"ov-daily-value"},Nh={class:"ov-chart-row"},Sh={class:"ov-chart-card"},Dh={key:0,class:"ov-spark-bars"},Rh=["data-tip","aria-label"],Th={key:1,class:"ov-spark-x"},Oh={class:"ov-chart-card"},Ah={key:0,class:"ov-spark-bars"},Ih=["data-tip","aria-label"],Vh={key:1,class:"ov-spark-x"},Ph={class:"ov-chart-card"},qh={key:0,class:"ov-spark-bars"},Mh=["data-tip","aria-label"],$h={key:1,class:"ov-spark-x"},Lh={class:"ov-chart-card"},Fh={key:0,class:"ov-spark-bars"},Uh=["data-tip","aria-label"],zh={key:1,class:"ov-spark-x"},Hh={class:"ov-triple-row"},Bh={class:"ov-panel-card"},Gh={class:"ov-panel-head"},jh={class:"ov-panel-meta"},Wh={class:"ov-stacked-bar"},Kh={class:"ov-bar-legend"},Yh={href:"/admin/repositories",class:"ov-legend-item"},Jh={class:"ov-legend-n"},Qh={href:"/admin/repositories",class:"ov-legend-item"},Xh={class:"ov-legend-n"},xh={href:"/admin/repositories",class:"ov-legend-item"},Zh={class:"ov-legend-n"},ev={href:"/admin/repositories",class:"ov-legend-item"},tv={class:"ov-legend-n"},sv={href:"/admin/repositories",class:"ov-legend-item"},nv={class:"ov-legend-n"},ov={class:"ov-panel-card"},rv={class:"ov-panel-head"},iv={class:"ov-panel-meta"},av={class:"ov-error-bars"},lv={class:"ov-ebar-row"},dv={class:"ov-ebar-track"},uv={class:"ov-ebar-n"},cv={class:"ov-ebar-row"},pv={class:"ov-ebar-track"},fv={class:"ov-ebar-n"},mv={class:"ov-ebar-row"},hv={class:"ov-ebar-track"},vv={class:"ov-ebar-n"},yv={key:0,class:"ov-panel-foot"},gv={href:"/admin/errors"},bv={class:"ov-panel-card"},wv={class:"ov-routes-table"},kv={class:"ov-route-row",href:"/admin/queues"},_v={class:"ov-route-n"},Ev={class:"ov-route-n"},Cv={class:"ov-route-row",href:"/admin/queues"},Nv={class:"ov-route-n"},Sv={class:"ov-route-n"},Dv={class:"ov-route-row",href:"/admin/queues"},Rv={class:"ov-route-n"},Tv={class:"ov-route-n"},Ov={class:"ov-services-card"},Av={class:"ov-services-head"},Iv={class:"ov-panel-meta"},Vv={class:"ov-services-grid"},Pv={class:"ov-svc"},qv={class:"ov-svc-info"},Mv={class:"ov-svc-meta"},$v={class:"ov-svc-detail"},Lv={class:"ov-svc"},Fv={class:"ov-svc-info"},Uv={key:0,class:"ov-svc-meta"},zv={key:1,class:"ov-svc-meta"},Hv={class:"ov-svc"},Bv={class:"ov-svc-info"},Gv={key:0,class:"ov-svc-meta"},jv={key:1,class:"ov-svc-meta"},Wv={class:"ov-svc"},Kv={class:"ov-svc-info"},Yv={key:0,class:"ov-svc-meta"},Jv={key:1,class:"ov-svc-meta"},Qv={class:"ov-svc"},Xv={class:"ov-svc-info"},xv={class:"ov-svc-meta"};function Qa(e,t){return l(),d("div",eh,[t[42]||(t[42]=ge('
Admin \xB7 System Health

Overview

',3)),e.loading?(l(),d("div",th,"Loading overview\u2026")):m("v-if",!0),e.error?(l(),d("div",sh,[t[0]||(t[0]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),y(" "+c(e.error),1)])):m("v-if",!0),e.data?(l(),d("div",nh,[m(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",oh,[s("div",rh,[t[1]||(t[1]=s("div",{class:"ov-kpi-label"},[y("Repositories "),s("span",{class:"ov-dot ov-dot-ok"})],-1)),s("div",ih,c(e.humanNum(e.data?.repos?.total)),1),s("div",ah,"+"+c(e.data?.repos?.newRepos24h)+" \xB7 last 24h",1)]),s("div",lh,[t[2]||(t[2]=s("div",{class:"ov-kpi-label"},"CPU",-1)),s("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>80}])},c(e.data?.system?.cpuPercent)+"%",3),s("div",dh,c(e.data?.system?.cpuCount)+" cores \xB7 load "+c(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)]),s("div",uh,[t[3]||(t[3]=s("div",{class:"ov-kpi-label"},"Memory",-1)),s("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>85}])},c(e.data?.system?.memPercent)+"%",3),s("div",ch,c(e.humanBytes(e.data?.system?.memUsed))+" / "+c(e.humanBytes(e.data?.system?.memTotal)),1)]),s("div",ph,[t[4]||(t[4]=s("div",{class:"ov-kpi-label"},"Disk",-1)),s("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>85}])},c(e.data?.system?.diskPercent)+"%",3),s("div",fh,c(e.humanBytes(e.data?.system?.diskUsed))+" / "+c(e.humanBytes(e.data?.system?.diskTotal))+" \xB7 "+c(e.data?.system?.diskMount),1)]),s("div",mh,[t[5]||(t[5]=s("div",{class:"ov-kpi-label"},"Uptime",-1)),s("div",hh,c(e.humanDuration(e.data?.system?.uptime)),1),s("div",vh,c(e.data?.system?.nodeVersion)+" \xB7 "+c(e.data?.system?.platform),1)])]),m(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",yh,[s("div",gh,[t[6]||(t[6]=s("div",{class:"ov-daily-label"},"New repos today",-1)),s("div",bh,"+"+c(e.fmt?.number(e.data?.daily?.today?.repositories)),1),t[7]||(t[7]=s("div",{class:"ov-daily-sub"},"since yesterday",-1))]),s("div",wh,[t[8]||(t[8]=s("div",{class:"ov-daily-label"},"New users today",-1)),s("div",kh,"+"+c(e.fmt?.number(e.data?.daily?.today?.users)),1),s("div",_h,c(e.fmt?.number(e.data?.users?.total))+" total users",1)]),s("div",Eh,[t[9]||(t[9]=s("div",{class:"ov-daily-label"},"Page views today",-1)),s("div",Ch,"+"+c(e.fmt?.number(e.data?.daily?.today?.pageViews)),1),t[10]||(t[10]=s("div",{class:"ov-daily-sub"},"since yesterday",-1))])]),m(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",Nh,[s("div",Sh,[t[11]||(t[11]=s("div",{class:"ov-chart-head"},[s("span",{class:"ov-chart-title"},"Daily page views \xB7 30d"),s("span",{class:"ov-chart-legend"},[s("span",{class:"ov-dot-legend ov-dot-accent"}),y("views/day")])],-1)),e.data?.history?.length?(l(),d("div",Dh,[(l(!0),d(Y,null,oe(e.data?.history,(o,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views"},[s("span",{class:"ov-spark-fill",style:Ve({height:e.historyBarH(o,"dailyPageViews")+"px"})},null,4)],8,Rh))),128))])):m("v-if",!0),e.data?.history?.length?(l(),d("div",Th,[s("span",null,c(e.historyLabel(e.data?.history[0])),1),s("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),s("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):m("v-if",!0)]),s("div",Oh,[t[12]||(t[12]=s("div",{class:"ov-chart-head"},[s("span",{class:"ov-chart-title"},"New repos \xB7 30d"),s("span",{class:"ov-chart-legend"},[s("span",{class:"ov-dot-legend ov-dot-ok-fill"}),y("repos/day")])],-1)),e.data?.history?.length?(l(),d("div",Ah,[(l(!0),d(Y,null,oe(e.data?.history,(o,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos"},[s("span",{class:"ov-spark-fill ov-spark-fill-alt",style:Ve({height:e.historyBarH(o,"dailyRepositories")+"px"})},null,4)],8,Ih))),128))])):m("v-if",!0),e.data?.history?.length?(l(),d("div",Vh,[s("span",null,c(e.historyLabel(e.data?.history[0])),1),s("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),s("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):m("v-if",!0)]),s("div",Ph,[t[13]||(t[13]=s("div",{class:"ov-chart-head"},[s("span",{class:"ov-chart-title"},"Users \xB7 30d"),s("span",{class:"ov-chart-legend"},[s("span",{class:"ov-dot-legend ov-dot-user-fill"}),y("total users")])],-1)),e.data?.history?.length?(l(),d("div",qh,[(l(!0),d(Y,null,oe(e.data?.history,(o,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users","aria-label":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users"},[s("span",{class:"ov-spark-fill ov-spark-fill-user",style:Ve({height:e.historyBarH(o,"nbUsers")+"px"})},null,4)],8,Mh))),128))])):m("v-if",!0),e.data?.history?.length?(l(),d("div",$h,[s("span",null,c(e.historyLabel(e.data?.history[0])),1),s("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),s("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):m("v-if",!0)]),s("div",Lh,[t[14]||(t[14]=s("div",{class:"ov-chart-head"},[s("span",{class:"ov-chart-title"},"New users \xB7 30d"),s("span",{class:"ov-chart-legend"},[s("span",{class:"ov-dot-legend ov-dot-new-user-fill"}),y("users/day")])],-1)),e.data?.history?.length?(l(),d("div",Fh,[(l(!0),d(Y,null,oe(e.data?.history,(o,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users"},[s("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:Ve({height:e.historyBarH(o,"dailyUsers")+"px"})},null,4)],8,Uh))),128))])):m("v-if",!0),e.data?.history?.length?(l(),d("div",zh,[s("span",null,c(e.historyLabel(e.data?.history[0])),1),s("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),s("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):m("v-if",!0)])]),m(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",Hh,[m(" Repo status breakdown "),s("div",Bh,[s("div",Gh,[t[15]||(t[15]=s("span",{class:"ov-panel-title"},"Repo status",-1)),s("span",jh,c(e.fmt?.number(e.data?.repos?.total))+" total",1)]),s("div",Wh,[s("span",{class:"ov-bar-seg ov-bar-ready",title:"Ready",style:Ve({width:e.barPct("ready")+"%"})},null,4),s("span",{class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:Ve({width:e.barPct("preparing")+"%"})},null,4),s("span",{class:"ov-bar-seg ov-bar-error",title:"Error",style:Ve({width:e.barPct("error")+"%"})},null,4),s("span",{class:"ov-bar-seg ov-bar-expired",title:"Expired",style:Ve({width:e.barPct("expired")+"%"})},null,4),s("span",{class:"ov-bar-seg ov-bar-removed",title:"Removed",style:Ve({width:e.barPct("removed")+"%"})},null,4)]),s("div",Kh,[s("a",Yh,[t[16]||(t[16]=s("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[17]||(t[17]=y(" ready ",-1)),s("span",Jh,c(e.fmt?.number(e.statusCount("ready"))),1)]),s("a",Qh,[t[18]||(t[18]=s("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[19]||(t[19]=y(" preparing ",-1)),s("span",Xh,c(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),s("a",xh,[t[20]||(t[20]=s("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[21]||(t[21]=y(" error ",-1)),s("span",Zh,c(e.fmt?.number(e.statusCount("error"))),1)]),s("a",ev,[t[22]||(t[22]=s("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[23]||(t[23]=y(" expired ",-1)),s("span",tv,c(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),s("a",sv,[t[24]||(t[24]=s("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[25]||(t[25]=y(" removed ",-1)),s("span",nv,c(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),m(" Error breakdown "),s("div",ov,[s("div",rv,[t[26]||(t[26]=s("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),s("span",iv,c(e.data?.errors?.last24h)+" total",1)]),s("div",av,[s("div",lv,[t[27]||(t[27]=s("span",{class:"ov-ebar-label"},"5xx",-1)),s("span",dv,[s("span",{class:"ov-ebar-fill ov-ebar-error",style:Ve({width:e.errPct("error")+"%"})},null,4)]),s("span",uv,c(e.data?.errors?.severity?.error),1)]),s("div",cv,[t[28]||(t[28]=s("span",{class:"ov-ebar-label"},"4xx",-1)),s("span",pv,[s("span",{class:"ov-ebar-fill ov-ebar-warn",style:Ve({width:e.errPct("warn")+"%"})},null,4)]),s("span",fv,c(e.data?.errors?.severity?.warn),1)]),s("div",mv,[t[29]||(t[29]=s("span",{class:"ov-ebar-label"},"Info",-1)),s("span",hv,[s("span",{class:"ov-ebar-fill ov-ebar-info",style:Ve({width:e.errPct("info")+"%"})},null,4)]),s("span",vv,c(e.data?.errors?.severity?.info),1)])]),e.data?.repos?.recentErrors24h?(l(),d("div",yv,[s("a",gv,c(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):m("v-if",!0)]),m(" Top routes / queues "),s("div",bv,[t[34]||(t[34]=s("div",{class:"ov-panel-head"},[s("span",{class:"ov-panel-title"},"Queues"),s("span",{class:"ov-panel-meta"},"by state")],-1)),s("div",wv,[t[33]||(t[33]=ge('
QueueActiveWaitFailed
',1)),s("a",kv,[t[30]||(t[30]=s("span",{class:"ov-route-name"},"download",-1)),s("span",_v,c(e.data?.queues?.download?.active),1),s("span",Ev,c(e.data?.queues?.download?.waiting),1),s("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},c(e.data?.queues?.download?.failed),3)]),s("a",Cv,[t[31]||(t[31]=s("span",{class:"ov-route-name"},"remove",-1)),s("span",Nv,c(e.data?.queues?.remove?.active),1),s("span",Sv,c(e.data?.queues?.remove?.waiting),1),s("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},c(e.data?.queues?.remove?.failed),3)]),s("a",Dv,[t[32]||(t[32]=s("span",{class:"ov-route-name"},"cache",-1)),s("span",Rv,c(e.data?.queues?.cache?.active),1),s("span",Tv,c(e.data?.queues?.cache?.waiting),1),s("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},c(e.data?.queues?.cache?.failed),3)])])])]),m(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",Ov,[s("div",Av,[t[35]||(t[35]=s("span",{class:"ov-panel-title"},"Services",-1)),s("span",Iv,c(e.fmt?.number(e.data?.users?.total))+" users \xB7 "+c(e.data?.conferences?.total)+" conferences",1)]),s("div",Vv,[s("div",Pv,[t[37]||(t[37]=s("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),s("div",qv,[t[36]||(t[36]=s("span",{class:"ov-svc-name"},"web",-1)),s("span",Mv,c(e.data?.system?.nodeVersion),1)]),s("span",$v,"uptime "+c(e.humanDuration(e.data?.system?.uptime)),1)]),s("div",Lv,[s("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),s("div",Fv,[t[38]||(t[38]=s("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(l(),d("span",Uv,c(e.queueTotal(e.data?.queues?.download))+" jobs",1)):m("v-if",!0),e.queueTotal(e.data?.queues?.download)?m("v-if",!0):(l(),d("span",zv,"idle"))])]),s("div",Hv,[s("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),s("div",Bv,[t[39]||(t[39]=s("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(l(),d("span",Gv,c(e.queueTotal(e.data?.queues?.cache))+" jobs",1)):m("v-if",!0),e.queueTotal(e.data?.queues?.cache)?m("v-if",!0):(l(),d("span",jv,"idle"))])]),s("div",Wv,[s("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),s("div",Kv,[t[40]||(t[40]=s("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(l(),d("span",Yv,c(e.queueTotal(e.data?.queues?.remove))+" jobs",1)):m("v-if",!0),e.queueTotal(e.data?.queues?.remove)?m("v-if",!0):(l(),d("span",Jv,"idle"))])]),s("div",Qv,[s("span",{class:O(["ov-svc-dot",e.data?.repos?.recentErrors24h>10?"ov-dot-warn":"ov-dot-ok"])},null,2),s("div",Xv,[t[41]||(t[41]=s("span",{class:"ov-svc-name"},"errors",-1)),s("span",xv,c(e.data?.errors?.last24h)+" / 24h",1)])])])])])):m("v-if",!0)])}var Zv={class:"container paper-page admin-page"},ey={class:"q-header"},ty={class:"q-header-actions"},sy={class:"q-range-btns"},ny={class:"q-cards"},oy=["onClick"],ry={class:"q-card-head"},iy=["textContent"],ay=["textContent"],ly={class:"q-card-sub"},dy={key:0,class:"q-card-bar"},uy={key:0,class:"q-detail"},cy={class:"q-throughput"},py={class:"q-section-label"},fy={class:"q-section-right"},my={class:"q-stats-panel"},hy={class:"q-section-label"},vy={class:"q-stats-grid"},yy={class:"q-stat"},gy=["textContent"],by={class:"q-stat"},wy=["textContent"],ky={class:"q-stat"},_y=["textContent"],Ey={class:"q-stat"},Cy=["textContent"],Ny={class:"q-stat"},Sy=["textContent"],Dy={class:"q-stat"},Ry=["textContent"],Ty={class:"q-stats-actions"},Oy=["disabled"],Ay={class:"q-jobs"},Iy={class:"q-jobs-header"},Vy={class:"q-section-label"},Py={class:"q-state-filters"},qy={class:"q-state-toggle"},My={type:"checkbox"},$y={class:"q-search-row"},Ly={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},Fy={class:"q-auto-refresh"},Uy={type:"checkbox"},zy={key:0,class:"q-table"},Hy=["onClick"],By={class:"q-cell-state"},Gy=["textContent"],jy=["textContent"],Wy={class:"q-cell-id"},Ky=["textContent","href"],Yy={class:"q-cell-payload"},Jy=["textContent"],Qy={key:0,class:"q-payload-detail"},Xy=["textContent"],xy=["textContent"],Zy={class:"q-cell-progress"},eg={key:0,class:"q-progress-wrap"},tg=["textContent"],sg={class:"q-cell-actions"},ng=["onClick"],og=["onClick"],rg={key:0,class:"q-detail-row"},ig={colspan:"7"},ag={class:"q-job-detail"},lg={class:"q-job-detail-grid"},dg={class:"q-job-detail-item"},ug={class:"q-job-detail-value"},cg=["textContent","href"],pg={class:"q-job-detail-item"},fg={class:"q-job-detail-value"},mg=["textContent"],hg={key:0,class:"q-job-detail-item"},vg=["textContent"],yg={key:1,class:"q-job-detail-item"},gg=["textContent"],bg={key:2,class:"q-job-detail-item"},wg={class:"q-job-detail-value"},kg={key:3,class:"q-job-detail-item"},_g=["textContent"],Eg={key:4,class:"q-job-detail-item"},Cg=["textContent"],Ng={key:5,class:"q-job-detail-item"},Sg=["textContent"],Dg={key:6,class:"q-job-detail-item"},Rg=["textContent"],Tg={key:7,class:"q-job-detail-item"},Og=["textContent"],Ag={key:0,class:"q-job-detail-error"},Ig=["textContent"],Vg={key:1},Pg=["textContent"],qg={class:"q-job-detail-actions"},Mg=["onClick"],$g=["onClick"],Lg=["href"],Fg={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},Ug={key:0},zg={key:1};function Xa(e,t){let o=we("field");return l(),d("div",Zv,[t[47]||(t[47]=s("div",{class:"paper-crumbs"},[y("Admin \xA0/\xA0 "),s("span",{class:"here"},"Queues")],-1)),s("div",ey,[t[12]||(t[12]=s("h1",{class:"paper-page-title"},"Queues",-1)),s("div",ty,[s("div",sy,[s("button",{class:O(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[0]||(t[0]=r=>e.setRange("1h"))},"1h",2),s("button",{class:O(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[1]||(t[1]=r=>e.setRange("6h"))},"6h",2),s("button",{class:O(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[2]||(t[2]=r=>e.setRange("24h"))},"24h",2),s("button",{class:O(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[3]||(t[3]=r=>e.setRange("7d"))},"7d",2)]),s("button",{class:"btn btn-sm",onClick:t[4]||(t[4]=r=>e.pauseAll())},"Pause all"),s("button",{class:"btn btn-sm btn-dark",onClick:t[5]||(t[5]=r=>e.drainSelected())},"Drain "+c(e.selectedQueue),1)])]),t[48]||(t[48]=ge('',1)),m(" Queue overview cards "),s("div",ny,[(l(!0),d(Y,null,oe(e.queueList,(r,n)=>(l(),d("div",{class:O(["q-card",{selected:e.selectedQueue==r?.key,paused:r?.paused}]),onClick:i=>e.selectQueue(r.key)},[s("div",ry,[s("span",{class:O(["q-dot",{"q-dot-red":r?.paused||r?.counts?.failed>0}])},null,2),s("span",{class:"q-card-name",textContent:c(r?.label)},null,8,iy)]),s("div",{class:"q-card-count",textContent:c((r?.counts?.waiting||0)+(r?.counts?.active||0)+(r?.counts?.delayed||0))},null,8,ay),s("div",ly,[s("span",null,"waiting \xB7 "+c(r?.counts?.active||0)+" active",1),r?.counts?.active?(l(),d("div",dy,[s("div",{class:"q-card-bar-fill",style:Ve({width:r?.counts?.active/((r?.counts?.waiting||0)+(r?.counts?.active||0)+(r?.counts?.delayed||0)||1)*100+"%"})},null,4)])):m("v-if",!0)])],10,oy))),256))]),m(" Detail: throughput chart + stats panel "),e.selectedStats?(l(),d("div",uy,[s("div",cy,[s("div",py,[y(c(e.selectedQueue)+"\xB7throughput ",1),s("span",fy,[t[13]||(t[13]=s("span",{class:"q-legend-completed"},"\u25CF",-1)),t[14]||(t[14]=y(" completed ",-1)),t[15]||(t[15]=s("span",{class:"q-legend-failed"},"\u25CF",-1)),t[16]||(t[16]=y(" failed ",-1)),t[17]||(t[17]=s("span",{class:"q-legend-exec"},"- -",-1)),y(" avg time \xB7 "+c(e.fmt?.uppercase(e.range)),1)])]),t[18]||(t[18]=s("div",{class:"q-chart-wrap"},[s("canvas",{id:"q-throughput-chart",height:"180"}),s("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}}),s("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}})],-1))]),s("div",my,[s("div",hy,c(e.selectedQueue)+"\xB7stats",1),s("div",vy,[s("div",yy,[t[19]||(t[19]=s("div",{class:"q-stat-label"},"WAITING",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.waiting||0)},null,8,gy)]),s("div",by,[t[20]||(t[20]=s("div",{class:"q-stat-label"},"ACTIVE",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.active||0)},null,8,wy)]),s("div",ky,[t[21]||(t[21]=s("div",{class:"q-stat-label"},"COMPLETED (24H)",-1)),s("div",{class:"q-stat-value",textContent:c(e.fmt?.number(e.selectedStats?.completed24h))},null,8,_y)]),s("div",Ey,[t[22]||(t[22]=s("div",{class:"q-stat-label"},"FAILED (24H)",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.failed24h||0)},null,8,Cy)]),s("div",Ny,[t[23]||(t[23]=s("div",{class:"q-stat-label"},"DELAYED",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.delayed||0)},null,8,Sy)]),s("div",Dy,[t[24]||(t[24]=s("div",{class:"q-stat-label"},"WORKERS",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.workers||0)},null,8,Ry)])]),s("div",Ty,[s("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=r=>e.togglePause())},c(e.selectedStats?.paused?"Resume":"Pause"),1),s("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=r=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,Oy),s("button",{class:"btn btn-sm",onClick:t[8]||(t[8]=r=>e.emptyQueue())},"Empty")])])])):m("v-if",!0),e.actionError?(l(),d("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=r=>e.actionError=null)},[t[25]||(t[25]=s("i",{class:"fas fa-exclamation-circle"},null,-1)),y(" "+c(e.actionError),1)])):m("v-if",!0),m(" Jobs table "),s("div",Ay,[s("div",Iy,[s("div",Vy,"ALL JOBS \xB7 "+c(e.fmt?.uppercase(e.selectedQueue)),1),s("div",Py,[(l(!0),d(Y,null,oe(e.allStates,(r,n)=>(l(),d("label",qy,[E(s("input",My,null,512),[[o,{state:e.viewState,set:i=>{e.stateFilter[r]=i},value:e.stateFilter[r],form:null,options:{}}]]),s("span",{class:O("q-state-chip q-state-"+r)},c(r),3)]))),256))])]),s("div",$y,[E(s("input",Ly,null,512),[[o,{state:e.viewState,set:r=>{e.query.search=r},value:e.query?.search,form:null,options:{}}]]),s("label",Fy,[E(s("input",Uy,null,512),[[o,{state:e.viewState,set:r=>{e.query.autoRefresh=r},value:e.query?.autoRefresh,form:null,options:{}}]]),t[26]||(t[26]=y(" Auto-refresh ",-1))]),s("button",{class:"btn btn-sm",type:"button",title:"Refresh now",onClick:t[10]||(t[10]=r=>e.refreshNow())},[...t[27]||(t[27]=[s("i",{class:"fas fa-sync"},null,-1)])])]),e.filteredJobs().length>0?(l(),d("table",zy,[t[45]||(t[45]=s("thead",null,[s("tr",null,[s("th",null,"STATE"),s("th",null,"JOB ID"),s("th",null,"PAYLOAD"),s("th",null,"ATTEMPTS"),s("th",null,"DURATION"),s("th",null,"PROGRESS"),s("th")])],-1)),(l(!0),d(Y,null,oe(e.filteredJobs(),(r,n)=>(l(),d("tbody",null,[s("tr",{style:{cursor:"pointer"},class:O({"q-row-failed":r?._state=="failed","q-row-expanded":e.expanded[r?.id]}),onClick:i=>e.toggleJob(r)},[s("td",By,[s("span",{textContent:c(r?._state),class:O("q-state-badge q-state-"+r?._state)},null,10,Gy),r?._state=="delayed"&&r?.delayUntil?(l(),d("span",{key:0,class:"q-delay-hint",textContent:c(e.delayCountdown(r?.delayUntil))},null,8,jy)):m("v-if",!0)]),s("td",Wy,[s("i",{class:O(["fas fa-chevron-right q-chevron",{"q-chevron-open":e.expanded[r?.id]}])},null,2),s("a",{target:"_blank",textContent:c("job:"+e.fmt.limitTo(r?.id,6)),onClick:t[11]||(t[11]=i=>i.stopPropagation()),href:e.safeUrl("/r/"+r?.id)},null,8,Ky)]),s("td",Yy,[s("span",{textContent:c(r?.name||"anonymize")},null,8,Jy),r?.data?.repoId&&r?.data?.repoId!==r?.name?(l(),d("span",Qy," \xB7 "+c(r?.data?.repoId),1)):m("v-if",!0)]),s("td",{class:"q-cell-num",textContent:c(r?.attemptsMade||1)},null,8,Xy),s("td",{class:"q-cell-num",textContent:c(e.jobDuration(r))},null,8,xy),s("td",Zy,[e.jobProgressPct(r)!==null?(l(),d("div",eg,[s("div",{class:"q-progress-bar",style:Ve({"--pct":e.jobProgressPct(r)+"%"})},null,4),s("span",{class:"q-progress-label",textContent:c(e.jobProgressPct(r)+"%")},null,8,tg)])):m("v-if",!0)]),s("td",sg,[r?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",title:"Retry",onClick:i=>{e.retryJob(r),i.stopPropagation()}},[...t[28]||(t[28]=[s("i",{class:"fas fa-sync"},null,-1)])],8,ng)):m("v-if",!0),s("button",{class:"btn btn-sm",title:"Remove",onClick:i=>{e.removeJob(r),i.stopPropagation()}},[...t[29]||(t[29]=[s("i",{class:"fas fa-trash-alt"},null,-1)])],8,og)])],10,Hy),e.expanded[r?.id]?(l(),d("tr",rg,[s("td",ig,[s("div",ag,[s("div",lg,[s("div",dg,[t[30]||(t[30]=s("span",{class:"q-job-detail-label"},"JOB ID",-1)),s("span",ug,[s("a",{target:"_blank",textContent:c(r?.id),href:e.safeUrl("/r/"+r?.id)},null,8,cg)])]),s("div",pg,[t[31]||(t[31]=s("span",{class:"q-job-detail-label"},"STATE",-1)),s("span",fg,[s("span",{textContent:c(r?._state),class:O("q-state-badge q-state-"+r?._state)},null,10,mg)])]),r?.data?.repoId?(l(),d("div",hg,[t[32]||(t[32]=s("span",{class:"q-job-detail-label"},"REPO ID",-1)),s("span",{class:"q-job-detail-value",textContent:c(r?.data?.repoId)},null,8,vg)])):m("v-if",!0),r?.timestamp?(l(),d("div",yg,[t[33]||(t[33]=s("span",{class:"q-job-detail-label"},"CREATED",-1)),s("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.timestamp))},null,8,gg)])):m("v-if",!0),r?._state=="delayed"&&r?.delayUntil?(l(),d("div",bg,[t[34]||(t[34]=s("span",{class:"q-job-detail-label"},"RETRY AT",-1)),s("span",wg,c(e.humanTime(r?.delayUntil))+" ("+c(e.delayCountdown(r?.delayUntil))+")",1)])):m("v-if",!0),r?.processedOn?(l(),d("div",kg,[t[35]||(t[35]=s("span",{class:"q-job-detail-label"},"PROCESSED",-1)),s("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.processedOn))},null,8,_g)])):m("v-if",!0),r?.finishedOn?(l(),d("div",Eg,[t[36]||(t[36]=s("span",{class:"q-job-detail-label"},"FINISHED",-1)),s("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.finishedOn))},null,8,Cg)])):m("v-if",!0),r?.attemptsMade?(l(),d("div",Ng,[t[37]||(t[37]=s("span",{class:"q-job-detail-label"},"ATTEMPTS",-1)),s("span",{class:"q-job-detail-value",textContent:c(r?.attemptsMade)},null,8,Sg)])):m("v-if",!0),r?.progress&&r?.progress?.status?(l(),d("div",Dg,[t[38]||(t[38]=s("span",{class:"q-job-detail-label"},"STATUS",-1)),s("span",{class:"q-job-detail-value",textContent:c(r?.progress?.status)},null,8,Rg)])):m("v-if",!0),e.jobProgressPct(r)!==null?(l(),d("div",Tg,[t[39]||(t[39]=s("span",{class:"q-job-detail-label"},"PROGRESS",-1)),s("span",{class:"q-job-detail-value",textContent:c(e.jobProgressPct(r)+"%")},null,8,Og)])):m("v-if",!0)]),r?.failedReason?(l(),d("div",Ag,[t[40]||(t[40]=s("span",{class:"q-job-detail-label"},"ERROR",-1)),s("div",{class:"q-error-reason",textContent:c(r?.failedReason)},null,8,Ig)])):m("v-if",!0),r?.stacktrace?.length?(l(),d("div",Vg,[t[41]||(t[41]=s("span",{class:"q-job-detail-label"},"STACKTRACE",-1)),(l(!0),d(Y,null,oe(r?.stacktrace,(i,a)=>(l(),d("pre",{class:"q-error-stack",key:a},[s("code",{textContent:c(i)},null,8,Pg)]))),128))])):m("v-if",!0),s("div",qg,[r?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",onClick:i=>e.retryJob(r)},[...t[42]||(t[42]=[s("i",{class:"fas fa-sync"},null,-1),y(" Retry",-1)])],8,Mg)):m("v-if",!0),s("button",{class:"btn btn-sm",onClick:i=>e.removeJob(r)},[...t[43]||(t[43]=[s("i",{class:"fas fa-trash-alt"},null,-1),y(" Remove",-1)])],8,$g),s("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+r?.id)},[...t[44]||(t[44]=[s("i",{class:"fas fa-external-link-alt"},null,-1),y(" View repo",-1)])],8,Lg)])])])])):m("v-if",!0)]))),256))])):m("v-if",!0),e.filteredJobs().length==0?(l(),d("div",Fg,[t[46]||(t[46]=s("i",{class:"fas fa-check-circle"},null,-1)),e.query?.search?m("v-if",!0):(l(),d("span",Ug,"No jobs in the "+c(e.selectedQueue)+" queue.",1)),e.query?.search?(l(),d("span",zg,"No jobs match the current filters.")):m("v-if",!0)])):m("v-if",!0)])])}var Hg={class:"container paper-page admin-page"},Bg={class:"admin-summary"},Gg={class:"summary-total"},jg={class:"summary-meta"},Wg={class:"count"},Kg={class:"count"},Yg={class:"count"},Jg={class:"count"},Qg={class:"count"},Xg={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},xg={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},Zg={class:"admin-filter-row"},eb={class:"search-wrap"},tb={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},sb={key:0,class:"admin-search-hint"},ob={class:"admin-filter-inline"},rb={type:"text",class:"form-control form-control-sm",placeholder:"username"},ib={class:"admin-filter-inline"},ab={type:"text",class:"form-control form-control-sm",placeholder:"ID"},lb={class:"admin-filter-inline","aria-label":"Pagination"},db=["disabled"],ub={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},cb=["disabled"],pb={key:0,class:"admin-filter-row"},fb={class:"admin-active-chips"},mb={class:"key"},hb=["onClick"],vb={key:1,class:"bulk-bar"},yb={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},gb={class:"paper-table-head",role:"row"},bb={role:"columnheader",style:{width:"28px"}},wb=["checked"],kb={role:"columnheader"},_b={role:"columnheader"},Eb={role:"columnheader",class:"num"},Cb={role:"columnheader"},Nb={role:"cell",style:{width:"28px"}},Sb={type:"checkbox","aria-label":"Select repository"},Db={class:"cell-anon",role:"cell"},Rb={class:"anon-text"},Tb=["textContent","href"],Ob={class:"anon-sub"},Ab=["textContent","href"],Ib={key:0},Vb=["textContent","href"],Pb={key:1},qb=["textContent","href"],Mb={key:2},$b={class:"cell-status",role:"cell"},Lb={class:"status-line"},Fb=["textContent"],Ub=["textContent","title"],zb=["textContent"],Hb=["textContent"],Bb={class:"cell-actions",role:"cell"},Gb={class:"dropdown"},jb={class:"dropdown-menu dropdown-menu-right"},Wb=["href"],Kb=["href"],Yb=["href"],Jb=["onClick"],Qb=["onClick"],Xb=["onClick"],xb=["onClick"],Zb=["onClick"],e1=["onClick"],t1={key:0,class:"paper-table-empty"},s1={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},n1={style:{"font-size":"12px",color:"var(--ink-muted)"}},o1={key:0,class:"pagination-compact"},r1=["disabled"],i1=["max"],a1=["disabled"],l1={class:"admin-filter-inline"},d1={class:"form-control form-control-sm"};function xa(e,t){let o=we("field"),r=we("form");return l(),d("div",Hg,[t[61]||(t[61]=ge('
Admin \xA0/\xA0 Repositories

Repositories

',3)),s("div",Bg,[s("span",Gg,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),s("span",jg,c(e.fmt?.humanFileSize(e.totalSize))+" on disk",1),s("span",{class:O(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=n=>{e.query.ready=!e.query.ready,e.query.page=1})},[t[18]||(t[18]=y("Ready ",-1)),s("span",Wg,c(e.fmt?.number(e.statusCountFor("ready"))),1)],2),s("span",{class:O(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=n=>{e.query.preparing=!e.query.preparing,e.query.page=1})},[t[19]||(t[19]=y("Preparing ",-1)),s("span",Kg,c(e.fmt?.number(e.statusCountFor("preparing")+e.statusCountFor("download"))),1)],2),s("span",{class:O(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=n=>{e.query.error=!e.query.error,e.query.page=1})},[t[20]||(t[20]=y("Errored ",-1)),s("span",Yg,c(e.fmt?.number(e.statusCountFor("error"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=n=>{e.query.expired=!e.query.expired,e.query.page=1})},[t[21]||(t[21]=y("Expired ",-1)),s("span",Jg,c(e.fmt?.number(e.statusCountFor("expired")+e.statusCountFor("expiring"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=n=>{e.query.removed=!e.query.removed,e.query.page=1})},[t[22]||(t[22]=y("Removed ",-1)),s("span",Qg,c(e.fmt?.number(e.statusCountFor("removed")+e.statusCountFor("removing"))),1)],2)]),e.fetchError?(l(),d("div",Xg,[t[23]||(t[23]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),y(" "+c(e.fetchError),1)])):m("v-if",!0),E((l(),d("form",xg,[m(" Row 1: search + scoped inputs + headline actions "),s("div",Zg,[s("div",eb,[E(s("input",tb,null,512),[[o,{state:e.viewState,set:n=>{e.query.search=n},value:e.query?.search,form:null,options:{}}]]),e.query?.search?m("v-if",!0):(l(),d("span",sb,"/"))]),s("span",ob,[t[24]||(t[24]=s("label",null,"Owner",-1)),E(s("input",rb,null,512),[[o,{state:e.viewState,set:n=>{e.query.owner=n},value:e.query?.owner,form:null,options:{}}]])]),s("span",ib,[t[25]||(t[25]=s("label",null,"Conference",-1)),E(s("input",ab,null,512),[[o,{state:e.viewState,set:n=>{e.query.conference=n},value:e.query?.conference,form:null,options:{}}]])]),t[29]||(t[29]=s("span",{class:"admin-filter-spacer"},null,-1)),s("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[5]||(t[5]=n=>e.exportCsv())},[...t[26]||(t[26]=[s("i",{class:"fas fa-file-csv"},null,-1),y(" Export",-1)])]),s("span",lb,[s("button",{class:"btn btn-sm",type:"button",onClick:t[6]||(t[6]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[27]||(t[27]=[s("i",{class:"fas fa-chevron-left"},null,-1)])],8,db),s("span",ub,c(e.query?.page)+"/"+c(e.totalPage||1),1),s("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[28]||(t[28]=[s("i",{class:"fas fa-chevron-right"},null,-1)])],8,cb)])]),m(" Row 2: appears only when there are active filter chips "),e.chips?.length?(l(),d("div",pb,[s("div",fb,[(l(!0),d(Y,null,oe(e.chips,(n,i)=>(l(),d("span",{class:"admin-active-chip",key:n?.key},[s("span",mb,c(n?.label),1),s("span",null,c(n?.value),1),s("button",{type:"button","aria-label":"Remove filter",onClick:a=>e.clearFilter(n.key)},[...t[30]||(t[30]=[s("i",{class:"fas fa-times"},null,-1)])],8,hb)]))),128))])])):m("v-if",!0)])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",vb,[s("span",null,[s("strong",null,c(e.selectedCount()),1),t[31]||(t[31]=y(" selected",-1))]),s("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=n=>e.bulkRefresh())},[...t[32]||(t[32]=[s("i",{class:"fas fa-sync"},null,-1),y(" Force refresh",-1)])]),s("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[9]||(t[9]=n=>e.bulkRemoveCache())},[...t[33]||(t[33]=[s("i",{class:"fas fa-broom"},null,-1),y(" Remove cache",-1)])]),s("button",{class:"btn btn-sm",type:"button",onClick:t[10]||(t[10]=n=>e.clearSelection())},"Clear")])):m("v-if",!0),s("div",yb,[s("div",gb,[s("div",bb,[s("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[11]||(t[11]=n=>e.selectAllOnPage()),checked:e.allSelected},null,8,wb)]),s("div",kb,[s("span",{class:O(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[12]||(t[12]=n=>e.sortBy("source.repositoryName"))},[t[34]||(t[34]=y("Repository ",-1)),s("i",{class:O(["fas",e.sortIcon("source.repositoryName")])},null,2)],2)]),s("div",_b,[s("span",{class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[13]||(t[13]=n=>e.sortBy("status"))},[t[35]||(t[35]=y("Status ",-1)),s("i",{class:O(["fas",e.sortIcon("status")])},null,2)],2)]),s("div",Eb,[s("span",{class:O(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[14]||(t[14]=n=>e.sortBy("pageView"))},[t[36]||(t[36]=y("Views ",-1)),s("i",{class:O(["fas",e.sortIcon("pageView")])},null,2)],2)]),s("div",Cb,[s("span",{class:O(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[15]||(t[15]=n=>e.sortBy("anonymizeDate"))},[t[37]||(t[37]=y("Anonymized ",-1)),s("i",{class:O(["fas",e.sortIcon("anonymizeDate")])},null,2)],2)]),t[38]||(t[38]=s("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(Y,null,oe(e.filteredRepositories,(n,i)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":n?.status=="expired"||n?.status=="removed","repo-error":n?.status=="error","row-selected":e.selected[n?.repoId]}]),role:"row"},[s("div",Nb,[E(s("input",Sb,null,512),[[o,{state:e.viewState,set:a=>{e.selected[n.repoId]=a},value:e.selected[n?.repoId],form:null,options:{}}]])]),s("div",Db,[t[43]||(t[43]=s("span",{class:"type-badge type-repo"},"Repo",-1)),s("div",Rb,[s("a",{class:"repo-name",target:"_blank",textContent:c(n?.repoId),href:e.safeUrl("/r/"+n?.repoId)},null,8,Tb),s("div",Ob,[s("a",{textContent:c(n?.source?.repositoryName),href:e.safeUrl("https://github.com/"+n?.source?.repositoryName+"/")},null,8,Ab),n?.options?.update?(l(),d("span",Ib,[t[39]||(t[39]=y("\xA0\xB7\xA0",-1)),s("a",{textContent:c(n?.source?.branch),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.branch)},null,8,Vb)])):m("v-if",!0),n?.options?.update?m("v-if",!0):(l(),d("span",Pb,[t[40]||(t[40]=y("\xA0\xB7\xA0@",-1)),s("a",{textContent:c(n?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.commit)},null,8,qb)])),n?.conference?(l(),d("span",Mb,[t[41]||(t[41]=y("\xA0\xB7\xA0",-1)),t[42]||(t[42]=s("i",{class:"fas fa-chalkboard-teacher"},null,-1)),y(" "+c(n?.conference),1)])):m("v-if",!0),s("span",null,"\xA0\xB7\xA0"+c(e.fmt?.humanFileSize(n?.size?.storage)),1),s("span",null,"\xA0\xB7\xA0"+c(e.fmt?.number(n?.options?.terms?.length))+" terms",1)])])]),s("div",$b,[s("span",Lb,[s("span",{class:O(["status-dot",{"status-removed":n?.status=="removed"||n?.status=="expired","status-ready":n?.status=="ready","status-error":n?.status=="error","status-preparing":n?.status=="preparing"}])},null,2),s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,Fb)]),n?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(n?.statusMessage)),title:n?.statusMessage},null,8,Ub)):m("v-if",!0)]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.pageView||0))},null,8,zb),s("div",{class:"cell-expires",role:"cell",textContent:c(e.fmt?.humanTime(n?.anonymizeDate))},null,8,Hb),s("div",Bb,[s("div",Gb,[t[55]||(t[55]=s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"})],-1)),s("div",jb,[s("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+n?.repoId)},[...t[44]||(t[44]=[s("i",{class:"far fa-edit"},null,-1),y(" Edit",-1)])],8,Wb),s("a",{class:"dropdown-item",href:e.safeUrl("/r/"+n?.repoId+"/")},[...t[45]||(t[45]=[s("i",{class:"fa fa-eye"},null,-1),y(" View repo",-1)])],8,Kb),n?.options?.page&&n?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+n?.repoId+"/")},[...t[46]||(t[46]=[s("i",{class:"fas fa-globe"},null,-1),y(" View page",-1)])],8,Yb)):m("v-if",!0),s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.fetchGithubInfo(n),["prevent"])},[...t[47]||(t[47]=[s("i",{class:"fab fa-github"},null,-1),y(" Live GitHub info",-1)])],8,Jb),t[53]||(t[53]=s("div",{class:"dropdown-divider"},null,-1)),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updateRepository(n),["prevent"])},[...t[48]||(t[48]=[s("i",{class:"fas fa-sync"},null,-1),y(" Force update",-1)])],8,Qb),[[G,n?.status=="ready"||n?.status=="error"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updateRepository(n),["prevent"])},[...t[49]||(t[49]=[s("i",{class:"fas fa-check-circle"},null,-1),y(" Enable",-1)])],8,Xb),[[G,n?.status=="removed"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.showStatusMessage(n),["prevent"])},[...t[50]||(t[50]=[s("i",{class:"fas fa-exclamation-triangle"},null,-1),y(" View status message",-1)])],8,xb),[[G,n?.statusMessage]]),t[54]||(t[54]=s("div",{class:"dropdown-divider"},null,-1)),s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.removeCache(n),["prevent"])},[...t[51]||(t[51]=[s("i",{class:"fas fa-broom"},null,-1),y(" Remove cache",-1)])],8,Zb),E(s("a",{class:"dropdown-item text-danger",href:"#",onClick:ke(a=>e.removeRepository(n),["prevent"])},[...t[52]||(t[52]=[s("i",{class:"fas fa-trash-alt"},null,-1),y(" Remove",-1)])],8,e1),[[G,n?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",t1,[...t[56]||(t[56]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No repositories match the current filters.",-1)])])):m("v-if",!0)]),s("div",s1,[s("span",n1,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",o1,[s("button",{class:"btn btn-sm",onClick:t[16]||(t[16]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[57]||(t[57]=[s("i",{class:"fas fa-chevron-left"},null,-1),y(" Previous ",-1)])],8,r1),E(s("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,i1),[[o,{state:e.viewState,set:n=>{e.query.page=n},value:e.query?.page,form:null,options:{}}]]),s("span",null,"of "+c(e.totalPage),1),s("button",{class:"btn btn-sm",onClick:t[17]||(t[17]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[58]||(t[58]=[y(" Next ",-1),s("i",{class:"fas fa-chevron-right"},null,-1)])],8,a1)])):m("v-if",!0),s("span",l1,[t[60]||(t[60]=s("label",null,"Per page",-1)),E((l(),d("select",d1,[...t[59]||(t[59]=[ge('',5)])])),[[o,{state:e.viewState,set:n=>{e.query.limit=n},value:e.query?.limit,form:null,options:{}}]])])])])}var u1={class:"container paper-page admin-page"},c1={class:"paper-crumbs"},p1={class:"here"},f1={class:"paper-page-title"},m1={key:0,class:"user-detail-card"},h1={class:"user-header"},v1=["src"],y1={class:"status-dot-wrap"},g1=["textContent"],b1={key:0,class:"type-badge type-repo"},w1={class:"user-actions",style:{"margin-top":"4px"}},k1={class:"user-detail-grid"},_1={class:"detail-value"},E1={class:"detail-value"},C1={class:"detail-value",style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},N1={class:"detail-value"},S1=["href"],D1={class:"detail-value"},R1={class:"detail-value"},T1={key:0},O1={key:1,class:"text-muted"},A1={class:"detail-value"},I1={key:0,style:{"margin-top":"20px"}},V1={class:"paper-table w-100",style:{"margin-top":"10px"}},P1={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},q1={class:"cell-anon",role:"cell"},M1={class:"anon-text"},$1=["textContent"],L1={class:"cell-expires",role:"cell"},F1={key:1,class:"admin-section-header"},U1={class:"section-count"},z1={key:2,class:"user-detail-card"},H1={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},B1={key:0,class:"alert alert-warning",role:"alert"},G1={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},j1={key:1,class:"paper-table w-100"},W1={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},K1=["textContent"],Y1=["textContent"],J1={role:"cell"},Q1={key:0},X1={key:1,class:"text-muted"},x1={role:"cell"},Z1=["onClick"],ew={key:2,class:"paper-table-empty"},tw={class:"admin-section-header"},sw={class:"section-count"},nw={class:"admin-summary"},ow={class:"summary-total"},rw={class:"count"},iw={class:"count"},aw={class:"count"},lw={class:"count"},dw={class:"count"},uw={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},cw={class:"admin-filter-row"},pw={class:"search-wrap"},fw={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},mw={key:3,class:"bulk-bar"},hw={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},vw={class:"paper-table-head",role:"row"},yw={role:"columnheader",style:{width:"28px"}},gw=["checked"],bw={role:"columnheader"},ww={role:"columnheader"},kw={role:"columnheader",class:"num"},_w={role:"columnheader"},Ew={role:"cell",style:{width:"28px"}},Cw={type:"checkbox","aria-label":"Select repository"},Nw={class:"cell-anon",role:"cell"},Sw={class:"anon-text"},Dw=["textContent","href"],Rw={class:"anon-sub"},Tw=["textContent","href"],Ow={key:0},Aw=["textContent","href"],Iw={key:1},Vw=["textContent","href"],Pw={key:2},qw={class:"cell-status",role:"cell"},Mw={class:"status-line"},$w=["textContent"],Lw=["textContent","title"],Fw=["textContent"],Uw=["textContent"],zw={class:"cell-actions",role:"cell"},Hw={class:"dropdown"},Bw={class:"dropdown-menu dropdown-menu-right"},Gw=["href"],jw=["href"],Ww=["href"],Kw=["onClick"],Yw=["onClick"],Jw=["onClick"],Qw=["onClick"],Xw=["onClick"],xw=["onClick"],Zw={key:0,class:"paper-table-empty"};function Za(e,t){let o=we("field"),r=we("form");return l(),d("div",u1,[s("div",c1,[t[22]||(t[22]=s("a",{href:"/admin/users"},"Users",-1)),t[23]||(t[23]=y(" \xA0/\xA0 ",-1)),s("span",p1,c(e.userInfo?.username||"Profile"),1)]),s("h1",f1,c(e.userInfo?.username||"User"),1),t[81]||(t[81]=ge('',1)),e.userInfo?(l(),d("div",m1,[s("div",h1,[e.userInfo?.photo?(l(),d("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,v1)):m("v-if",!0),s("div",null,[s("h1",null,[y(c(e.userInfo?.username)+" ",1),s("span",y1,[s("span",{class:O(["status-dot",{"status-ready":e.userInfo?.status=="active","status-removed":e.userInfo?.status!="active"}])},null,2),s("span",{textContent:c(e.fmt?.title(e.userInfo?.status))},null,8,g1)]),e.userInfo?.isAdmin?(l(),d("span",b1,"Admin")):m("v-if",!0)]),s("div",w1,[e.userInfo?.status!=="banned"?(l(),d("button",{key:0,class:"btn btn-sm text-danger",onClick:t[0]||(t[0]=n=>e.banUser())},[...t[24]||(t[24]=[s("i",{class:"fas fa-ban"},null,-1),y(" Ban",-1)])])):m("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(l(),d("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=n=>e.activateUser())},[...t[25]||(t[25]=[s("i",{class:"fas fa-check-circle"},null,-1),y(" Activate",-1)])])):m("v-if",!0),e.userInfo?.isAdmin?m("v-if",!0):(l(),d("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=n=>e.promoteUser())},[...t[26]||(t[26]=[s("i",{class:"fas fa-user-shield"},null,-1),y(" Promote to admin",-1)])])),e.userInfo?.isAdmin?(l(),d("button",{key:3,class:"btn btn-sm text-danger",onClick:t[3]||(t[3]=n=>e.demoteUser())},[...t[27]||(t[27]=[s("i",{class:"fas fa-user-minus"},null,-1),y(" Remove admin",-1)])])):m("v-if",!0)])])]),s("div",k1,[t[30]||(t[30]=s("div",{class:"detail-label"},"ID",-1)),s("div",_1,c(e.userInfo?._id),1),t[31]||(t[31]=s("div",{class:"detail-label"},"Email",-1)),s("div",E1,c(e.userInfo?.emails?.[0]?.email),1),t[32]||(t[32]=s("div",{class:"detail-label"},"Access token",-1)),s("div",C1,c(e.userInfo?.accessTokens?.github),1),t[33]||(t[33]=s("div",{class:"detail-label"},"GitHub",-1)),s("div",N1,[s("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[28]||(t[28]=s("i",{class:"fab fa-github"},null,-1)),y(" "+c(e.userInfo?.username),1)],8,S1)]),t[34]||(t[34]=s("div",{class:"detail-label"},"Created",-1)),s("div",D1,c(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[35]||(t[35]=s("div",{class:"detail-label"},"Last connection",-1)),s("div",R1,[e.userInfo?.accessTokenDates?.github?(l(),d("span",T1,c(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):m("v-if",!0),e.userInfo?.accessTokenDates?.github?m("v-if",!0):(l(),d("span",O1,"never"))]),t[36]||(t[36]=s("div",{class:"detail-label"},"GitHub repos",-1)),s("div",A1,[y(c(e.userInfo?.repositories?.length)+" repositories ",1),s("button",{class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=n=>e.showRepos=!e.showRepos)},c(e.showRepos?"Hide":"Show"),1),s("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=n=>e.getGitHubRepositories())},[...t[29]||(t[29]=[s("i",{class:"fas fa-sync"},null,-1),y(" Refresh ",-1)])])])]),e.showRepos?(l(),d("div",I1,[t[39]||(t[39]=s("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),s("div",V1,[(l(!0),d(Y,null,oe(e.userInfo?.repositories,(n,i)=>(l(),d("div",P1,[s("div",q1,[t[37]||(t[37]=s("span",{class:"type-badge type-repo"},"Repo",-1)),s("div",M1,[s("span",{class:"repo-name",textContent:c(n?.name)},null,8,$1)])]),s("div",L1,[t[38]||(t[38]=s("i",{class:"fas fa-database"},null,-1)),y(" "+c(e.fmt?.humanFileSize(n?.size)),1)])]))),256))])])):m("v-if",!0)])):m("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",F1,[t[40]||(t[40]=s("h2",null,[s("i",{class:"fas fa-key"}),y(" API tokens")],-1)),s("span",U1,c(e.tokens?.length),1)])):m("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",z1,[t[46]||(t[46]=s("p",{class:"paper-page-lede"},[y("Personal API tokens for this admin account. Send as "),s("code",null,"Authorization: Bearer "),y(" to authenticate without GitHub OAuth (useful for development).")],-1)),E((l(),d("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=ke(n=>e.submitForm(n,()=>{e.createToken()}),["prevent"]))},[E(s("input",H1,null,512),[[o,{state:e.viewState,set:n=>{e.tokenForm.name=n},value:e.tokenForm?.name,form:null,options:{}}]]),t[41]||(t[41]=s("button",{type:"submit",class:"btn btn-primary"},[s("i",{class:"fas fa-plus"}),y(" Generate")],-1))],32)),[[r,e.viewState]]),e.tokenForm?.plaintext?(l(),d("div",B1,[t[42]||(t[42]=s("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),s("pre",G1,c(e.tokenForm?.plaintext),1),s("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=n=>e.tokenForm.plaintext=null)},"Dismiss")])):m("v-if",!0),e.tokens?.length?(l(),d("div",j1,[t[44]||(t[44]=s("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[s("div",{role:"columnheader"},"Name"),s("div",{role:"columnheader"},"Created"),s("div",{role:"columnheader"},"Last used"),s("div",{role:"columnheader","aria-label":"Actions"})],-1)),(l(!0),d(Y,null,oe(e.tokens,(n,i)=>(l(),d("div",W1,[s("div",{role:"cell",textContent:c(n?.name)},null,8,K1),s("div",{role:"cell",textContent:c(e.fmt?.humanTime(n?.createdAt))},null,8,Y1),s("div",J1,[n?.lastUsedAt?(l(),d("span",Q1,c(e.fmt?.humanTime(n?.lastUsedAt)),1)):m("v-if",!0),n?.lastUsedAt?m("v-if",!0):(l(),d("span",X1,"never"))]),s("div",x1,[s("button",{class:"btn btn-sm text-danger",title:"Revoke",onClick:a=>e.revokeToken(n)},[...t[43]||(t[43]=[s("i",{class:"fas fa-trash-alt"},null,-1)])],8,Z1)])]))),256))])):m("v-if",!0),e.tokens?.length?m("v-if",!0):(l(),d("div",ew,[...t[45]||(t[45]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No tokens yet.",-1)])]))])):m("v-if",!0),s("div",tw,[t[47]||(t[47]=s("h2",null,[s("i",{class:"fas fa-code-branch"}),y(" Anonymized repositories")],-1)),s("span",sw,c(e.repositories?.length),1)]),s("div",nw,[s("span",ow,c(e.fmt?.number(e.repositories?.length)),1),s("span",{class:O(["summary-pill ok",{active:e.filters?.status?.ready===!1}]),title:"Toggle ready filter",onClick:t[8]||(t[8]=n=>e.filters.status.ready=!e.filters.status.ready)},[t[48]||(t[48]=y("Ready ",-1)),s("span",rw,c(e.fmt?.number(e.statusCountFor("ready"))),1)],2),s("span",{class:O(["summary-pill warn",{active:e.filters?.status?.preparing===!1}]),title:"Toggle preparing filter",onClick:t[9]||(t[9]=n=>e.filters.status.preparing=!e.filters.status.preparing)},[t[49]||(t[49]=y("Preparing ",-1)),s("span",iw,c(e.fmt?.number(e.statusCountFor("preparing"))),1)],2),s("span",{class:O(["summary-pill error",{active:e.filters?.status?.error===!1}]),title:"Toggle errored filter",onClick:t[10]||(t[10]=n=>e.filters.status.error=!e.filters.status.error)},[t[50]||(t[50]=y("Errored ",-1)),s("span",aw,c(e.fmt?.number(e.statusCountFor("error"))),1)],2),s("span",{class:O(["summary-pill",{active:e.filters?.status?.expired===!1}]),title:"Toggle expired filter",onClick:t[11]||(t[11]=n=>e.filters.status.expired=!e.filters.status.expired)},[t[51]||(t[51]=y("Expired ",-1)),s("span",lw,c(e.fmt?.number(e.statusCountFor("expired"))),1)],2),s("span",{class:O(["summary-pill",{active:e.filters?.status?.removed===!1}]),title:"Toggle removed filter",onClick:t[12]||(t[12]=n=>e.filters.status.removed=!e.filters.status.removed)},[t[52]||(t[52]=y("Removed ",-1)),s("span",dw,c(e.fmt?.number(e.statusCountFor("removed"))),1)],2)]),E((l(),d("form",uw,[s("div",cw,[s("div",pw,[E(s("input",fw,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),t[54]||(t[54]=s("span",{class:"admin-filter-spacer"},null,-1)),s("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[13]||(t[13]=n=>e.exportCsv())},[...t[53]||(t[53]=[s("i",{class:"fas fa-file-csv"},null,-1),y(" Export",-1)])])])])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",mw,[s("span",null,[s("strong",null,c(e.selectedCount()),1),t[55]||(t[55]=y(" selected",-1))]),s("button",{class:"btn btn-sm",type:"button",onClick:t[14]||(t[14]=n=>e.bulkRefresh())},[...t[56]||(t[56]=[s("i",{class:"fas fa-sync"},null,-1),y(" Force refresh",-1)])]),s("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[15]||(t[15]=n=>e.bulkRemoveCache())},[...t[57]||(t[57]=[s("i",{class:"fas fa-broom"},null,-1),y(" Remove cache",-1)])]),s("button",{class:"btn btn-sm",type:"button",onClick:t[16]||(t[16]=n=>e.clearSelection())},"Clear")])):m("v-if",!0),s("div",hw,[s("div",vw,[s("div",yw,[s("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[17]||(t[17]=n=>e.selectAllOnPage()),checked:e.allSelected},null,8,gw)]),s("div",bw,[s("span",{class:O(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[18]||(t[18]=n=>e.sortBy("source.repositoryName"))},[t[58]||(t[58]=y("Repository ",-1)),s("i",{class:O(["fas",e.sortIcon("source.repositoryName")])},null,2)],2)]),s("div",ww,[s("span",{class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[19]||(t[19]=n=>e.sortBy("status"))},[t[59]||(t[59]=y("Status ",-1)),s("i",{class:O(["fas",e.sortIcon("status")])},null,2)],2)]),s("div",kw,[s("span",{class:O(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[20]||(t[20]=n=>e.sortBy("pageView"))},[t[60]||(t[60]=y("Views ",-1)),s("i",{class:O(["fas",e.sortIcon("pageView")])},null,2)],2)]),s("div",_w,[s("span",{class:O(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[21]||(t[21]=n=>e.sortBy("anonymizeDate"))},[t[61]||(t[61]=y("Anonymized ",-1)),s("i",{class:O(["fas",e.sortIcon("anonymizeDate")])},null,2)],2)]),t[62]||(t[62]=s("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(Y,null,oe(e.filteredRepositories,(n,i)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":n?.status=="expired"||n?.status=="removed","repo-error":n?.status=="error","row-selected":e.selected[n?.repoId]}]),role:"row"},[s("div",Ew,[E(s("input",Cw,null,512),[[o,{state:e.viewState,set:a=>{e.selected[n.repoId]=a},value:e.selected[n?.repoId],form:null,options:{}}]])]),s("div",Nw,[t[67]||(t[67]=s("span",{class:"type-badge type-repo"},"Repo",-1)),s("div",Sw,[s("a",{class:"repo-name",target:"_blank",textContent:c(n?.repoId),href:e.safeUrl("/r/"+n?.repoId)},null,8,Dw),s("div",Rw,[s("a",{textContent:c(n?.source?.fullName),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/")},null,8,Tw),n?.options?.update?(l(),d("span",Ow,[t[63]||(t[63]=y("\xA0\xB7\xA0",-1)),s("a",{textContent:c(n?.source?.branch),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.branch)},null,8,Aw)])):m("v-if",!0),n?.options?.update?m("v-if",!0):(l(),d("span",Iw,[t[64]||(t[64]=y("\xA0\xB7\xA0@",-1)),s("a",{textContent:c(n?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.commit)},null,8,Vw)])),n?.conference?(l(),d("span",Pw,[t[65]||(t[65]=y("\xA0\xB7\xA0",-1)),t[66]||(t[66]=s("i",{class:"fas fa-chalkboard-teacher"},null,-1)),y(" "+c(n?.conference),1)])):m("v-if",!0),s("span",null,"\xA0\xB7\xA0"+c(e.fmt?.humanFileSize(n?.size?.storage)),1),s("span",null,"\xA0\xB7\xA0"+c(e.fmt?.number(n?.options?.terms?.length))+" terms",1)])])]),s("div",qw,[s("span",Mw,[s("span",{class:O(["status-dot",{"status-removed":n?.status=="removed"||n?.status=="expired","status-ready":n?.status=="ready","status-error":n?.status=="error","status-preparing":n?.status=="preparing"}])},null,2),s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,$w)]),n?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(n?.statusMessage)),title:n?.statusMessage},null,8,Lw)):m("v-if",!0)]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.pageView||0))},null,8,Fw),s("div",{class:"cell-expires",role:"cell",textContent:c(e.fmt?.humanTime(n?.anonymizeDate))},null,8,Uw),s("div",zw,[s("div",Hw,[t[79]||(t[79]=s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"})],-1)),s("div",Bw,[s("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+n?.repoId)},[...t[68]||(t[68]=[s("i",{class:"far fa-edit"},null,-1),y(" Edit",-1)])],8,Gw),s("a",{class:"dropdown-item",href:e.safeUrl("/r/"+n?.repoId+"/")},[...t[69]||(t[69]=[s("i",{class:"fa fa-eye"},null,-1),y(" View repo",-1)])],8,jw),n?.options?.page&&n?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+n?.repoId+"/")},[...t[70]||(t[70]=[s("i",{class:"fas fa-globe"},null,-1),y(" View page",-1)])],8,Ww)):m("v-if",!0),s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.fetchGithubInfo(n),["prevent"])},[...t[71]||(t[71]=[s("i",{class:"fab fa-github"},null,-1),y(" Live GitHub info",-1)])],8,Kw),t[77]||(t[77]=s("div",{class:"dropdown-divider"},null,-1)),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updateRepository(n),["prevent"])},[...t[72]||(t[72]=[s("i",{class:"fas fa-sync"},null,-1),y(" Force update",-1)])],8,Yw),[[G,n?.status=="ready"||n?.status=="error"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updateRepository(n),["prevent"])},[...t[73]||(t[73]=[s("i",{class:"fas fa-check-circle"},null,-1),y(" Enable",-1)])],8,Jw),[[G,n?.status=="removed"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.showStatusMessage(n),["prevent"])},[...t[74]||(t[74]=[s("i",{class:"fas fa-exclamation-triangle"},null,-1),y(" View status message",-1)])],8,Qw),[[G,n?.statusMessage]]),t[78]||(t[78]=s("div",{class:"dropdown-divider"},null,-1)),s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.removeCache(n),["prevent"])},[...t[75]||(t[75]=[s("i",{class:"fas fa-broom"},null,-1),y(" Remove cache",-1)])],8,Xw),E(s("a",{class:"dropdown-item text-danger",href:"#",onClick:ke(a=>e.removeRepository(n),["prevent"])},[...t[76]||(t[76]=[s("i",{class:"fas fa-trash-alt"},null,-1),y(" Remove",-1)])],8,xw),[[G,n?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",Zw,[...t[80]||(t[80]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No repositories match the current filters.",-1)])])):m("v-if",!0)])])}var ek={class:"container paper-page admin-page"},tk={class:"admin-summary"},sk={class:"summary-total"},nk={class:"count"},ok={class:"count"},rk={class:"count"},ik={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},ak={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},lk={class:"admin-filter-row"},dk={class:"search-wrap"},uk={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},ck={key:0,class:"admin-search-hint"},pk={class:"admin-filter-inline"},fk={class:"form-control form-control-sm"},mk={class:"admin-filter-inline","aria-label":"Pagination"},hk=["disabled"],vk={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},yk=["disabled"],gk={key:0,class:"admin-filter-row"},bk={class:"admin-active-chips"},wk={class:"key"},kk=["onClick"],_k={key:1,class:"bulk-bar"},Ek={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},Ck={class:"paper-table-head admin-users-row",role:"row"},Nk={role:"columnheader",style:{width:"28px"}},Sk=["checked"],Dk={role:"columnheader"},Rk={role:"columnheader"},Tk={role:"cell",style:{width:"28px"}},Ok={type:"checkbox","aria-label":"Select user"},Ak={class:"cell-anon",role:"cell"},Ik=["src"],Vk={class:"anon-text"},Pk=["textContent","href"],qk={class:"anon-sub"},Mk={key:0},$k={key:1},Lk=["href"],Fk={key:2},Uk={class:"cell-views num",role:"cell"},zk=["textContent","href"],Hk={class:"cell-status",role:"cell"},Bk=["textContent"],Gk={class:"cell-status",role:"cell"},jk={key:0,class:"type-badge type-repo"},Wk={key:1,class:"empty-dash"},Kk={class:"cell-actions",role:"cell"},Yk={class:"dropdown"},Jk={class:"dropdown-menu dropdown-menu-right"},Qk=["href"],Xk=["href"],xk=["onClick"],Zk=["onClick"],e_={key:0,class:"paper-table-empty"},t_={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},s_={style:{"font-size":"12px",color:"var(--ink-muted)"}},n_={key:0,class:"pagination-compact"},o_=["disabled"],r_=["max"],i_=["disabled"],a_={class:"admin-filter-inline"},l_={class:"form-control form-control-sm"};function el(e,t){let o=we("field"),r=we("form");return l(),d("div",ek,[t[43]||(t[43]=ge('
Admin \xA0/\xA0 Users

Users

',3)),s("div",tk,[s("span",sk,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),s("span",{class:O(["summary-pill ok",{active:e.query?.status=="active"}]),onClick:t[0]||(t[0]=n=>{e.query.status=e.query.status=="active"?"":"active",e.query.page=1})},[t[13]||(t[13]=y("Active ",-1)),s("span",nk,c(e.fmt?.number(e.statusCountFor("active"))),1)],2),s("span",{class:O(["summary-pill error",{active:e.query?.status=="banned"}]),onClick:t[1]||(t[1]=n=>{e.query.status=e.query.status=="banned"?"":"banned",e.query.page=1})},[t[14]||(t[14]=y("Banned ",-1)),s("span",ok,c(e.fmt?.number(e.statusCountFor("banned"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.status=="removed"}]),onClick:t[2]||(t[2]=n=>{e.query.status=e.query.status=="removed"?"":"removed",e.query.page=1})},[t[15]||(t[15]=y("Removed ",-1)),s("span",rk,c(e.fmt?.number(e.statusCountFor("removed"))),1)],2)]),e.fetchError?(l(),d("div",ik,[t[16]||(t[16]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),y(" "+c(e.fetchError),1)])):m("v-if",!0),E((l(),d("form",ak,[s("div",lk,[s("div",dk,[E(s("input",uk,null,512),[[o,{state:e.viewState,set:n=>{e.query.search=n},value:e.query?.search,form:null,options:{}}]]),e.query?.search?m("v-if",!0):(l(),d("span",ck,"/"))]),s("span",pk,[t[18]||(t[18]=s("label",null,"Role",-1)),E((l(),d("select",fk,[...t[17]||(t[17]=[s("option",{value:""},"Any",-1),s("option",{value:"admin"},"Admin",-1)])])),[[o,{state:e.viewState,set:n=>{e.query.role=n},value:e.query?.role,form:null,options:{}}]])]),t[22]||(t[22]=s("span",{class:"admin-filter-spacer"},null,-1)),s("button",{class:"btn btn-sm",type:"button",onClick:t[3]||(t[3]=n=>e.exportCsv())},[...t[19]||(t[19]=[s("i",{class:"fas fa-file-csv"},null,-1),y(" Export",-1)])]),s("span",mk,[s("button",{class:"btn btn-sm",type:"button",onClick:t[4]||(t[4]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[20]||(t[20]=[s("i",{class:"fas fa-chevron-left"},null,-1)])],8,hk),s("span",vk,c(e.query?.page)+"/"+c(e.totalPage||1),1),s("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[21]||(t[21]=[s("i",{class:"fas fa-chevron-right"},null,-1)])],8,yk)])]),e.chips?.length?(l(),d("div",gk,[s("div",bk,[(l(!0),d(Y,null,oe(e.chips,(n,i)=>(l(),d("span",{class:"admin-active-chip",key:n?.key},[s("span",wk,c(n?.label),1),s("span",null,c(n?.value),1),s("button",{type:"button",onClick:a=>e.clearFilter(n.key)},[...t[23]||(t[23]=[s("i",{class:"fas fa-times"},null,-1)])],8,kk)]))),128))])])):m("v-if",!0)])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",_k,[s("span",null,[s("strong",null,c(e.selectedCount()),1),t[24]||(t[24]=y(" selected",-1))]),s("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[6]||(t[6]=n=>e.bulkBan())},[...t[25]||(t[25]=[s("i",{class:"fas fa-ban"},null,-1),y(" Ban",-1)])]),s("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=n=>{e.selected={},e.allSelected=!1})},"Clear")])):m("v-if",!0),s("div",Ek,[s("div",Ck,[s("div",Nk,[s("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[8]||(t[8]=n=>e.selectAllOnPage()),checked:e.allSelected},null,8,Sk)]),s("div",Dk,[s("span",{class:O(["sortable",{active:e.query?.sort=="username"}]),onClick:t[9]||(t[9]=n=>e.sortBy("username"))},[t[26]||(t[26]=y("User ",-1)),s("i",{class:O(["fas",e.sortIcon("username")])},null,2)],2)]),t[28]||(t[28]=s("div",{role:"columnheader",class:"num"},"Repos",-1)),s("div",Rk,[s("span",{class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[10]||(t[10]=n=>e.sortBy("status"))},[t[27]||(t[27]=y("Status ",-1)),s("i",{class:O(["fas",e.sortIcon("status")])},null,2)],2)]),t[29]||(t[29]=s("div",{role:"columnheader"},"Role",-1)),t[30]||(t[30]=s("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(Y,null,oe(e.filteredUsers,(n,i)=>(l(),d("div",{class:O(["paper-table-row admin-users-row",{"row-selected":e.selected[n?.username]}]),role:"row"},[s("div",Tk,[E(s("input",Ok,null,512),[[o,{state:e.viewState,set:a=>{e.selected[n.username]=a},value:e.selected[n?.username],form:null,options:{}}]])]),s("div",Ak,[n?.photo?(l(),d("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(n?.photo)},null,8,Ik)):m("v-if",!0),s("div",Vk,[s("a",{class:"repo-name",textContent:c(n?.username),href:e.safeUrl("/admin/users/"+n?.username)},null,8,Pk),s("div",qk,[n?.emails[0].email?(l(),d("span",Mk,c(n?.emails[0].email),1)):m("v-if",!0),n?.emails[0].email?(l(),d("span",$k,"\xA0\xB7\xA0")):m("v-if",!0),s("a",{target:"_blank",href:e.safeUrl("https://github.com/"+n?.username)},[t[31]||(t[31]=s("i",{class:"fab fa-github"},null,-1)),y(" "+c(n?.username),1)],8,Lk),n?.dateOfEntry?(l(),d("span",Fk,"\xA0\xB7\xA0Joined "+c(e.fmt?.humanTime(n?.dateOfEntry)),1)):m("v-if",!0)])])]),s("div",Uk,[s("a",{title:"Show this user's repositories",textContent:c(e.fmt?.number(n?.repoCount||0)),href:e.safeUrl("/admin/?owner="+n?.username)},null,8,zk)]),s("div",Hk,[s("span",{class:O(["status-dot",{"status-ready":n?.status=="active","status-removed":n?.status=="removed"||n?.status=="banned"}])},null,2),s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,Bk)]),s("div",Gk,[n?.isAdmin?(l(),d("span",jk,"Admin")):m("v-if",!0),n?.isAdmin?m("v-if",!0):(l(),d("span",Wk,"\u2014"))]),s("div",Kk,[s("div",Yk,[t[37]||(t[37]=s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"})],-1)),s("div",Jk,[s("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+n?.username)},[...t[32]||(t[32]=[s("i",{class:"far fa-eye"},null,-1),y(" View details",-1)])],8,Qk),s("a",{class:"dropdown-item",href:e.safeUrl("/admin/?owner="+n?.username)},[...t[33]||(t[33]=[s("i",{class:"fas fa-code-branch"},null,-1),y(" View repositories",-1)])],8,Xk),t[36]||(t[36]=s("div",{class:"dropdown-divider"},null,-1)),E(s("a",{class:"dropdown-item text-danger",href:"#",onClick:ke(a=>e.banUser(n),["prevent"])},[...t[34]||(t[34]=[s("i",{class:"fas fa-ban"},null,-1),y(" Ban",-1)])],8,xk),[[G,n?.status=="active"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.activateUser(n),["prevent"])},[...t[35]||(t[35]=[s("i",{class:"fas fa-check-circle"},null,-1),y(" Activate",-1)])],8,Zk),[[G,n?.status=="removed"||n?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(l(),d("div",e_,[...t[38]||(t[38]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No users match the current filters.",-1)])])):m("v-if",!0)]),s("div",t_,[s("span",s_,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",n_,[s("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[39]||(t[39]=[s("i",{class:"fas fa-chevron-left"},null,-1),y(" Previous",-1)])],8,o_),E(s("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,r_),[[o,{state:e.viewState,set:n=>{e.query.page=n},value:e.query?.page,form:null,options:{}}]]),s("span",null,"of "+c(e.totalPage),1),s("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[40]||(t[40]=[y("Next ",-1),s("i",{class:"fas fa-chevron-right"},null,-1)])],8,i_)])):m("v-if",!0),s("span",a_,[t[42]||(t[42]=s("label",null,"Per page",-1)),E((l(),d("select",l_,[...t[41]||(t[41]=[s("option",{value:"10"},"10",-1),s("option",{value:"25"},"25",-1),s("option",{value:"50"},"50",-1),s("option",{value:"100"},"100",-1)])])),[[o,{state:e.viewState,set:n=>{e.query.limit=n},value:e.query?.limit,form:null,options:{}}]])])])])}var d_={class:"anonymize-page h-100"},u_={key:0,class:"repo-access","aria-label":"GitHub access"},c_={class:"repo-access-main"},p_={class:"repo-access-heading"},f_={class:"repo-access-controls"},m_={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},h_=["aria-pressed","disabled"],v_=["aria-pressed","disabled"],y_={key:1,class:"connection-badge"},g_={key:3,class:"connection-link",href:"/connections"},b_={class:"repo-access-note"},w_={key:0},k_={class:"anonymize-landing"},__={class:"anonymize-landing-inner"},E_={class:"form-group mt-4 mb-2"},C_={id:"sourceUrl-landing",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},N_={class:"anonymize-workspace"},S_={class:"anonymize-topbar"},D_={class:"anonymize-topbar-inner"},R_={class:"paper-crumbs"},T_={class:"here"},O_={class:"anonymize-topbar-head"},A_={class:"paper-page-title anonymize-topbar-title"},I_={key:0},V_={key:1},P_={class:"anonymize-split"},q_={class:"anonymize-form-col overflow-auto"},M_={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},$_={class:"paper-settings-section"},L_={class:"form-group"},F_=["disabled"],U_={class:"invalid-feedback"},z_={class:"invalid-feedback"},H_={class:"invalid-feedback"},B_={class:"invalid-feedback"},G_={key:0,class:"form-grid-2"},j_={class:"form-group"},W_={class:"input-group"},K_={class:"form-control",id:"branch",name:"branch"},Y_=["textContent","value"],J_={class:"input-group-append"},Q_={class:"form-group"},X_=["disabled"],x_={class:"invalid-feedback"},Z_={class:"invalid-feedback"},e0={class:"form-check"},t0={class:"form-check-input",type:"checkbox",id:"update",name:"update"},s0={class:"paper-settings-section"},n0={class:"form-group"},o0=["disabled"],r0={class:"form-text text-muted"},i0={class:"invalid-feedback"},a0={class:"form-group"},l0=["disabled"],d0={class:"form-text text-muted"},u0={class:"invalid-feedback"},c0={class:"form-group"},p0=["disabled"],f0={class:"form-text text-muted"},m0={class:"invalid-feedback"},h0={class:"form-group"},v0={class:"form-text text-muted"},y0=["href"],g0={class:"invalid-feedback"},b0={class:"form-text text-muted"},w0={class:"paper-settings-section"},k0={class:"form-group"},_0={class:"form-text text-muted"},E0={class:"warning-feedback"},C0={class:"invalid-feedback"},N0={class:"paper-settings-section"},S0={class:"form-check"},D0={class:"form-check-input",type:"checkbox",id:"link",name:"link"},R0={class:"form-check"},T0={class:"form-check-input",type:"checkbox",id:"image",name:"image"},O0={class:"form-check"},A0={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},I0={class:"form-check"},V0={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},P0={class:"form-check"},q0=["disabled"],M0={class:"form-check"},$0={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},L0={class:"form-check"},F0={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},U0={class:"form-check"},z0={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},H0={class:"form-check"},B0={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},G0={class:"form-check"},j0={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},W0={class:"form-check"},K0={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},Y0={class:"form-check"},J0={class:"form-check-input",type:"checkbox",id:"title",name:"title"},Q0={class:"form-check"},X0={class:"form-check-input",type:"checkbox",id:"body",name:"body"},x0={class:"form-check"},Z0={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},eE={class:"form-check"},tE={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},sE={class:"form-check"},nE={class:"form-check-input",type:"checkbox",id:"username",name:"username"},oE={class:"form-check"},rE={class:"form-check-input",type:"checkbox",id:"date",name:"date"},iE={class:"form-check"},aE={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},lE={class:"paper-settings-section"},dE={class:"form-grid-2"},uE={class:"form-group"},cE={class:"form-control",id:"expiration",name:"expiration"},pE={class:"form-group"},fE=["min","max"],mE={class:"invalid-feedback"},hE={class:"invalid-feedback"},vE={class:"paper-settings-section"},yE={class:"form-group"},gE={style:{position:"relative"}},bE={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},wE={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},kE=["onClick"],_E=["src"],EE=["textContent"],CE=["textContent"],NE={class:"coauthor-list"},SE={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},DE=["src"],RE=["textContent","href"],TE=["onClick"],OE={class:"form-text text-muted"},AE=["textContent"],IE={class:"anonymize-submit-bar"},VE={key:0,class:"anonymize-preview-col"},PE=["innerHTML"],qE={key:1,class:"anonymize-preview-col"},ME={class:"anonymize-preview-body"},$E={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},LE={class:"pr-title mb-1"},FE={key:0},UE=["textContent"],zE={key:0},HE={key:1},BE={key:2},GE={class:"pr-comments mt-3"},jE={class:"pr-comment"},WE={class:"pr-comment-head"},KE=["textContent"],YE={key:0,class:"pr-comment-date"},JE={key:3},QE={class:"pr-comments"},XE={class:"pr-comment"},xE={class:"pr-comment-head"},ZE={key:0,class:"pr-comment-author"},eC=["textContent"],tC=["textContent"],sC={key:0,class:"pr-comment-body"},nC={key:2,class:"anonymize-preview-col"},oC={class:"anonymize-preview-body"},rC={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},iC={class:"pr-title mb-1"},aC={key:0},lC=["textContent"],dC={key:0},uC={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--paper-bg-alt)"}},cC={key:2,class:"paper-tabs",role:"tablist"},pC=["textContent"],fC={class:"paper-tab-content"},mC={key:0},hC=["innerHTML"],vC={key:1},yC={class:"pr-comments"},gC={class:"pr-comment"},bC={class:"pr-comment-head"},wC={key:0,class:"pr-comment-author"},kC=["textContent"],_C=["textContent"],EC={key:0,class:"pr-comment-body"};function tl(e,t){let o=et("gist-file"),r=et("markdown"),n=we("field"),i=we("form");return l(),d("div",d_,[e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",u_,[s("div",c_,[s("div",p_,[t[12]||(t[12]=s("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),s("div",null,[s("h2",null,c(e.detectedType==="gist"?"Gist access":"Repository access"),1),s("p",null,c(e.detectedType==="gist"?"Gists use your OAuth connection.":"Choose how we read your source code."),1)])]),s("div",f_,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",m_,[s("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=a=>e.chooseGitHubConnection("github-app"))},[...t[13]||(t[13]=[s("i",{class:"fas fa-shield-alt","aria-hidden":"true"},null,-1),y(" Read-only GitHub App",-1)])],8,h_),s("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,v_)])):m("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",y_,c(e.detectedType!=="gist"&&e.githubConnection==="github-app"?"Read-only GitHub App":"Legacy OAuth"),1)):m("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:2,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=a=>e.grantGitHubAccess())},[...t[14]||(t[14]=[y("Manage access ",-1),s("i",{class:"fas fa-external-link-alt","aria-hidden":"true"},null,-1)])])):m("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",g_,c(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):m("v-if",!0)])]),s("div",b_,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",w_,"Select repositories on GitHub, then return here.")):m("v-if",!0),t[15]||(t[15]=s("span",null,[s("i",{class:"fas fa-info-circle","aria-hidden":"true"}),y(" Selected content will be published, including content from private repositories.")],-1))])])):m("v-if",!0),m(" ===== STATE 1: No URL \u2014 centered input ===== "),E(s("div",k_,[s("div",__,[t[17]||(t[17]=s("div",{class:"paper-crumbs"},[y("My work \xA0/\xA0 "),s("span",{class:"here"},"New anonymization")],-1)),t[18]||(t[18]=s("h1",{class:"paper-page-title"},[y("New "),s("em",null,"anonymization")],-1)),t[19]||(t[19]=s("p",{class:"paper-page-lede"}," Paste a GitHub repository, pull-request, or gist URL. We\u2019ll fetch it, strip every trace of identity, and hand you back a stable link. ",-1)),s("div",E_,[t[16]||(t[16]=s("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),E(s("input",C_,null,512),[[n,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]])]),t[20]||(t[20]=s("small",{class:"form-text",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1))])],512),[[G,!e.sourceUrl]]),m(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),E(s("div",N_,[s("header",S_,[s("div",D_,[s("div",R_,[t[21]||(t[21]=s("a",{href:"/dashboard"},"My work",-1)),t[22]||(t[22]=y(" \xA0/\xA0 ",-1)),s("span",T_,c(e.isUpdate?"Edit anonymization":"New anonymization"),1)]),s("div",O_,[s("h1",A_,[e.isUpdate?m("v-if",!0):(l(),d("span",I_,[...t[23]||(t[23]=[y("New ",-1),s("em",null,"anonymization",-1)])])),e.isUpdate?(l(),d("span",V_,[...t[24]||(t[24]=[y("Edit ",-1),s("em",null,"anonymization",-1)])])):m("v-if",!0)]),E(s("span",{class:O(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},c(e.detectedType==="repo"?"Repo":e.detectedType==="pr"?"PR":"Gist"),3),[[G,e.detectedType]])])])]),s("div",P_,[m(" Form column (left) "),s("div",q_,[E((l(),d("form",M_,[s("section",$_,[t[31]||(t[31]=s("div",{class:"paper-section-eyebrow"},"Source",-1)),s("div",L_,[t[25]||(t[25]=s("label",{class:"paper-field-label",for:"sourceUrl"},"GitHub URL",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,F_),[[n,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),E(s("div",U_," Please provide a valid GitHub URL. ",512),[[G,e.anonymize?.sourceUrl?.errors?.github]]),E(s("div",z_," Not accessible. The organization may restrict access. ",512),[[G,e.anonymize?.sourceUrl?.errors?.access]]),E(s("div",H_," Does not exist or is not accessible. ",512),[[G,e.anonymize?.sourceUrl?.errors?.missing]]),E(s("div",B_," Already anonymized. ",512),[[G,e.anonymize?.sourceUrl?.errors?.used]])]),e.detectedType==="repo"?(l(),d("div",G_,[s("div",j_,[t[27]||(t[27]=s("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),s("div",W_,[E((l(),d("select",K_,[(l(!0),d(Y,null,oe(e.branches,(a,u)=>(l(),d("option",{textContent:c(a?.name),value:a?.name},null,8,Y_))),256))])),[[n,{state:e.viewState,set:a=>{e.source.branch=a},value:e.source?.branch,form:"anonymize",options:{}}]]),s("div",J_,[s("button",{class:"btn",type:"button",title:"Refresh","data-toggle":"tooltip","data-placement":"bottom",onClick:t[3]||(t[3]=a=>e.getBranches(!0))},[...t[26]||(t[26]=[s("i",{class:"fas fa-sync","aria-hidden":"true"},null,-1)])])])])]),s("div",Q_,[t[28]||(t[28]=s("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),E(s("input",{class:O(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,X_),[[n,{state:e.viewState,set:a=>{e.source.commit=a},value:e.source?.commit,form:"anonymize",options:{}}]]),E(s("div",x_," The commit SHA is not valid. ",512),[[G,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),E(s("div",Z_," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[G,e.anonymize?.commit?.errors?.exists]])])])):m("v-if",!0),E(s("div",e0,[E(s("input",t0,null,512),[[n,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"anonymize",options:{}}]]),t[29]||(t[29]=s("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[30]||(t[30]=s("small",{class:"form-text text-muted"},"Follow the branch and pull the latest commit automatically, at most once an hour.",-1))],512),[[G,e.detectedType]])]),E(s("section",s0,[t[42]||(t[42]=s("div",{class:"paper-section-eyebrow"},"Identity",-1)),E(s("div",n0,[t[34]||(t[34]=s("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,o0),[[n,{state:e.viewState,set:a=>{e.repoId=a},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),s("small",r0,[t[32]||(t[32]=y("Your share link will be ",-1)),s("code",null,"anonymous.4open.science/r/"+c(e.repoId),1),t[33]||(t[33]=y(".",-1))]),E(s("div",i0,"ID can only contain letters and numbers.",512),[[G,e.anonymize?.repoId?.errors?.format]]),E(s("div",{class:"invalid-feedback"},c(e.repoId)+" is already used.",513),[[G,e.anonymize?.repoId?.errors?.used]])],512),[[G,e.detectedType==="repo"]]),E(s("div",a0,[t[37]||(t[37]=s("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,l0),[[n,{state:e.viewState,set:a=>{e.pullRequestId=a},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),s("small",d0,[t[35]||(t[35]=y("Your share link will be ",-1)),s("code",null,"anonymous.4open.science/pr/"+c(e.pullRequestId),1),t[36]||(t[36]=y(".",-1))]),E(s("div",u0,"ID can only contain letters and numbers.",512),[[G,e.anonymize?.pullRequestId?.errors?.format]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used.",513),[[G,e.anonymize?.pullRequestId?.errors?.used]])],512),[[G,e.detectedType==="pr"]]),E(s("div",c0,[t[40]||(t[40]=s("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,p0),[[n,{state:e.viewState,set:a=>{e.gistId=a},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),s("small",f0,[t[38]||(t[38]=y("Your share link will be ",-1)),s("code",null,"anonymous.4open.science/gist/"+c(e.gistId),1),t[39]||(t[39]=y(".",-1))]),E(s("div",m0,"ID can only contain letters and numbers.",512),[[G,e.anonymize?.gistId?.errors?.format]]),E(s("div",{class:"invalid-feedback"},c(e.gistId)+" is already used.",513),[[G,e.anonymize?.gistId?.errors?.used]])],512),[[G,e.detectedType==="gist"]]),s("div",h0,[t[41]||(t[41]=s("label",{class:"paper-field-label",for:"conference"},[y("Conference "),s("span",{class:"paper-optional"},"(optional)")],-1)),E(s("input",{class:O(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[n,{state:e.viewState,set:a=>{e.conference=a},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),E(s("small",v0,[s("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,y0),y(" expires "+c(e.fmt?.date(e.conference_data?.endDate))+". ",1)],512),[[G,e.conference_data]]),E(s("div",g0,"The conference is not activated.",512),[[G,e.anonymize?.conference?.errors?.activated]]),E(s("small",b0,"Link to a conference to apply its shared defaults.",512),[[G,!e.conference_data]])])],512),[[G,e.detectedType]]),E(s("section",w0,[t[50]||(t[50]=s("div",{class:"paper-section-eyebrow"},"Anonymization",-1)),s("div",k0,[t[49]||(t[49]=s("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),E(s("textarea",{class:O(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"4"},null,2),[[n,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"anonymize",options:{debounce:250}}]]),s("small",_0,[t[43]||(t[43]=y("One term per line (regex allowed). Replaced by ",-1)),s("code",null,c(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[44]||(t[44]=y(", or use ",-1)),t[45]||(t[45]=s("code",null,"term=>replacement",-1)),t[46]||(t[46]=y(" to pick your own (e.g. ",-1)),t[47]||(t[47]=s("code",null,"Anonymous=>ABC",-1)),t[48]||(t[48]=y(").",-1))]),E(s("div",E0,"Regex characters detected. Escape them if unintentional.",512),[[G,e.termsRegexWarning]]),E(s("div",C0,"Terms are in an invalid format.",512),[[G,e.anonymize?.terms?.errors?.format]])])],512),[[G,e.detectedType]]),E(s("section",N0,[t[69]||(t[69]=s("div",{class:"paper-section-eyebrow"},"Display",-1)),E(s("div",null,[s("div",S0,[E(s("input",D0,null,512),[[n,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"anonymize",options:{}}]]),t[51]||(t[51]=s("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),s("div",R0,[E(s("input",T0,null,512),[[n,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"anonymize",options:{}}]]),t[52]||(t[52]=s("label",{class:"form-check-label",for:"image"},"Display images",-1))]),s("div",O0,[E(s("input",A0,null,512),[[n,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[53]||(t[53]=s("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1))]),s("div",I0,[E(s("input",V0,null,512),[[n,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[54]||(t[54]=s("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))]),s("div",P0,[E(s("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,q0),[[n,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"anonymize",options:{}}]]),t[55]||(t[55]=s("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),E(s("small",{class:"form-text text-muted d-block"},c(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),513),[[G,!e.details?.hasPage]]),E(s("small",{class:"form-text text-muted d-block"},c(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),513),[[G,e.details?.hasPage&&e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch]])])],512),[[G,e.detectedType==="repo"]]),E(s("div",null,[s("div",M0,[E(s("input",$0,null,512),[[n,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[56]||(t[56]=s("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),s("div",L0,[E(s("input",F0,null,512),[[n,{state:e.viewState,set:a=>{e.options.content=a},value:e.options?.content,form:"anonymize",options:{}}]]),t[57]||(t[57]=s("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),s("div",U0,[E(s("input",z0,null,512),[[n,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[58]||(t[58]=s("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),s("div",H0,[E(s("input",B0,null,512),[[n,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[59]||(t[59]=s("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),s("div",G0,[E(s("input",j0,null,512),[[n,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[60]||(t[60]=s("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),s("div",W0,[E(s("input",K0,null,512),[[n,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[61]||(t[61]=s("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[G,e.detectedType==="gist"]]),E(s("div",null,[s("div",Y0,[E(s("input",J0,null,512),[[n,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[62]||(t[62]=s("label",{class:"form-check-label",for:"title"},"PR title",-1))]),s("div",Q0,[E(s("input",X0,null,512),[[n,{state:e.viewState,set:a=>{e.options.body=a},value:e.options?.body,form:"anonymize",options:{}}]]),t[63]||(t[63]=s("label",{class:"form-check-label",for:"body"},"PR body",-1))]),s("div",x0,[E(s("input",Z0,null,512),[[n,{state:e.viewState,set:a=>{e.options.diff=a},value:e.options?.diff,form:"anonymize",options:{}}]]),t[64]||(t[64]=s("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),s("div",eE,[E(s("input",tE,null,512),[[n,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[65]||(t[65]=s("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),s("div",sE,[E(s("input",nE,null,512),[[n,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[66]||(t[66]=s("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),s("div",oE,[E(s("input",rE,null,512),[[n,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[67]||(t[67]=s("label",{class:"form-check-label",for:"date"},"Dates",-1))]),s("div",iE,[E(s("input",aE,null,512),[[n,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[68]||(t[68]=s("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[G,e.detectedType==="pr"]])],512),[[G,e.detectedType]]),E(s("section",lE,[t[73]||(t[73]=s("div",{class:"paper-section-eyebrow"},"Expiration",-1)),s("div",dE,[s("div",uE,[t[71]||(t[71]=s("label",{class:"paper-field-label",for:"expiration"},"Strategy",-1)),E((l(),d("select",cE,[...t[70]||(t[70]=[s("option",{value:"redirect"},"Redirect to GitHub when expired",-1),s("option",{value:"remove",selected:""},"Remove when expired",-1)])])),[[n,{state:e.viewState,set:a=>{e.options.expirationMode=a},value:e.options?.expirationMode,form:"anonymize",options:{}}]])]),s("div",pE,[t[72]||(t[72]=s("label",{class:"paper-field-label",for:"expirationDate"},"Expiration date",-1)),E(s("input",{class:O(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,fE),[[n,{state:e.viewState,set:a=>{e.options.expirationDate=a},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),E(s("div",mE,"Pick a date in the future.",512),[[G,e.anonymize?.expirationDate?.errors?.min]]),E(s("div",{class:"invalid-feedback"},"Pick a date on or before "+c(e.fmt?.date(e.maxExpirationDate))+".",513),[[G,e.anonymize?.expirationDate?.errors?.max]]),E(s("div",hE,"Enter a valid expiration date.",512),[[G,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])]),E(s("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the content will be removed.",513),[[G,e.options?.expirationMode=="remove"&&e.options?.expirationDate]]),E(s("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", visitors will be redirected to GitHub.",513),[[G,e.options?.expirationMode=="redirect"&&e.options?.expirationDate]])],512),[[G,e.detectedType]]),E(s("section",vE,[t[77]||(t[77]=s("div",{class:"paper-section-eyebrow"},"Co-authors",-1)),t[78]||(t[78]=s("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),E(s("div",yE,[t[74]||(t[74]=s("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),s("div",gE,[E(s("input",bE,null,512),[[n,{state:e.viewState,set:a=>{e.coauthorSearch=a},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),E(s("div",wE,[(l(!0),d(Y,null,oe(e.coauthorResults,(a,u)=>(l(),d("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:ke(p=>e.addCoauthor(a,p),["prevent"])},[s("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(a?.photo)},null,8,_E),s("span",{textContent:c(a?.username)},null,8,EE)],8,kE))),256))],512),[[G,e.coauthorResults?.length>0]])]),E(s("small",{class:"form-text text-muted",textContent:c(e.coauthorError)},null,8,CE),[[G,e.coauthorError]])],512),[[G,e.role==="owner"||e.role==="admin"]]),s("div",NE,[(l(!0),d(Y,null,oe(e.coauthors,(a,u)=>(l(),d("div",SE,[a?.photo?(l(),d("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(a?.photo)},null,8,DE)):m("v-if",!0),s("a",{target:"_blank",textContent:c(a?.username),href:e.safeUrl("https://github.com/"+a?.username)},null,8,RE),t[76]||(t[76]=s("span",{class:"type-badge type-coauthor"},"Co-author",-1)),E(s("button",{type:"button",class:"btn btn-sm",style:{"margin-left":"auto"},title:"Remove co-author",onClick:p=>e.removeCoauthor(a)},[...t[75]||(t[75]=[s("i",{class:"fas fa-times"},null,-1)])],8,TE),[[G,e.role==="owner"||e.role==="admin"]])]))),256)),E(s("div",OE," No co-authors yet. ",512),[[G,!e.coauthors||e.coauthors?.length===0]])])],512),[[G,e.isUpdate&&e.detectedType==="repo"]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,AE)):m("v-if",!0),E(s("div",IE,[e.detectedType==="repo"&&!e.isUpdate?(l(),d("button",{key:0,type:"submit",class:"btn btn-ink",onClick:t[4]||(t[4]=ke(a=>e.submitForm(a,()=>{e.anonymizeRepo(a)}),["prevent"]))},[...t[79]||(t[79]=[s("i",{class:"fas fa-user-secret mr-1"},null,-1),y(" Anonymize Repository ",-1)])])):m("v-if",!0),e.detectedType==="repo"&&e.isUpdate?(l(),d("button",{key:1,type:"submit",class:"btn btn-ink",onClick:t[5]||(t[5]=ke(a=>e.submitForm(a,()=>{e.anonymizeRepo(a)}),["prevent"]))},[...t[80]||(t[80]=[s("i",{class:"fas fa-save mr-1"},null,-1),y(" Update Repository ",-1)])])):m("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(l(),d("button",{key:2,type:"submit",class:"btn btn-ink",onClick:t[6]||(t[6]=ke(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[81]||(t[81]=[s("i",{class:"fas fa-user-secret mr-1"},null,-1),y(" Anonymize Pull Request ",-1)])])):m("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(l(),d("button",{key:3,type:"submit",class:"btn btn-ink",onClick:t[7]||(t[7]=ke(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[82]||(t[82]=[s("i",{class:"fas fa-save mr-1"},null,-1),y(" Update Pull Request ",-1)])])):m("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(l(),d("button",{key:4,type:"submit",class:"btn btn-ink",onClick:t[8]||(t[8]=ke(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[83]||(t[83]=[s("i",{class:"fas fa-user-secret mr-1"},null,-1),y(" Anonymize Gist ",-1)])])):m("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(l(),d("button",{key:5,type:"submit",class:"btn btn-ink",onClick:t[9]||(t[9]=ke(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[84]||(t[84]=[s("i",{class:"fas fa-save mr-1"},null,-1),y(" Update Gist ",-1)])])):m("v-if",!0)],512),[[G,e.detectedType]])])),[[i,e.viewState]])]),m(" Preview column (right) "),e.detectedType==="repo"&&e.html_readme?(l(),d("div",VE,[t[85]||(t[85]=s("div",{class:"anonymize-preview-head"},[s("span",{class:"paper-eyebrow"},"Live preview"),s("span",{class:"anonymize-preview-sub"},"README with redactions applied")],-1)),s("div",{class:"anonymize-preview-body markdown-body body",innerHTML:e.sanitize(e.html_readme)},null,8,PE)])):m("v-if",!0),e.detectedType==="gist"&&e.details?(l(),d("div",qE,[t[89]||(t[89]=s("div",{class:"anonymize-preview-head"},[s("span",{class:"paper-eyebrow"},"Live preview"),s("span",{class:"anonymize-preview-sub"},"Gist with redactions applied")],-1)),s("div",ME,[s("div",$E,[s("h2",LE,[e.options?.title?(l(),d("span",FE,c(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):m("v-if",!0),s("span",{class:O(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},c(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,UE)):m("v-if",!0)]),e.options?.origin?(l(),d("small",zE,"Gist ID: "+c(e.details?.source?.gistId),1)):m("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(l(),d("small",HE,"By @"+c(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):m("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(l(),d("div",BE,[s("ul",GE,[(l(!0),d(Y,null,oe(e.previewGistFiles,(a,u)=>(l(),d("li",jE,[s("div",WE,[s("strong",{textContent:c(a?.filename)},null,8,KE),a?.language?(l(),d("span",YE,c(a?.language),1)):m("v-if",!0)]),De(o,{file:a,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):m("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(l(),d("div",JE,[t[88]||(t[88]=s("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),s("ul",QE,[(l(!0),d(Y,null,oe(e.details?.gist?.comments,(a,u)=>(l(),d("li",XE,[s("div",xE,[e.options?.username?(l(),d("span",ZE,[t[86]||(t[86]=s("i",{class:"far fa-user"},null,-1)),t[87]||(t[87]=y(" @",-1)),s("span",{textContent:c(e.anonymizeGistContent(a?.author))},null,8,eC)])):m("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(a?.updatedDate))},null,8,tC)):m("v-if",!0)]),e.options?.body?(l(),d("div",sC,[De(r,{content:e.anonymizeGistContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):m("v-if",!0)]))),256))])])):m("v-if",!0)])])):m("v-if",!0),e.detectedType==="pr"&&e.details?(l(),d("div",nC,[t[94]||(t[94]=s("div",{class:"anonymize-preview-head"},[s("span",{class:"paper-eyebrow"},"Live preview"),s("span",{class:"anonymize-preview-sub"},"Pull request with redactions applied")],-1)),s("div",oC,[s("div",rC,[s("h2",iC,[e.options?.title?(l(),d("span",aC,c(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):m("v-if",!0),s("span",{class:O(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,lC)):m("v-if",!0)]),e.options?.origin?(l(),d("small",dC,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):m("v-if",!0),e.options?.body?(l(),d("div",uC,[De(r,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):m("v-if",!0),e.options?.diff||e.options?.comments?(l(),d("nav",cC,[e.options?.diff?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",onClick:t[10]||(t[10]=a=>e.prTabState.active="diff")},[...t[90]||(t[90]=[s("i",{class:"fas fa-code"},null,-1),y(" Diff ",-1)])],2)):m("v-if",!0),e.options?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",onClick:t[11]||(t[11]=a=>e.prTabState.active="comments")},[t[91]||(t[91]=s("i",{class:"far fa-comment-dots"},null,-1)),s("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,pC)],2)):m("v-if",!0)])):m("v-if",!0),s("div",fC,[e.options?.diff&&e.prTabState?.active=="diff"?(l(),d("div",mC,[s("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,hC)])):m("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(l(),d("div",vC,[s("ul",yC,[(l(!0),d(Y,null,oe(e.details?.pullRequest?.comments,(a,u)=>(l(),d("li",gC,[s("div",bC,[e.options?.username?(l(),d("span",wC,[t[92]||(t[92]=s("i",{class:"far fa-user"},null,-1)),t[93]||(t[93]=y(" @",-1)),s("span",{textContent:c(e.anonymizePrContent(a?.author))},null,8,kC)])):m("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(a?.updatedDate))},null,8,_C)):m("v-if",!0)]),e.options?.body?(l(),d("div",EC,[De(r,{content:e.anonymizePrContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):m("v-if",!0)]))),256))])])):m("v-if",!0)])])])):m("v-if",!0)])],512),[[G,e.sourceUrl]])])}var CC={class:"container-fluid h-100 anonymize-page"},NC={class:"row h-100 flex-column flex-md-row"},SC={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},DC={class:"form-group"},RC={class:"form-group"},TC={class:"form-check"},OC={class:"form-check-input",type:"checkbox",id:"update",name:"update"},AC={class:"form-group"},IC={class:"form-text text-muted"},VC=["href"],PC={class:"invalid-feedback"},qC={class:"form-text text-muted"},MC={class:"form-group"},$C={id:"idHelp",class:"form-text text-muted"},LC={class:"invalid-feedback"},FC={class:"form-group"},UC={class:"invalid-feedback"},zC={class:"form-group"},HC={class:"form-control",id:"expiration",name:"expiration"},BC={class:"form-group",id:"expiration-date-form"},GC={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},jC={class:"accordion mb-3",id:"options"},WC={class:"card"},KC={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},YC={class:"card-body"},JC={class:"form-group mb-0"},QC={class:"form-check"},XC={class:"form-check-input",type:"checkbox",id:"link",name:"link"},xC={class:"form-check"},ZC={class:"form-check-input",type:"checkbox",id:"image",name:"image"},eN={class:"form-check"},tN={class:"form-check-input",type:"checkbox",id:"date",name:"date"},sN={class:"form-check"},nN={class:"form-check-input",type:"checkbox",id:"username",name:"username"},oN={class:"form-check"},rN={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},iN={class:"form-check"},aN={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},lN={class:"form-check"},dN={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},uN={class:"form-check"},cN={class:"form-check-input",type:"checkbox",id:"title",name:"title"},pN={class:"form-check"},fN={class:"form-check-input",type:"checkbox",id:"body",name:"body"},mN=["textContent"],hN={class:"anonymize-submit-bar"},vN={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},yN={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},gN={class:"pr-title mb-1"},bN={key:0},wN=["textContent"],kN={key:0},_N={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},EN={class:"nav nav-tabs",id:"myTab",role:"tablist"},CN={key:0,class:"nav-item",role:"presentation"},NN={key:1,class:"nav-item",role:"presentation"},SN=["textContent"],DN={class:"tab-content",id:"pills-tabContent"},RN={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},TN={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},ON={style:{"overflow-x":"auto"}},AN=["innerHTML"],IN={key:0,class:"pr-comments list-group"},VN={class:"pr-comment list-group-item"},PN={class:"d-flex w-100 justify-content-between flex-wrap"},qN={key:0,class:"mb-1"},MN=["textContent"],$N={class:"mb-1"};function sl(e,t){let o=et("markdown"),r=we("field"),n=we("form");return l(),d("div",CC,[s("div",NC,[s("div",SC,[s("div",{class:O(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[E((l(),d("form",{class:O(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=ge('
Anonymize \xA0/\xA0 Pull request

Anonymize a pull request

Fill in the details \u2014 it only takes a minute.

Source
',4)),m(" pullRequestUrl "),s("div",DC,[t[2]||(t[2]=s("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[r,{state:e.viewState,set:i=>{e.pullRequestUrl=i},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[G,e.anonymize?.pullRequestUrl?.errors?.access]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[G,e.anonymize?.pullRequestUrl?.errors?.missing]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is already anonymized ",513),[[G,e.anonymize?.pullRequestUrl?.errors?.used]])]),E(s("div",null,[s("div",RC,[s("div",TC,[E(s("input",OC,null,512),[[r,{state:e.viewState,set:i=>{e.options.update=i},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=s("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=s("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=s("div",{class:"paper-section-eyebrow anonymize-section-title"},[s("i",{class:"fas fa-chalkboard-teacher"}),y(" Conference ID ")],-1)),m(" Conference "),s("div",AC,[t[5]||(t[5]=s("label",{for:"conference"},[y("Conference ID "),s("span",{class:"text-muted"},"(Optional)")],-1)),E(s("input",{class:O(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[r,{state:e.viewState,set:i=>{e.conference=i},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),E(s("small",IC,[s("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,VC),y(" will expire on "+c(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[G,e.conference_data]]),E(s("div",PC," The conference is not activated. ",512),[[G,e.anonymize?.conference?.errors?.activated]]),E(s("small",qC," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[G,!e.conference_data]])]),t[27]||(t[27]=s("div",{class:"paper-section-eyebrow anonymize-section-title"},[s("i",{class:"fas fa-shield-alt"}),y(" Anonymization Options ")],-1)),m(" Pull Request ID "),s("div",MC,[t[6]||(t[6]=s("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[r,{state:e.viewState,set:i=>{e.pullRequestId=i},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),s("small",$C,"Id used in the url: https://anonymous.4open.science/r/"+c(e.pullRequestId),1),E(s("div",LC," Repository id can only contain letters and numbers ",512),[[G,e.anonymize?.pullRequestId?.errors?.format]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used ",513),[[G,e.anonymize?.pullRequestId?.errors?.used]])]),m(" Terms "),s("div",FC,[t[7]||(t[7]=s("label",{for:"terms"},"Terms to anonymize",-1)),E(s("textarea",{class:O(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[r,{state:e.viewState,set:i=>{e.terms=i},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=s("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),E(s("div",UC," Terms are in an invalid format ",512),[[G,e.anonymize?.terms?.errors?.format]])]),s("div",zC,[t[10]||(t[10]=s("label",{for:"expiration"},"Expiration strategy",-1)),E((l(),d("select",HC,[...t[9]||(t[9]=[s("option",{value:"never",selected:""},"Never expire",-1),s("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),s("option",{value:"remove"},"Remove when expired",-1)])])),[[r,{state:e.viewState,set:i=>{e.options.expirationMode=i},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=s("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),E(s("div",BC,[t[12]||(t[12]=s("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),E(s("input",GC,null,512),[[r,{state:e.viewState,set:i=>{e.options.expirationDate=i},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),E(s("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[G,e.options?.expirationMode=="remove"]]),E(s("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+c(e.pullRequestUrl)+".",513),[[G,e.options?.expirationMode=="redirect"]])],512),[[G,e.options?.expirationMode!="never"]]),s("div",jC,[s("div",WC,[t[25]||(t[25]=s("div",{class:"card-header",id:"headingOne"},[s("h2",{class:"mb-0"},[s("button",{class:"btn btn-block text-left",type:"button","data-toggle":"collapse","data-target":"#collapseOne","aria-expanded":"true","aria-controls":"collapseOne"},[s("i",{class:"fas fa-cog mr-1"}),y(" Advanced options ")])])],-1)),s("div",KC,[s("div",YC,[s("div",JC,[s("div",QC,[E(s("input",XC,null,512),[[r,{state:e.viewState,set:i=>{e.options.link=i},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=s("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=s("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),s("div",xC,[E(s("input",ZC,null,512),[[r,{state:e.viewState,set:i=>{e.options.image=i},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=s("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=s("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),s("div",eN,[E(s("input",tN,null,512),[[r,{state:e.viewState,set:i=>{e.options.date=i},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=s("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=s("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),s("div",sN,[E(s("input",nN,null,512),[[r,{state:e.viewState,set:i=>{e.options.username=i},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=s("label",{class:"form-check-label",for:"username"},"Display username",-1))]),s("div",oN,[E(s("input",rN,null,512),[[r,{state:e.viewState,set:i=>{e.options.comments=i},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=s("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),s("div",iN,[E(s("input",aN,null,512),[[r,{state:e.viewState,set:i=>{e.options.diff=i},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=s("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),s("div",lN,[E(s("input",dN,null,512),[[r,{state:e.viewState,set:i=>{e.options.origin=i},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=s("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),s("div",uN,[E(s("input",cN,null,512),[[r,{state:e.viewState,set:i=>{e.options.title=i},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=s("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),s("div",pN,[E(s("input",fN,null,512),[[r,{state:e.viewState,set:i=>{e.options.body=i},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=s("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[G,e.pullRequestUrl]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,mN)):m("v-if",!0),E(s("div",hN,[e.isUpdate?m("v-if",!0):(l(),d("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=ke(i=>e.submitForm(i,()=>{e.anonymizePullRequest(i)}),["prevent"]))},[...t[28]||(t[28]=[s("i",{class:"fas fa-user-secret mr-1"},null,-1),y(" Anonymize ",-1)])])),e.isUpdate?(l(),d("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=ke(i=>e.submitForm(i,()=>{e.updatePullRequest(i)}),["prevent"]))},[...t[29]||(t[29]=[s("i",{class:"fas fa-save mr-1"},null,-1),y(" Update ",-1)])])):m("v-if",!0)],512),[[G,e.pullRequestUrl]])],2)),[[n,e.viewState]])],2)]),e.details?(l(),d("div",vN,[s("div",yN,[s("h2",gN,[e.options?.title?(l(),d("span",bN,c(e.anonymize(e.details?.pullRequest?.title)),1)):m("v-if",!0),s("span",{class:O(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,wN)):m("v-if",!0)]),e.options?.origin?(l(),d("small",kN,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):m("v-if",!0),e.options?.body?(l(),d("div",_N,[De(o,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):m("v-if",!0),s("ul",EN,[e.options?.diff?(l(),d("li",CN,[...t[31]||(t[31]=[s("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):m("v-if",!0),e.options?.comments?(l(),d("li",NN,[s("button",{class:O(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[s("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,SN)],2)])):m("v-if",!0)]),s("div",DN,[s("div",RN,[e.options?.diff?(l(),d("div",TN,[s("pre",ON,[s("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,AN)])])):m("v-if",!0)]),s("div",{class:O(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(l(),d("ul",IN,[(l(!0),d(Y,null,oe(e.details?.pullRequest?.comments,(i,a)=>(l(),d("li",VN,[s("div",PN,[e.options?.username?(l(),d("h5",qN," @"+c(e.anonymize(i?.author)),1)):m("v-if",!0),e.options?.date?(l(),d("small",{key:1,textContent:c(e.fmt?.date(i?.updatedDate))},null,8,MN)):m("v-if",!0)]),s("p",$N,[e.options?.body?(l(),ks(o,{key:0,class:"pr-comment-body",content:e.anonymize(i?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):m("v-if",!0)])]))),256))])):m("v-if",!0)],2)])])):m("v-if",!0)])])}var LN={class:"container paper-page"},FN={class:"paper-settings-main claim-form"},UN={class:"form-group"},zN={class:"invalid-feedback"},HN={class:"form-group"};function nl(e,t){let o=we("field"),r=we("form");return l(),d("div",LN,[t[6]||(t[6]=ge('
My work \xA0/\xA0 Claim

Claim an anonymization

Take ownership of an existing anonymized repository so it appears on your dashboard.

',3)),s("div",FN,[t[5]||(t[5]=s("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),E((l(),d("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=ke(n=>e.submitForm(n,()=>{e.claim()}),["prevent"]))},[s("div",UN,[t[1]||(t[1]=s("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",required:""},null,2),[[o,{state:e.viewState,set:n=>{e.repoUrl=n},value:e.repoUrl,form:"claimForm",options:{}}]]),E(s("div",zN," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[G,e.claimForm?.repoUrl?.errors?.not_found]])]),s("div",HN,[t[2]||(t[2]=s("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",required:""},null,2),[[o,{state:e.viewState,set:n=>{e.repoId=n},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=s("small",{id:"idHelp",class:"form-text text-muted"},[y("The ID is the last part of the anonymized URL: "),s("code",null,"anonymous.4open.science/r/"),y(".")],-1))]),t[4]||(t[4]=s("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[r,e.viewState]])])])}var BN={class:"container page paper-page"},GN={class:"paper-crumbs"},jN={class:"here"},WN={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},KN=["textContent"],YN={key:0,class:"paper-page-lede"},JN=["textContent","href"],QN={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},XN=["textContent"],xN=["href"],ZN={class:"paper-meta-rule"},eS=["textContent"],tS=["textContent"],sS={key:0},nS={class:"search-wrap"},oS={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search by ID or source repository\u2026",autocomplete:"off"},rS={class:"dashboard-filter-controls"},iS={class:"dropdown"},aS={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},lS={class:"filter-btn-value"},dS={class:"dropdown-menu","aria-labelledby":"dropdownSort"},uS={class:"form-check dropdown-item"},cS={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},pS={class:"form-check dropdown-item"},fS={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},mS={class:"form-check dropdown-item"},hS={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},vS={class:"form-check dropdown-item"},yS={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},gS={class:"dropdown"},bS={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},wS={key:0,class:"filter-btn-value"},kS={key:1,class:"filter-btn-value"},_S={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},ES={class:"form-check dropdown-item"},CS=["id"],NS=["for"],SS={class:"dashboard-meta"},DS={class:"dashboard-count"},RS={key:0},TS={key:0},OS={key:1},AS={key:1},IS={key:0,class:"filter-chip"},VS=["onClick","aria-label"],PS={class:"paper-table paper-table-repos w-100",role:"table","aria-label":"Repositories"},qS={class:"cell-anon",role:"cell"},MS={class:"anon-text"},$S=["textContent","href"],LS={class:"anon-sub"},FS={class:"anon-source"},US=["textContent","href"],zS={key:0},HS=["textContent","href"],BS={key:1},GS=["href"],jS={class:"cell-status",role:"cell"},WS={class:"status-line"},KS=["textContent"],YS={key:0,class:"status-sub"},JS=["textContent"],QS={class:"cell-expires",role:"cell"},XS={key:0,class:"expires-never"},xS=["textContent"],ZS={key:2,class:"expires-past"},e2={key:0},t2={key:3,class:"empty-dash","aria-label":"Not applicable"},s2={class:"cell-actions",role:"cell"},n2={class:"dropdown"},o2=["aria-label"],r2={class:"dropdown-menu dropdown-menu-right"},i2=["href"],a2=["href"],l2={key:0,class:"paper-table-empty"},d2={key:0},u2={key:1},c2={key:2,class:"paper-table-empty-actions"};function ol(e,t){let o=we("field"),r=we("form");return l(),d("div",BN,[s("div",null,[s("div",GN,[t[2]||(t[2]=s("a",{href:"/dashboard"},"My work",-1)),t[3]||(t[3]=y(" \xA0/\xA0 ",-1)),t[4]||(t[4]=s("a",{href:"/conferences"},"Conferences",-1)),t[5]||(t[5]=y(" \xA0/\xA0 ",-1)),s("span",jN,c(e.conference?.conferenceID),1)]),s("div",WN,[s("div",null,[s("h1",{class:"paper-page-title",textContent:c(e.conference?.name)},null,8,KN),e.conference?.url?(l(),d("p",YN,[s("a",{target:"_blank",rel:"noopener",textContent:c(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,JN)])):m("v-if",!0)]),s("div",QN,[s("span",{class:O(["status-pill",{"status-pill-ready":e.conference?.status=="ready","status-pill-removed":e.conference?.status=="removed"||e.conference?.status=="expired"}])},[s("span",{class:O(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),s("span",{textContent:c(e.fmt?.statusLabel(e.conference?.status))},null,8,XN)],2),s("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[6]||(t[6]=[s("i",{class:"far fa-edit mr-1","aria-hidden":"true"},null,-1),y(" Edit conference",-1)])],8,xN)])]),s("div",ZN,[s("span",null,[t[7]||(t[7]=y("ID ",-1)),s("b",{class:"commit-hash",textContent:c(e.conference?.conferenceID)},null,8,eS)]),s("span",null,[t[8]||(t[8]=y("Review window ",-1)),s("b",null,c(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),s("span",null,[t[9]||(t[9]=y("Repositories ",-1)),s("b",null,c(e.fmt?.number(e.conference?.repositories?.length)),1)]),s("span",null,[t[10]||(t[10]=y("Plan ",-1)),s("b",{textContent:c(e.conference?.plan?.name||e.conference?.plan?.planID||"Free")},null,8,tS)]),e.conference?.price?(l(),d("span",sS,[t[11]||(t[11]=y("Cost so far ",-1)),s("b",null,c(e.fmt?.number(e.conference?.price,2))+" \u20AC",1)])):m("v-if",!0)]),t[29]||(t[29]=s("div",{class:"paper-section-eyebrow"},"Repositories",-1)),E((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=ke(n=>e.submitForm(n,()=>{n.preventDefault()}),["prevent"]))},[s("div",nS,[E(s("input",oS,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),s("div",rS,[s("div",iS,[s("button",aS,[t[12]||(t[12]=s("span",{class:"filter-btn-label"},"Sort",-1)),s("span",lS,c({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),s("div",dS,[t[17]||(t[17]=s("h6",{class:"dropdown-header"},"Order by",-1)),s("div",uS,[E(s("input",cS,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[13]||(t[13]=s("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),s("div",pS,[E(s("input",fS,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[14]||(t[14]=s("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),s("div",mS,[E(s("input",hS,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[15]||(t[15]=s("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),s("div",vS,[E(s("input",yS,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[16]||(t[16]=s("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])]),s("div",gS,[s("button",bS,[t[18]||(t[18]=s("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",wS,"All")):m("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?m("v-if",!0):(l(),d("span",kS,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),s("div",_S,[t[19]||(t[19]=s("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(Y,null,oe(e.statusLabels,(n,i,a)=>(l(),d("div",ES,[E(s("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,CS),[[o,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),s("label",{class:"form-check-label",for:"status-"+i},c(n),9,NS)]))),256))])])])],32)),[[r,e.viewState]]),s("div",SS,[s("span",DS,[e.filteredRepositories?.length===e.conference?.repositories?.length?(l(),d("span",RS,[y(c(e.fmt?.number(e.conference?.repositories?.length))+" repositor",1),e.conference?.repositories?.length===1?(l(),d("span",TS,"y")):m("v-if",!0),e.conference?.repositories?.length!==1?(l(),d("span",OS,"ies")):m("v-if",!0)])):m("v-if",!0),e.filteredRepositories?.length!==e.conference?.repositories?.length?(l(),d("span",AS,c(e.fmt?.number(e.filteredRepositories?.length))+" of "+c(e.fmt?.number(e.conference?.repositories?.length))+" shown",1)):m("v-if",!0)]),(l(!0),d(Y,null,oe(e.filters?.status,(n,i,a)=>(l(),d(Y,null,[n===!1?(l(),d("span",IS,[y(" Hiding "+c(e.statusLabels[i])+" ",1),s("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusLabels[i]+" again"},"\xD7",8,VS)])):m("v-if",!0)],64))),256))]),s("div",PS,[t[28]||(t[28]=s("div",{class:"paper-table-head",role:"row"},[s("div",{role:"columnheader"},"Repository"),s("div",{role:"columnheader"},"Status"),s("div",{role:"columnheader",class:"num"},"Views"),s("div",{role:"columnheader"},"Expires"),s("div",{role:"columnheader"},[s("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(Y,null,oe(e.filteredRepositories,(n,i)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":n?.status=="expired"||n?.status=="removed","repo-error":n?.status=="error"}]),role:"row",key:n?.repoId},[s("div",qS,[t[22]||(t[22]=s("span",{class:"type-badge type-repo"},"Repo",-1)),s("div",MS,[s("a",{class:"repo-name",textContent:c(n?.repoId),href:e.safeUrl("/r/"+n?.repoId+"/")},null,8,$S),s("div",LS,[s("span",FS,[s("a",{target:"_blank",rel:"noopener",textContent:c(n?.source?.fullName),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/")},null,8,US),n?.options?.update&&n?.source?.branch?(l(),d("span",zS,[t[20]||(t[20]=y(" \xB7 ",-1)),s("a",{target:"_blank",rel:"noopener",textContent:c(n?.source?.branch),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.branch)},null,8,HS)])):m("v-if",!0),n?.source?.commit?(l(),d("span",BS,[t[21]||(t[21]=y(" \xB7 ",-1)),s("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.commit)},"@"+c(n?.source?.commit?.substring(0,8)),9,GS)])):m("v-if",!0)])])])]),s("div",jS,[s("div",WS,[s("span",{class:O(["status-dot","status-"+(n?.status=="error"?"error":n?.status=="ready"?"ready":n?.status=="expired"||n?.status=="removed"?n?.status:"progress")]),"aria-hidden":"true"},null,2),s("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(n?.status))},null,8,KS)]),n?.anonymizeDate?(l(),d("div",YS,"anonymized "+c(e.fmt?.humanTime(n?.anonymizeDate)),1)):m("v-if",!0)]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.pageView))},null,8,JS),s("div",QS,[n?.status=="ready"&&(n?.options?.expirationMode==="never"||!n?.options?.expirationDate)?(l(),d("span",XS,"Never")):m("v-if",!0),n?.status=="ready"&&n?.options?.expirationMode!=="never"&&n?.options?.expirationDate?(l(),d("span",{key:1,textContent:c(e.fmt?.humanTime(n?.options?.expirationDate))},null,8,xS)):m("v-if",!0),n?.status=="expired"?(l(),d("span",ZS,[t[23]||(t[23]=y("Expired",-1)),n?.options?.expirationDate?(l(),d("span",e2,c(e.fmt?.humanTime(n?.options?.expirationDate)),1)):m("v-if",!0)])):m("v-if",!0),n?.status!="ready"&&n?.status!="expired"?(l(),d("span",t2,"\u2014")):m("v-if",!0)]),s("div",s2,[s("div",n2,[s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+n?.repoId},[...t[24]||(t[24]=[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"},null,-1)])],8,o2),s("div",r2,[s("a",{class:"dropdown-item",href:e.safeUrl("/r/"+n?.repoId+"/")},[...t[25]||(t[25]=[s("i",{class:"fa fa-eye","aria-hidden":"true"},null,-1),y(" View ",-1)])],8,i2),s("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+n?.repoId)},[...t[26]||(t[26]=[s("i",{class:"far fa-edit","aria-hidden":"true"},null,-1),y(" Edit ",-1)])],8,a2)])])])],2))),128)),e.filteredRepositories?.length==0?(l(),d("div",l2,[t[27]||(t[27]=s("i",{class:"fas fa-inbox","aria-hidden":"true"},null,-1)),e.conference?.repositories?.length?m("v-if",!0):(l(),d("span",d2,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(l(),d("span",u2,"Nothing matches the current filters.")):m("v-if",!0),e.conference?.repositories?.length?(l(),d("div",c2,[s("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=n=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")])):m("v-if",!0)])):m("v-if",!0)])])])}var p2={class:"container page paper-page"},f2={class:"row"},m2={class:"w-100"},h2={class:"search-wrap"},v2={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},y2={class:"dashboard-filter-controls"},g2={class:"dropdown"},b2={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},w2={class:"filter-btn-value"},k2={class:"dropdown-menu","aria-labelledby":"dropdownSort"},_2={class:"form-check dropdown-item"},E2={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},C2={class:"form-check dropdown-item"},N2={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},S2={class:"form-check dropdown-item"},D2={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},R2={class:"dropdown"},T2={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},O2={key:0,class:"filter-btn-value"},A2={key:1,class:"filter-btn-value"},I2={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},V2={class:"form-check dropdown-item"},P2=["id"],q2=["for"],M2={class:"dashboard-meta"},$2={class:"dashboard-count"},L2={key:0},F2={key:0},U2={key:1},z2={key:0,class:"filter-chip"},H2=["onClick","aria-label"],B2={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},G2={class:"cell-anon",role:"cell"},j2={class:"anon-text"},W2=["textContent","href"],K2={class:"anon-sub"},Y2={class:"anon-source"},J2=["textContent"],Q2={key:0},X2=["textContent","href"],x2={class:"cell-status",role:"cell"},Z2={class:"status-line"},eD=["textContent"],tD=["textContent"],sD={class:"cell-expires",role:"cell"},nD={key:0},oD={key:1,class:"empty-dash","aria-label":"No review window"},rD={class:"cell-actions",role:"cell"},iD={class:"dropdown"},aD=["aria-label"],lD={class:"dropdown-menu dropdown-menu-right"},dD=["href"],uD=["href"],cD={key:0},pD=["onClick"],fD={key:0,class:"paper-table-empty"},mD={key:0},hD={key:1},vD={class:"paper-table-empty-actions"},yD={key:1,href:"/conference/new",class:"btn btn-ink"};function rl(e,t){let o=we("field"),r=we("form");return l(),d("div",p2,[s("div",f2,[s("div",m2,[t[9]||(t[9]=ge('
My work \xA0/\xA0 Conferences

Your conferences

Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.

New conference
',2)),E((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=ke(n=>e.submitForm(n,()=>{n.preventDefault()}),["prevent"]))},[s("div",h2,[E(s("input",v2,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),s("div",y2,[s("div",g2,[s("button",b2,[t[2]||(t[2]=s("span",{class:"filter-btn-label"},"Sort",-1)),s("span",w2,c({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),s("div",k2,[t[6]||(t[6]=s("h6",{class:"dropdown-header"},"Order by",-1)),s("div",_2,[E(s("input",E2,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=s("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),s("div",C2,[E(s("input",N2,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=s("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),s("div",S2,[E(s("input",D2,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[5]||(t[5]=s("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),s("div",R2,[s("button",T2,[t[7]||(t[7]=s("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",O2,"All")):m("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?m("v-if",!0):(l(),d("span",A2,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),s("div",I2,[t[8]||(t[8]=s("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(Y,null,oe(e.statusLabels,(n,i,a)=>(l(),d("div",V2,[E(s("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,P2),[[o,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),s("label",{class:"form-check-label",for:"status-"+i},c(n),9,q2)]))),256))])])])],32)),[[r,e.viewState]]),s("div",M2,[s("span",$2,[e.filteredConferences?.length===e.conferences?.length?(l(),d("span",L2,[y(c(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(l(),d("span",F2,"s")):m("v-if",!0)])):m("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(l(),d("span",U2,c(e.fmt?.number(e.filteredConferences?.length))+" of "+c(e.fmt?.number(e.conferences?.length))+" shown",1)):m("v-if",!0)]),(l(!0),d(Y,null,oe(e.filters?.status,(n,i,a)=>(l(),d(Y,null,[n===!1?(l(),d("span",z2,[y(" Hiding "+c(e.statusLabels[i])+" ",1),s("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusLabels[i]+" again"},"\xD7",8,H2)])):m("v-if",!0)],64))),256))])]),s("div",B2,[t[20]||(t[20]=s("div",{class:"paper-table-head",role:"row"},[s("div",{role:"columnheader"},"Conference"),s("div",{role:"columnheader"},"Status"),s("div",{role:"columnheader",class:"num"},"Repos"),s("div",{role:"columnheader"},"Review window"),s("div",{role:"columnheader"},[s("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(Y,null,oe(e.filteredConferences,(n,i)=>(l(),d("div",{class:O(["paper-table-row row-clickable",{"repo-inactive":n?.status=="expired"||n?.status=="removed"}]),role:"row",key:n?.conferenceID},[s("div",G2,[t[12]||(t[12]=s("span",{class:"type-badge type-repo"},"Conf",-1)),s("div",j2,[s("a",{class:"repo-name",textContent:c(n?.name),href:e.safeUrl("/conference/"+n?.conferenceID)},null,8,W2),s("div",K2,[s("span",Y2,[t[11]||(t[11]=y("ID ",-1)),s("span",{class:"commit-hash",textContent:c(n?.conferenceID)},null,8,J2),n?.url?(l(),d("span",Q2,[t[10]||(t[10]=y(" \xB7 ",-1)),s("a",{target:"_blank",rel:"noopener",textContent:c(e.fmt?.limitTo(n?.url,60)),href:e.safeUrl(n?.url)},null,8,X2)])):m("v-if",!0)])])])]),s("div",x2,[s("div",Z2,[s("span",{class:O(["status-dot","status-"+n?.status]),"aria-hidden":"true"},null,2),s("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(n?.status))},null,8,eD)])]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.nbRepositories||0))},null,8,tD),s("div",sD,[n?.startDate?(l(),d("span",nD,c(e.fmt?.date(n?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(n?.endDate,"mediumDate")),1)):m("v-if",!0),n?.startDate?m("v-if",!0):(l(),d("span",oD,"\u2014"))]),s("div",rD,[s("div",iD,[s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+n?.name},[...t[13]||(t[13]=[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"},null,-1)])],8,aD),s("div",lD,[s("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+n?.conferenceID+"/")},[...t[14]||(t[14]=[s("i",{class:"fa fa-eye","aria-hidden":"true"},null,-1),y(" View ",-1)])],8,dD),s("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+n?.conferenceID+"/edit")},[...t[15]||(t[15]=[s("i",{class:"far fa-edit","aria-hidden":"true"},null,-1),y(" Edit ",-1)])],8,uD),n?.status!="removed"?(l(),d("div",cD,[t[17]||(t[17]=s("div",{class:"dropdown-divider"},null,-1)),s("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeConference(n)},[...t[16]||(t[16]=[s("i",{class:"fas fa-trash-alt","aria-hidden":"true"},null,-1),y(" Remove ",-1)])],8,pD)])):m("v-if",!0)])])])],2))),128)),e.filteredConferences?.length==0?(l(),d("div",fD,[t[19]||(t[19]=s("i",{class:"fas fa-inbox","aria-hidden":"true"},null,-1)),e.conferences?.length==0?(l(),d("span",mD,"You have not created a conference yet.")):m("v-if",!0),e.conferences?.length>0?(l(),d("span",hD,"Nothing matches the current filters.")):m("v-if",!0),s("div",vD,[e.conferences?.length>0?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=n=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):m("v-if",!0),e.conferences?.length==0?(l(),d("a",yD,[...t[18]||(t[18]=[s("i",{class:"fa fa-plus-circle mr-1","aria-hidden":"true"},null,-1),y(" New conference",-1)])])):m("v-if",!0)])])):m("v-if",!0)])])])}var gD={class:"container page dashboard-page paper-page"},bD={class:"row"},wD={class:"w-100"},kD={key:0,class:"quota-row"},_D={class:"quota-item"},ED={class:"quota-header"},CD={class:"quota-label"},ND={key:0,class:"quota-value"},SD={key:0},DD={key:1,class:"quota-unlimited-tag"},RD={key:1,class:"quota-value"},TD={key:0},OD={key:1,class:"quota-unlimited-tag"},AD=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],ID={class:"search-wrap"},VD={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search by name, source, or conference\u2026",autocomplete:"off"},PD={class:"dashboard-filter-controls"},qD={class:"btn-group",role:"group","aria-label":"Type"},MD=["aria-pressed"],$D=["aria-pressed"],LD=["aria-pressed"],FD=["aria-pressed"],UD={class:"dropdown"},zD={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},HD={class:"filter-btn-value"},BD={class:"sr-only"},GD={class:"dropdown-menu","aria-labelledby":"dropdownSort"},jD={class:"form-check dropdown-item"},WD=["onClick","checked","id"],KD=["for"],YD={class:"dropdown"},JD={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},QD={key:0,class:"filter-btn-value"},XD={key:1,class:"filter-btn-value"},xD={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},ZD={class:"form-check dropdown-item"},eR=["id"],tR=["for"],sR={key:1,class:"dashboard-meta"},nR={class:"dashboard-count"},oR={key:0},rR={key:0},iR={key:1},aR={key:0,class:"filter-chip"},lR=["onClick","aria-label"],dR=["aria-busy"],uR={class:"paper-table-head",role:"row"},cR=["aria-sort"],pR=["aria-sort"],fR=["aria-sort"],mR=["aria-sort"],hR={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},vR=["onClick"],yR={class:"cell-anon",role:"cell"},gR={class:"anon-text"},bR={class:"anon-title"},wR=["textContent","href"],kR=["textContent"],_R={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},ER={key:0,class:"anon-sub"},CR={key:0,class:"anon-source"},NR=["textContent","href"],SR={key:0},DR=["textContent","href"],RR={key:1},TR=["href"],OR={key:1,class:"anon-source"},AR=["textContent","href"],IR={key:2,class:"anon-source"},VR=["textContent","href"],PR=["title"],qR=["textContent"],MR={class:"cell-status",role:"cell"},$R={class:"status-line"},LR=["textContent"],FR=["textContent","title"],UR=["title"],zR={key:2,class:"status-sub"},HR=["textContent"],BR={class:"cell-expires",role:"cell"},GR={key:0,class:"expires-never"},jR=["textContent"],WR={key:2,class:"expires-past"},KR={key:3,class:"expires-past"},YR={key:4,class:"empty-dash","aria-label":"Not applicable"},JR={class:"cell-actions",role:"cell"},QR={key:0,class:"dropdown"},XR=["aria-label"],xR={class:"dropdown-menu dropdown-menu-right"},ZR=["href"],eT=["href"],tT=["href"],sT=["onClick"],nT=["onClick"],oT=["onClick"],rT={key:4},iT=["onClick"],aT={key:0,class:"paper-table-empty"},lT={key:0},dT={key:1},uT={class:"paper-table-empty-actions"},cT={key:1,href:"/anonymize",class:"btn btn-ink"};function il(e,t){let o=we("field"),r=we("form");return l(),d("div",gD,[s("div",bD,[s("div",wD,[t[18]||(t[18]=ge('
My work \xA0/\xA0 Dashboard

Your anonymizations

Every repository, pull request, and gist you\u2019ve mirrored, with live status and stats.

',2)),m(" Quota "),e.quota?(l(),d("div",kD,[(l(),d(Y,null,oe([{key:"repository",label:"Repositories",kind:"count"},{key:"storage",label:"Storage",kind:"bytes"},{key:"file",label:"Files",kind:"count"}],(n,i)=>s("div",_D,[s("div",ED,[s("span",CD,c(n?.label),1),n?.kind==="count"?(l(),d("span",ND,[y(c(e.fmt?.number(e.quota[n?.key].used)),1),e.quota[n?.key].unlimited?m("v-if",!0):(l(),d("span",SD," / "+c(e.fmt?.number(e.quota[n?.key].total)),1)),e.quota[n?.key].unlimited?(l(),d("span",DD,"Unlimited")):m("v-if",!0)])):m("v-if",!0),n?.kind==="bytes"?(l(),d("span",RD,[y(c(e.fmt?.humanFileSize(e.quota[n?.key].used)),1),e.quota[n?.key].unlimited?m("v-if",!0):(l(),d("span",TD," / "+c(e.fmt?.humanFileSize(e.quota[n?.key].total)),1)),e.quota[n?.key].unlimited?(l(),d("span",OD,"Unlimited")):m("v-if",!0)])):m("v-if",!0)]),s("div",{class:O(["quota-track","quota-"+e.quota[n?.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":n?.label+" quota","aria-valuenow":e.quota[n?.key].used,"aria-valuemax":e.quota[n?.key].unlimited?e.quota[n?.key].used:e.quota[n?.key].total,"aria-valuetext":e.quota[n?.key].unlimited?"unlimited":e.fmt.number(e.quota[n?.key].percent,0)+"% used"},[e.quota[n?.key].unlimited?m("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:Ve({width:e.quota[n?.key].percent+"%"})},null,4))],10,AD)])),64))])):m("v-if",!0),m(" Search + filters "),E((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[5]||(t[5]=ke(n=>e.submitForm(n,()=>{n.preventDefault()}),["prevent"]))},[s("div",ID,[E(s("input",VD,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),s("div",PD,[s("div",qD,[s("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[0]||(t[0]=n=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,MD),s("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="repo"}]),onClick:t[1]||(t[1]=n=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},"Repos",10,$D),s("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="pr"}]),onClick:t[2]||(t[2]=n=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},"PRs",10,LD),s("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="gist"}]),onClick:t[3]||(t[3]=n=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},"Gists",10,FD)]),s("div",UD,[s("button",zD,[t[12]||(t[12]=s("span",{class:"filter-btn-label"},"Sort",-1)),s("span",HD,c(e.sortLabel()),1),s("i",{class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2),s("span",BD,c(e.sortDesc()?"descending":"ascending"),1)]),s("div",GD,[t[14]||(t[14]=s("h6",{class:"dropdown-header"},"Order by",-1)),(l(!0),d(Y,null,oe(e.sortFields,(n,i,a)=>(l(),d("div",jD,[s("input",{class:"form-check-input",type:"radio",name:"sort",onClick:u=>e.setSort(i,n.defaultDesc),checked:e.isSortedBy(i),id:"sort-"+a},null,8,WD),s("label",{class:"form-check-label",for:"sort-"+a},c(n?.label),9,KD)]))),256)),t[15]||(t[15]=s("div",{class:"dropdown-divider"},null,-1)),s("button",{type:"button",class:"dropdown-item",onClick:t[4]||(t[4]=n=>e.toggleSortDirection())},[t[13]||(t[13]=s("i",{class:"fas fa-exchange-alt fa-rotate-90","aria-hidden":"true"},null,-1)),y(" "+c(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])])]),s("div",YD,[s("button",JD,[t[16]||(t[16]=s("span",{class:"filter-btn-label"},"Status",-1)),e.hasHiddenStatus()?m("v-if",!0):(l(),d("span",QD,"All")),e.hasHiddenStatus()?(l(),d("span",XD,c(e.hiddenStatusCount())+" hidden",1)):m("v-if",!0)]),s("div",xD,[t[17]||(t[17]=s("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(Y,null,oe(e.statusKeyLabels,(n,i,a)=>(l(),d("div",ZD,[E(s("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,eR),[[o,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),s("label",{class:"form-check-label",for:"status-"+i},c(n),9,tR)]))),256))])])])],32)),[[r,e.viewState]]),m(" Result count + active filter chips "),e.loading?m("v-if",!0):(l(),d("div",sR,[s("span",nR,[e.filteredItems?.length===e.items?.length?(l(),d("span",oR,[y(c(e.fmt?.number(e.items?.length))+" anonymization",1),e.items?.length!==1?(l(),d("span",rR,"s")):m("v-if",!0)])):m("v-if",!0),e.filteredItems?.length!==e.items?.length?(l(),d("span",iR,c(e.fmt?.number(e.filteredItems?.length))+" of "+c(e.fmt?.number(e.items?.length))+" shown",1)):m("v-if",!0)]),(l(!0),d(Y,null,oe(e.filters?.status,(n,i,a)=>(l(),d(Y,null,[n===!1?(l(),d("span",aR,[y(" Hiding "+c(e.statusKeyLabels[i])+" ",1),s("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusKeyLabels[i]+" again"},"\xD7",8,lR)])):m("v-if",!0)],64))),256)),e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn-link-inline",onClick:t[6]||(t[6]=n=>e.clearFilters())},"Clear filters")):m("v-if",!0)]))]),m(" Table "),s("div",{class:"paper-table paper-table-dashboard w-100",role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[s("div",uR,[s("div",{role:"columnheader","aria-sort":e.isSortedBy("_name")?e.sortDesc()?"descending":"ascending":"none"},[s("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("_name")}]),onClick:t[7]||(t[7]=n=>e.setSort("_name"))},[t[19]||(t[19]=y(" Anonymization ",-1)),e.isSortedBy("_name")?(l(),d("i",{key:0,class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2)):m("v-if",!0)],2)],8,cR),s("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[s("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("status")}]),onClick:t[8]||(t[8]=n=>e.setSort("status"))},[t[20]||(t[20]=y(" Status ",-1)),e.isSortedBy("status")?(l(),d("i",{key:0,class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2)):m("v-if",!0)],2)],8,pR),s("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[s("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[9]||(t[9]=n=>e.setSort("pageView"))},[t[21]||(t[21]=y(" Views ",-1)),e.isSortedBy("pageView")?(l(),d("i",{key:0,class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2)):m("v-if",!0)],2)],8,fR),s("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[s("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[10]||(t[10]=n=>e.setSort("options.expirationDate"))},[t[22]||(t[22]=y(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(l(),d("i",{key:0,class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2)):m("v-if",!0)],2)],8,mR),t[23]||(t[23]=s("div",{role:"columnheader"},[s("span",{class:"sr-only"},"Actions")],-1))]),m(" Loading skeleton: keeps the layout stable while the three lists load "),(l(),d(Y,null,oe([1,2,3,4],(n,i)=>(l(),d(Y,null,[e.loading?(l(),d("div",hR,[...t[24]||(t[24]=[s("div",{class:"cell-anon",role:"cell"},[s("span",{class:"skeleton skeleton-badge"}),s("div",{class:"anon-text"},[s("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),s("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),s("div",{class:"cell-status",role:"cell"},[s("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),s("div",{class:"cell-views num",role:"cell"},[s("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),s("div",{class:"cell-expires",role:"cell"},[s("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),s("div",{class:"cell-actions",role:"cell"},null,-1)])])):m("v-if",!0)],64))),64)),(l(!0),d(Y,null,oe(e.filteredItems,(n,i)=>(l(),d(Y,{key:n?._type+":"+(n?._id||i)},[e.loading?m("v-if",!0):(l(),d("div",{key:0,class:O(["paper-table-row",{"repo-inactive":n?._statusKey=="expired"||n?._statusKey=="removed","repo-error":n?.status=="error","row-clickable":!!n?._viewUrl}]),role:"row",onClick:a=>e.openItem(n,a)},[s("div",yR,[s("span",{class:O(["type-badge",{"type-repo":n?._type==="repo","type-pr":n?._type==="pr","type-gist":n?._type==="gist"}])},c(n?._type==="repo"?"Repo":n?._type==="pr"?"PR":"Gist"),3),s("div",gR,[s("div",bR,[n?._viewUrl?(l(),d("a",{key:0,class:"repo-name",textContent:c(n?._name),href:e.safeUrl(n?._viewUrl)},null,8,wR)):m("v-if",!0),n?._viewUrl?m("v-if",!0):(l(),d("span",{key:1,class:"repo-name repo-name-static",textContent:c(n?._name)},null,8,kR)),n?.role==="coauthor"?(l(),d("span",_R,"Co-author")):m("v-if",!0)]),!n?._broken||n?.conference?(l(),d("div",ER,[n?._type==="repo"&&n?.source?.fullName&&!n?._broken?(l(),d("span",CR,[s("a",{target:"_blank",rel:"noopener",textContent:c(n?.source?.fullName),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/")},null,8,NR),n?.options?.update&&n?.source?.branch?(l(),d("span",SR,[t[25]||(t[25]=y(" \xB7 ",-1)),s("a",{target:"_blank",rel:"noopener",textContent:c(n?.source?.branch),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.branch)},null,8,DR)])):m("v-if",!0),n?.source?.commit?(l(),d("span",RR,[t[26]||(t[26]=y(" \xB7 ",-1)),s("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.commit)},"@"+c(n?.source?.commit?.substring(0,8)),9,TR)])):m("v-if",!0)])):m("v-if",!0),n?._type==="pr"&&n?.source?.repositoryFullName&&!n?._broken?(l(),d("span",OR,[s("a",{target:"_blank",rel:"noopener",textContent:c(n?._source),href:e.safeUrl("https://github.com/"+n?.source?.repositoryFullName+"/pull/"+n?.source?.pullRequestId)},null,8,AR)])):m("v-if",!0),n?._type==="gist"&&n?.source?.gistId&&!n?._broken?(l(),d("span",IR,[s("a",{target:"_blank",rel:"noopener",textContent:c(n?._source),href:e.safeUrl("https://gist.github.com/"+n?.source?.gistId)},null,8,VR)])):m("v-if",!0),n?.conference?(l(),d("span",{key:3,class:"cell-conf conf-tag",title:n?.conference},[t[27]||(t[27]=s("i",{class:"fas fa-university","aria-hidden":"true"},null,-1)),t[28]||(t[28]=y()),s("span",{textContent:c(n?.conference)},null,8,qR)],8,PR)):m("v-if",!0)])):m("v-if",!0)])]),s("div",MR,[s("div",$R,[s("span",{class:O(["status-dot","status-"+n?._statusKey]),"aria-hidden":"true"},null,2),s("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(n?.status))},null,8,LR)]),n?.status=="error"&&n?.statusMessage?(l(),d("div",{key:0,class:"status-sub status-sub-error",textContent:c(e.fmt?.statusMsg(n?.statusMessage)),title:n?.statusMessage},null,8,FR)):m("v-if",!0),n?._stale?(l(),d("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(n?.anonymizeDate||n?.lastView)}," Last activity "+c(e.fmt?.humanTime(n?.anonymizeDate||n?.lastView))+" \xB7 may be stuck ",9,UR)):m("v-if",!0),n?.status!="error"&&!n?._stale&&n?.anonymizeDate?(l(),d("div",zR," anonymized "+c(e.fmt?.humanTime(n?.anonymizeDate)),1)):m("v-if",!0)]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.pageView))},null,8,HR),s("div",BR,[n?._expiry?.kind==="never"?(l(),d("span",GR,"Never")):m("v-if",!0),n?._expiry?.kind==="date"?(l(),d("span",{key:1,textContent:c(e.fmt?.humanTime(n?._expiry?.date))},null,8,jR)):m("v-if",!0),n?._expiry?.kind==="expired"&&n?._expiry?.date?(l(),d("span",WR,"Expired "+c(e.fmt?.humanTime(n?._expiry?.date)),1)):m("v-if",!0),n?._expiry?.kind==="expired"&&!n?._expiry?.date?(l(),d("span",KR,"Expired")):m("v-if",!0),n?._expiry?.kind==="none"?(l(),d("span",YR,"\u2014")):m("v-if",!0)]),s("div",JR,[n?._broken?m("v-if",!0):(l(),d("div",QR,[s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+n?._name},[...t[29]||(t[29]=[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"},null,-1)])],8,XR),s("div",xR,[s("a",{class:"dropdown-item",href:e.safeUrl(n?._viewUrl)},[...t[30]||(t[30]=[s("i",{class:"fa fa-eye","aria-hidden":"true"},null,-1),y(" View ",-1)])],8,ZR),n?._type==="repo"&&n?.options?.page&&n?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+n?.repoId+"/")},[...t[31]||(t[31]=[s("i",{class:"fas fa-globe","aria-hidden":"true"},null,-1),y(" View page ",-1)])],8,eT)):m("v-if",!0),s("a",{class:"dropdown-item",href:e.safeUrl(n?._editUrl)},[...t[32]||(t[32]=[s("i",{class:"far fa-edit","aria-hidden":"true"},null,-1),y(" Edit ",-1)])],8,tT),n?.status=="ready"||n?.status=="error"?(l(),d("button",{key:1,type:"button",class:"dropdown-item",onClick:a=>e.refreshItem(n)},[...t[33]||(t[33]=[s("i",{class:"fas fa-sync","aria-hidden":"true"},null,-1),y(" Force update ",-1)])],8,sT)):m("v-if",!0),n?.status=="removed"?(l(),d("button",{key:2,type:"button",class:"dropdown-item",onClick:a=>e.refreshItem(n)},[...t[34]||(t[34]=[s("i",{class:"fas fa-check-circle","aria-hidden":"true"},null,-1),y(" Enable ",-1)])],8,nT)):m("v-if",!0),n?.status=="expired"?(l(),d("button",{key:3,type:"button",class:"dropdown-item",onClick:a=>e.extendItem(n)},[...t[35]||(t[35]=[s("i",{class:"fas fa-calendar-plus","aria-hidden":"true"},null,-1),y(" Extend 6 months ",-1)])],8,oT)):m("v-if",!0),(n?.status=="ready"||n?.status=="expired"||n?.status=="error")&&n?.role!=="coauthor"?(l(),d("div",rT,[t[37]||(t[37]=s("div",{class:"dropdown-divider"},null,-1)),s("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeItem(n)},[...t[36]||(t[36]=[s("i",{class:"fas fa-trash-alt","aria-hidden":"true"},null,-1),y(" Remove ",-1)])],8,iT)])):m("v-if",!0)])]))])],10,vR))],64))),128)),!e.loading&&e.filteredItems?.length==0?(l(),d("div",aT,[t[39]||(t[39]=s("i",{class:"fas fa-inbox","aria-hidden":"true"},null,-1)),e.items?.length==0?(l(),d("span",lT,"You have no anonymizations yet.")):m("v-if",!0),e.items?.length>0?(l(),d("span",dT,"Nothing matches the current filters.")):m("v-if",!0),s("div",uT,[e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[11]||(t[11]=n=>e.clearFilters())},"Clear filters")):m("v-if",!0),e.items?.length==0?(l(),d("a",cT,[...t[38]||(t[38]=[s("i",{class:"fa fa-plus-circle mr-1","aria-hidden":"true"},null,-1),y(" New anonymization",-1)])])):m("v-if",!0)])])):m("v-if",!0)],8,dR)])])}var pT={class:"explorer-page"},fT=["aria-label"],mT=["textContent"],hT={class:"leftCol-head"},vT={class:"leftCol-search"},yT={class:"tree-search-box"},gT={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},bT={class:"leftCol-project-header"},wT=["textContent"],kT={class:"project-file-count"},_T={class:"leftCol-body"},ET={key:0,class:"paper-inline-warning",role:"alert"},CT={key:1,class:"paper-inline-warning",role:"alert"},NT={class:"leftCol-foot"},ST=["title"],DT={class:"explorer-main"},RT={class:"status-bar"},TT={class:"breadcrumb paths","aria-label":"Path"},OT=["textContent"],AT={class:"status-bar-actions"},IT=["href"],VT={class:"d-none d-md-inline"},PT={class:"d-none d-md-inline"},qT=["href"],MT=["href"],$T=["href"],LT=["href"],FT={class:"explorer-content"};function al(e,t){let o=et("tree"),r=et("partial-view"),n=we("field");return l(),d("div",pT,[E(s("button",{class:"sidebar-toggle",onClick:t[0]||(t[0]=i=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[s("i",{class:O(["fas",e.sidebarCollapsed?"fa-folder-open":"fa-times"])},null,2),s("span",{textContent:c(e.sidebarCollapsed?"Files":"Close")},null,8,mT)],8,fT),[[G,e.files?.length]]),E(s("div",{class:O(["leftCol",{collapsed:e.sidebarCollapsed}])},[s("div",hT,[t[7]||(t[7]=s("span",{class:"leftCol-eyebrow"},"Files",-1)),s("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[1]||(t[1]=i=>e.sidebarCollapsed=!0)},[...t[6]||(t[6]=[s("i",{class:"fas fa-times"},null,-1)])])]),s("div",vT,[s("div",yT,[s("i",{class:O(["fas tree-search-icon",e.fileSearchLoading?"fa-spinner fa-spin":"fa-search"])},null,2),E(s("input",gT,null,512),[[n,{state:e.viewState,set:i=>{e.fileSearchQuery=i},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),E(s("kbd",{class:"tree-search-kbd"},c(e.isMac?"\u2318":"Ctrl+")+"K",513),[[G,!e.fileSearchQuery]]),E(s("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[2]||(t[2]=i=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[G,e.fileSearchQuery]])])]),s("div",bT,[s("span",{class:"project-name",textContent:c(e.repoId)},null,8,wT),s("span",kT,c(e.fileCounts?.[""]||e.files?.length)+" files",1)]),s("div",_T,[e.options?.truncatedFolders?.length>0?(l(),d("div",ET,[t[8]||(t[8]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),y(" "+c(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):m("v-if",!0),e.options?.hasSubmodules?(l(),d("div",CT,[t[9]||(t[9]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),y(" "+c(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):m("v-if",!0),De(o,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])]),s("div",NT,[s("span",{class:"last-update","data-toggle":"tooltip","data-placement":"top",title:e.options?.lastUpdateDate}," Updated "+c(e.fmt?.date(e.options?.lastUpdateDate)),9,ST)])],2),[[G,e.files?.length]]),E(s("div",{class:"leftCol-backdrop",onClick:t[3]||(t[3]=i=>e.sidebarCollapsed=!0)},null,512),[[G,e.files?.length&&!e.sidebarCollapsed]]),s("div",DT,[s("div",RT,[s("ol",TT,[(l(!0),d(Y,null,oe(e.paths,(i,a)=>(l(),d("li",{class:"breadcrumb-item",textContent:c(i)},null,8,OT))),256))]),s("div",AT,[e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[10]||(t[10]=[s("i",{class:"far fa-edit"},null,-1),s("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,IT)):m("v-if",!0),e.type=="html-doc"&&!e.showSource?(l(),d("button",{key:1,class:O(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[4]||(t[4]=i=>e.toggleAllowScripts())},[t[11]||(t[11]=s("i",{class:"fab fa-js"},null,-1)),s("span",VT,c(e.allowScripts?"JS on":"JS off"),1)],2)):m("v-if",!0),e.type=="html-doc"?(l(),d("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[5]||(t[5]=i=>e.toggleSource())},[s("i",{class:O(["fas",e.showSource?"fa-eye":"fa-code"])},null,2),s("span",PT,c(e.showSource?"Rendered":"Source"),1)])):m("v-if",!0),E(s("a",{target:"_self",class:"btn btn-sm","aria-label":"View raw current file",title:"View the raw content of the current file",href:e.safeUrl(e.url)},[...t[12]||(t[12]=[s("i",{class:"fas fa-file-alt"},null,-1),s("span",{class:"d-none d-md-inline"}," Raw",-1)])],8,qT),[[G,e.content!=null]]),E(s("a",{target:"_self",class:"btn btn-sm","aria-label":"Download current file",title:"Download the current file",href:e.safeUrl(e.url+"&download=true")},[...t[13]||(t[13]=[s("i",{class:"fas fa-download"},null,-1),s("span",{class:"d-none d-md-inline"}," Download",-1)])],8,MT),[[G,e.content!=null]]),e.options?.download?(l(),d("a",{key:3,target:"_self",class:"btn btn-sm","aria-label":"Download full repository as ZIP",title:"Download the full repository as a ZIP archive",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[14]||(t[14]=[s("i",{class:"fas fa-file-archive"},null,-1),s("span",{class:"d-none d-md-inline"}," Full repo ZIP",-1)])],8,$T)):m("v-if",!0),e.options?.hasWebsite?(l(),d("a",{key:4,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[15]||(t[15]=[s("i",{class:"fas fa-globe"},null,-1),s("span",{class:"d-none d-md-inline"}," Website",-1)])],8,LT)):m("v-if",!0)])]),s("div",FT,[De(r,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])])}var UT={class:"paper-faq"};function ll(e,t){return l(),d("div",UT,[...t[0]||(t[0]=[ge('
Help

Answers to the questions that come up most.

If something's missing, write to us \u2014 report a bug on GitHub.

',1),s("div",{class:"paper-faq-body"},[s("aside",{class:"paper-faq-toc"},[s("div",{class:"paper-faq-toc-head"},"Contents"),s("nav",null,[s("a",{href:"#faq-general"},"General"),s("a",{href:"#faq-features"},"Features"),s("a",{href:"#faq-limitations"},"Limitations"),s("a",{href:"#faq-privacy"},"Privacy & Security"),s("a",{href:"#faq-hosting"},"Self-Hosting")])]),s("section",{class:"faq-section","aria-label":"FAQs"},[s("div",null,[m(" General "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-info-circle mr-2"}),y("General ")]),s("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"false","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),s("div",{id:"whatIs",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingWhatIs"},[s("div",{class:"panel-body p-3"},[s("p",null," Anonymous GitHub is a free, open-source tool that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information \u2014 such as the repository owner, organization name, and custom terms \u2014 so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),s("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[s("div",{class:"panel-body p-3"},[s("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),s("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[s("div",{class:"panel-body p-3"},[s("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix \u2014 not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),s("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[s("div",{class:"panel-body p-3"},[s("p",null,[y(" Anonymous GitHub is completely free to use. However, the server costs hundreds of dollars per year to maintain. If you find the service useful, a small donation would be greatly appreciated. You can support the project by "),s("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank"},"sponsoring on GitHub"),y(", donating through "),s("a",{href:"https://ko-fi.com/tdurieux",target:"_blank"},"Ko-fi"),y(', or by clicking the "Support me" button on the site. ')])])])])]),m(" Features "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-cogs mr-2"}),y("Features ")]),s("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),s("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[s("div",{class:"panel-body p-3"},[s("p",null," Anonymous GitHub can display and render a wide variety of file types: "),s("ul",null,[s("li",null,[s("strong",null,"Text and source code"),y(" \u2014 displayed with syntax highlighting")]),s("li",null,[s("strong",null,"Markdown"),y(" \u2014 rendered as formatted HTML")]),s("li",null,[s("strong",null,"Images"),y(" (PNG, JPG, SVG, etc.) \u2014 displayed inline")]),s("li",null,[s("strong",null,"PDFs"),y(" \u2014 rendered directly in the browser")]),s("li",null,[s("strong",null,"Jupyter Notebooks"),y(" \u2014 rendered with code cells and outputs")])]),s("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),s("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[s("div",{class:"panel-body p-3"},[s("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),s("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[s("div",{class:"panel-body p-3"},[s("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),s("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[s("div",{class:"panel-body p-3"},[s("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),s("ul",null,[s("li",null,[s("strong",null,"Never expire"),y(" \u2014 the anonymized repository remains accessible indefinitely.")]),s("li",null,[s("strong",null,"Redirect to GitHub"),y(" \u2014 after expiration, visitors are redirected to the original GitHub repository.")]),s("li",null,[s("strong",null,"Remove content"),y(" \u2014 after expiration, the anonymized content is deleted from the server.")])])])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),s("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[s("div",{class:"panel-body p-3"},[s("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),s("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[s("div",{class:"panel-body p-3"},[s("p",null," Yes. The anonymized repository tracks the source on GitHub: when you push new commits to the original repository, the anonymized view picks up those changes (cached files are refreshed against GitHub). This means you can keep iterating on the code while reviewers have the link, and you do not need to recreate the anonymized repository every time you update the source. "),s("p",null," A few practical implications worth keeping in mind: "),s("ul",null,[s("li",null," You can safely create the anonymized repository early in the writing process \u2014 later commits will be visible to reviewers without any additional action. "),s("li",null," If you rename files, add new identifiers, or introduce new contributor names after creation, revisit the anonymization options (custom terms, file filters) to make sure the new content is still properly anonymized. "),s("li",null," If the original repository is made private or deleted, the anonymized repository will no longer be able to fetch updated content. ")])])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),s("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[s("div",{class:"panel-body p-3"},[s("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),s("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[s("code",null,`npm install -g @tdurieux/anonymous_github -anonymous_github`)])])])])]),m(" Limitations "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-exclamation-triangle mr-2"}),y("Limitations ")]),s("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),s("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[s("div",{class:"panel-body p-3"},[s("ul",null,[s("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),s("li",null," Files larger than 8 MB are not supported. "),s("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),s("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),m(" Privacy & Security "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-shield-alt mr-2"}),y("Privacy & Security ")]),s("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),s("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[s("div",{class:"panel-body p-3"},[s("p",null," Data stored on Anonymous GitHub is never shared or used for any purpose beyond providing the anonymization service. When a repository is removed or expires, only its configuration is retained \u2014 this makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),s("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[s("div",{class:"panel-body p-3"},[s("p",null," Anonymous GitHub only reads your repositories \u2014 it never pushes commits, opens issues, modifies settings, or deletes anything. From your perspective as a user, the service is read-only. "),s("p",null,[y(" However, GitHub's OAuth scopes do not offer a read-only option for private repositories: the only scope that grants access to private repos is "),s("code",null,"repo"),y(", which is documented as full read/write access. To support users who want to anonymize a private repository, Anonymous GitHub must request that scope, and GitHub then displays the broader permission text at sign-in. The application itself only ever performs read operations against the GitHub API. ")]),s("p",null,[y(" If you only anonymize public repositories, the source code is open and can be audited on the "),s("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),y(", or you can self-host your own instance. ")])])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),s("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[s("div",{class:"panel-body p-3"},[s("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),m(" Self-Hosting "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-server mr-2"}),y("Self-Hosting ")]),s("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),s("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[s("div",{class:"panel-body p-3"},[s("p",null,[y(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),s("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),y(". ")]),s("p",null," The basic steps are: "),s("ol",null,[s("li",null,"Clone the repository and install dependencies"),s("li",null,[y("Create a "),s("code",null,".env"),y(" file with your GitHub token, OAuth client ID, and client secret")]),s("li",null,[y("Run "),s("code",null,"docker-compose up -d")])])])])])]),s("div",{class:"text-center mt-5 mb-5 p-4",style:{"background-color":"var(--hover-bg-color)","border-radius":"8px"}},[s("p",{class:"mb-2",style:{"font-size":"1.1rem"}}," Still have questions? "),s("p",{class:"text-muted mb-0"},[y(" Open an issue on the "),s("a",{href:"https://github.com/tdurieux/anonymous_github/issues",target:"_blank"},"GitHub repository"),y(" and we'll be happy to help. ")])])])])],-1)])])}var zT={class:"pr-page"},HT={class:"container paper-page pr-page-inner"},BT={class:"pr-header"},GT={class:"paper-page-title pr-title"},jT=["textContent"],WT={key:1,class:"text-muted"},KT=["href"],YT={class:"pr-header-meta"},JT={key:0,class:"pr-meta-item"},QT=["textContent"],XT={key:1,class:"pr-meta-item"},xT=["textContent"],ZT={key:2,class:"pr-meta-item"},eO=["textContent"],tO={key:0,class:"paper-tabs",role:"tablist"},sO=["textContent"],nO=["textContent"],oO={class:"paper-tab-content"},rO={key:0},iO={class:"pr-comments"},aO={class:"pr-comment"},lO={class:"pr-comment-head"},dO=["textContent"],uO={key:0,class:"pr-comment-date"},cO={key:0,class:"paper-table-empty"},pO={key:1},fO={class:"pr-comments"},mO={class:"pr-comment"},hO={class:"pr-comment-head"},vO={key:0,class:"pr-comment-author"},yO=["textContent"],gO=["textContent"],bO={key:0,class:"pr-comment-body"},wO={key:0,class:"paper-table-empty"};function dl(e,t){let o=et("gist-file"),r=et("markdown");return l(),d("div",zT,[s("div",HT,[t[15]||(t[15]=s("div",{class:"paper-crumbs"},[s("a",{href:"/dashboard"},"Reviewer"),y(" \xA0/\xA0 "),s("span",{class:"here"},"Gist")],-1)),s("header",BT,[s("h1",GT,[e.details?.description?(l(),d("span",{key:0,textContent:c(e.details?.description)},null,8,jT)):m("v-if",!0),e.details?.description?m("v-if",!0):(l(),d("span",WT,"Untitled gist")),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:2,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[2]||(t[2]=[s("i",{class:"far fa-edit"},null,-1),s("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,KT)):m("v-if",!0)]),s("div",YT,[s("span",{class:O(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},c(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(l(),d("span",JT,[t[3]||(t[3]=s("i",{class:"far fa-user"},null,-1)),t[4]||(t[4]=y(" @",-1)),s("span",{textContent:c(e.details?.ownerLogin)},null,8,QT)])):m("v-if",!0),e.details?.updatedDate?(l(),d("span",XT,[t[5]||(t[5]=s("i",{class:"far fa-clock"},null,-1)),t[6]||(t[6]=y()),s("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,xT)])):m("v-if",!0),e.details?.anonymizeDate?(l(),d("span",ZT,[t[7]||(t[7]=s("i",{class:"fas fa-user-secret"},null,-1)),t[8]||(t[8]=y(" Anonymized ",-1)),s("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,eO)])):m("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(l(),d("nav",tO,[e.details?.files?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",onClick:t[0]||(t[0]=n=>e.tabState.active="files")},[t[9]||(t[9]=s("i",{class:"fas fa-file-code"},null,-1)),s("span",{textContent:c(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,sO)],2)):m("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",onClick:t[1]||(t[1]=n=>e.tabState.active="comments")},[t[10]||(t[10]=s("i",{class:"far fa-comment-dots"},null,-1)),s("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,nO)],2)):m("v-if",!0)])):m("v-if",!0),s("div",oO,[e.details?.files&&e.tabState?.active=="files"?(l(),d("div",rO,[s("ul",iO,[(l(!0),d(Y,null,oe(e.details?.files,(n,i)=>(l(),d("li",aO,[s("div",lO,[s("strong",{textContent:c(n?.filename)},null,8,dO),n?.language?(l(),d("span",uO,c(n?.language),1)):m("v-if",!0)]),De(o,{file:n},null,8,["file"])]))),256)),e.details?.files?.length?m("v-if",!0):(l(),d("li",cO,[...t[11]||(t[11]=[s("i",{class:"fas fa-file"},null,-1),s("span",null,"No files in this gist.",-1)])]))])])):m("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",pO,[s("ul",fO,[(l(!0),d(Y,null,oe(e.details?.comments,(n,i)=>(l(),d("li",mO,[s("div",hO,[n?.author?(l(),d("span",vO,[t[12]||(t[12]=s("i",{class:"far fa-user"},null,-1)),t[13]||(t[13]=y(" @",-1)),s("span",{textContent:c(n?.author)},null,8,yO)])):m("v-if",!0),n?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(n?.updatedDate))},null,8,gO)):m("v-if",!0)]),n?.body?(l(),d("div",bO,[De(r,{content:n?.body},null,8,["content"])])):m("v-if",!0)]))),256)),e.details?.comments?.length?m("v-if",!0):(l(),d("li",wO,[...t[14]||(t[14]=[s("i",{class:"far fa-comment-dots"},null,-1),s("span",null,"No comments on this gist.",-1)])]))])])):m("v-if",!0)])])])}var kO={class:"collapse navbar-collapse",id:"navbarSupportedContent"},_O={class:"navbar-nav mr-auto smooth-scroll"},EO={key:0,class:"nav-item"},CO={key:1,class:"nav-item"},NO={key:2,class:"nav-item"},SO={key:3,class:"nav-item"},DO={class:"nav-item"},RO={key:4,class:"nav-item"},TO={class:"navbar-nav"},OO={key:0,class:"nav-item"},AO={key:1,class:"nav-item"},IO={key:2,class:"nav-item"},VO={key:3,class:"nav-item dropdown user-chip-wrap"},PO={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},qO=["src"],MO={class:"user-chip-name"},$O={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},LO={class:"dropdown-header"},FO=["innerHTML"];function ul(e,t){return l(),d(Y,null,[s("nav",{class:O(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[13]||(t[13]=s("a",{class:"navbar-brand",href:"/"},[y("Anonymous "),s("em",null,"GitHub")],-1)),t[14]||(t[14]=s("button",{class:"navbar-toggler",type:"button","data-toggle":"collapse","data-target":"#navbarSupportedContent","aria-controls":"navbarSupportedContent","aria-expanded":"false","aria-label":"Toggle navigation"},[s("span",{class:"navbar-toggler-icon"})],-1)),s("div",kO,[s("ul",_O,[e.user?m("v-if",!0):(l(),d("li",EO,[s("a",{class:O(["nav-link",{active:e.path=="/"}]),href:"/"}," Home ",2)])),e.user?(l(),d("li",CO,[s("a",{class:O(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[2]||(t[2]=[s("i",{class:"fas fa-th-large d-lg-none mr-1"},null,-1),y(" My work ",-1)])],2)])):m("v-if",!0),e.user?(l(),d("li",NO,[s("a",{class:O(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[3]||(t[3]=[s("i",{class:"fas fa-user-secret d-lg-none mr-1"},null,-1),y(" Anonymize ",-1)])],2)])):m("v-if",!0),e.user?(l(),d("li",SO,[s("a",{class:O(["nav-link",{active:e.path=="/conferences"}]),href:"/conferences"},[...t[4]||(t[4]=[s("i",{class:"fas fa-chalkboard-teacher d-lg-none mr-1"},null,-1),y(" Conferences ",-1)])],2)])):m("v-if",!0),s("li",DO,[s("a",{class:O(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[5]||(t[5]=[s("i",{class:"fas fa-question-circle d-lg-none mr-1"},null,-1),y("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(l(),d("li",RO,[s("a",{class:O(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[6]||(t[6]=[s("i",{class:"fas fa-cog d-lg-none mr-1"},null,-1),y(" Admin ",-1)])],2)])):m("v-if",!0)]),s("ul",TO,[t[11]||(t[11]=s("li",{class:"nav-item"},[s("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[s("i",{class:"fab fa-github","aria-hidden":"true"})])],-1)),m(` "Report a bug" is about this service. Reviewers who land on an +`)}else typeof K=="number"||typeof K=="boolean"?pe=String(K):pe=JSON.stringify(K);x.push(`${te}${pe}${re}`)}),x.push("}"),x.join(` +`)}function h(N){let R=[],I="",C=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,A=0,q;for(;q=C.exec(N);)I+=N.slice(A,q.index),A=C.lastIndex,R.push({key:q[1],op:q[2]||"=",val:q[3]});return I+=N.slice(A),{filters:R,free:I.trim().toLowerCase()}}function y(N,R){for(let I of R.filters){let C=(q,x,X)=>{let K=parseFloat(q),U=parseFloat(x);return X==="="?String(q)===String(x):X==="!="?String(q)!==String(x):X===">="?K>=U:X==="<="?K<=U:X===">"?K>U:X==="<"?KR&&A._bucket!==R?!1:y(A,N)),C=e.query.group;if(C){let A=X=>C==="module"?X.module:X.displayMessage||X.message||"_",q=new Map;for(let X of I){let K=A(X);if(q.has(K)){let U=q.get(K);U.count++,U._related.push(X),new Date(X.ts)>new Date(U.ts)&&(U.ts=X.ts,U._url=X._url,U._status=X._status),new Date(X.ts)new Date(K.ts).getTime()>=x).length;I=Array.from(q.values())}else I=I.map((A,q)=>(A._key="row:"+q+":"+A.ts,A._related=[A],A._firstSeen=A.ts,A._lastHourCount=0,A.count=1,A));e.query.sort==="count"?I.sort((A,q)=>q.count-A.count||new Date(q.ts)-new Date(A.ts)):I.sort((A,q)=>new Date(q.ts)-new Date(A.ts)),e.visible=I}function m(N){let R=N?e.entries.length:0,I=N?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:R,limit:I}}).then(C=>{let A=(C.data.entries||[]).map(u);e.entries=N?e.entries.concat(A):A,e.available=!!C.data.available,e.cap=C.data.max||e.cap,e.total=C.data.total||e.entries.length,g()},C=>console.error(C))}e.loadMore=()=>m(!0),e.canLoadMore=()=>e.entries.length{let R=N.data||{},I=R.prev24h?Math.round((R.last24h-R.prev24h)/R.prev24h*100):0;e.stats={last24h:R.last24h||0,prev24h:R.prev24h||0,delta:I,severity:R.severity||{error:0,warn:0,info:0},unique:R.unique||{error:0,warn:0,info:0},buckets:R.buckets||[],dropped:R.dropped||0}},N=>console.error(N))}function k(){m(),w()}e.barPx=(N,R)=>{let I=e.stats.buckets||[],C=0;for(let X of I)C=Math.max(C,(X.error||0)+(X.warn||0)+(X.info||0));if(!C)return 0;let A=(N.error||0)+(N.warn||0)+(N.info||0);if(!A)return 0;let q=Math.round(A/C*60),x=N[R]||0;return Math.round(x/A*q)},e.bucketTitle=N=>`${new Date(N.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${N.error||0} err \xB7 ${N.warn||0} warn \xB7 ${N.info||0} info`,e.toggle=N=>{e.expanded[N._key]=!e.expanded[N._key]},e.setBucket=N=>{e.query.bucket=N},e.refreshNow=k,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(k,N=>console.error(N))},e.exportCsv=()=>{let N=["ts","level","module","displayMessage","_status","_url","_repoId"],R=[N.join(",")];for(let q of e.visible)R.push(N.map(x=>{let X=q[x]==null?"":String(q[x]);return/[",\n]/.test(X)?`"${X.replace(/"/g,'""')}"`:X}).join(","));let I=new Blob([R.join(` +`)],{type:"text/csv;charset=utf-8"}),C=URL.createObjectURL(I),A=document.createElement("a");A.href=C,A.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(A),A.click(),document.body.removeChild(A),URL.revokeObjectURL(C)};function b(N){e.copyHint=`${N} copied`,n.timeout(()=>{e.copyHint=""},1500)}e.copyJson=N=>{navigator.clipboard.writeText(N._detailJson).then(()=>b("JSON"))},e.copyCurl=N=>{if(!N._url)return;let I=`curl -X ${N._method||"GET"} '${window.location.origin}${N._url}'`;navigator.clipboard.writeText(I).then(()=>b("curl"))},k();let T=r(()=>{e.query.autoRefresh&&k()},15e3);e.on("dispose",()=>r.cancel(T)),e.watch("query.search",g),e.watch("query.bucket",g),e.watch("query.sort",g),e.watch("query.group",g)},Ba=function(e,t,o,r){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null){o.url("/");return}e.data=null,e.loading=!0,e.error=null;function n(m){if(m==null)return"\u2014";for(var w=["B","KB","MB","GB","TB"],k=0,b=m;b>=1024&&k0?1:0)+" "+w[k]}e.humanBytes=n;function i(m){if(!m)return"\u2014";var w=Math.floor(m/86400),k=Math.floor(m%86400/3600),b=Math.floor(m%3600/60);return w>0?w+"d "+(k<10?"0":"")+k+"h":k>0?k+"h "+(b<10?"0":"")+b+"m":b+"m"}e.humanDuration=i;function a(m){return m==null?"\u2014":m>=1e6?(m/1e6).toFixed(1)+"M":m>=1e3?(m/1e3).toFixed(1)+"K":String(m)}e.humanNum=a,e.queueTotal=function(m){return m?(m.waiting||0)+(m.active||0)+(m.delayed||0)+(m.failed||0):0},e.statusCount=function(m){if(!e.data||!e.data.repos)return 0;for(var w=e.data.repos.statusBreakdown||[],k=0;kh[k])&&(h[k]=w[k])})})},function(m){e.loading=!1,e.error=m.data&&m.data.error||"Failed to load overview"})}y();var g=r(y,3e4);e.on("dispose",function(){r.cancel(g)})};var Ga=[{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ma(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>Ta(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Oa(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Yn(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Yn(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Yn(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Aa(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Pa(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Jo(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Jo(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>qa(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Sa(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Da(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ra(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ia(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Va(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>Yo(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>Yo(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ba(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>$a(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>La(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Fa(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ua(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>za(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ha(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var zc={class:"container paper-page connections-page"},Hc={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Bc={key:1,role:"status"},Gc=["disabled"],jc={key:3},Wc={class:"connections-grid"},Kc={key:0},Yc={class:"connection-title"},Jc={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Qc={class:"connection-actions"},Xc={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},Zc={key:1,class:"connection-installations"},xc={key:0},ep=["href"],tp={class:"sr-only"},sp=["disabled"],np={class:"connection-title"},op={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},rp={key:1,class:"connection-revoke"},ip={key:0},ap=["disabled"],lp={class:"connection-resources"},dp={class:"connection-title"},up={class:"connection-count"},cp={key:0,class:"connection-empty"},pp={class:"connection-resource-name"},fp={key:0,class:"connection-resource-actions"},mp=["disabled","onClick"],hp=["disabled","onClick"],vp={key:1,class:"connection-help",role:"status"},yp=["disabled","onClick"];function ja(e,t){return l(),d("div",zc,[t[20]||(t[20]=ge('
My work / GitHub connections

GitHub connections

Manage how GitHub shares your code. Your anonymizations and URLs stay the same.

',2)),e.connectionError?(l(),d("p",Hc,c(e.connectionError),1)):f("v-if",!0),!e.connections&&!e.connectionError?(l(),d("p",Bc,"Loading your connections\u2026")):f("v-if",!0),!e.connections&&e.connectionError?(l(),d("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=o=>e.loadConnections())},"Try again",8,Gc)):f("v-if",!0),e.connections?(l(),d("div",jc,[s("div",Wc,[e.connections.appEnabled?(l(),d("section",Kc,[t[8]||(t[8]=s("div",{class:"connection-top"},[s("i",{class:"fab fa-github","aria-hidden":"true"}),s("span",{class:"connection-badge"},"Recommended")],-1)),s("div",Yc,[t[3]||(t[3]=s("h2",null,"GitHub App",-1)),s("span",{class:O(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},c(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[9]||(t[9]=s("p",null,"Read-only access to the repositories you choose.",-1)),e.connections.appError?(l(),d("p",Jc,c(e.connections.appError)+". Reconnect to restore access.",1)):f("v-if",!0),s("div",Qc,[e.connections.appConnected&&!e.connections.appError?(l(),d("a",Xc,[...t[4]||(t[4]=[v("Manage repository access ",-1),s("i",{class:"fas fa-external-link-alt","aria-hidden":"true"},null,-1)])])):f("v-if",!0),s("a",{class:O(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},c(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3)]),t[10]||(t[10]=s("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(l(),d("ul",Zc,[(l(!0),d(Y,null,oe(e.connections.installations,o=>(l(),d("li",{key:o.id},[s("div",null,[s("strong",null,c(o.account),1),o.suspended?(l(),d("span",xc," \xB7 Suspended")):f("v-if",!0)]),s("a",{target:"_self",href:"/github/app/install?installationId="+o.id},[t[5]||(t[5]=v("Manage access ",-1)),s("span",tp,"for "+c(o.account),1),t[6]||(t[6]=v(" \u2192",-1))],8,ep)]))),128))])):f("v-if",!0),s("button",{class:"connection-link",disabled:e.busy,onClick:t[1]||(t[1]=o=>e.loadConnections())},[...t[7]||(t[7]=[s("i",{class:"fas fa-sync-alt","aria-hidden":"true"},null,-1),v(" Refresh access",-1)])],8,sp)])):f("v-if",!0),s("section",null,[t[13]||(t[13]=s("div",{class:"connection-top"},[s("i",{class:"fas fa-key","aria-hidden":"true"}),s("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),s("div",np,[t[11]||(t[11]=s("h2",null,"GitHub OAuth",-1)),s("span",{class:O(["connection-status",{"is-connected":e.connections.oauthConnected}])},c(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[14]||(t[14]=s("p",null,"For existing OAuth anonymizations and gists.",-1)),t[15]||(t[15]=s("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(l(),d("a",op,c(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):f("v-if",!0),e.connections.oauthConnected?(l(),d("div",rp,[e.connections.gistCount?(l(),d("p",ip,c(e.connections.gistCount)+" gist(s) still require OAuth.",1)):f("v-if",!0),t[12]||(t[12]=s("p",null,"Switch all dependent repositories before revoking access. Gists still require OAuth.",-1)),e.connections.appConnected?(l(),d("button",{key:1,class:"connection-link connection-danger",disabled:e.busy||e.connections.gistCount||e.connections.resources.some(o=>o.connection==="oauth"),onClick:t[2]||(t[2]=o=>e.disconnectOAuth())},"Revoke OAuth access",8,ap)):f("v-if",!0)])):f("v-if",!0)])]),s("section",lp,[s("div",dp,[t[16]||(t[16]=s("h2",null,"Repository connections",-1)),s("span",up,c(e.connections.resources?.length||0)+" resources",1)]),t[18]||(t[18]=s("p",null,"Check access, then switch each resource to the GitHub App.",-1)),e.connections.resources?.length?f("v-if",!0):(l(),d("div",cp,[...t[17]||(t[17]=[s("i",{class:"fas fa-code-branch","aria-hidden":"true"},null,-1),s("div",null,[s("h3",null,"No repository connections yet"),s("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),s("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(l(!0),d(Y,null,oe(e.connections.resources,o=>(l(),d("div",{class:"connection-resource",key:o.type+o.id},[s("div",pp,[s("strong",null,c(o.name||o.id),1),s("small",null,c(o.type)+" \xB7 "+c(o.id),1)]),s("span",{class:O(["connection-badge",{"connection-badge-muted":o.connection==="oauth"}])},c(o.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),o.connection==="oauth"&&e.connections.appEnabled&&e.connections.appConnected?(l(),d("div",fp,[s("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:r=>e.changeConnection(o,"github-app",!0)},"Check read-only access",8,mp),o.eligible?(l(),d("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:r=>e.changeConnection(o,"github-app",!1)},"Switch to read-only access",8,hp)):f("v-if",!0),o.eligible===!1?(l(),d("span",vp,"Access unavailable. Allow this repository on GitHub, then check again.")):f("v-if",!0)])):f("v-if",!0),o.connection==="github-app"&&e.connections.oauthConnected?(l(),d("button",{key:1,class:"connection-link",disabled:e.busy,onClick:r=>e.changeConnection(o,"oauth",!1)},"Use OAuth",8,yp)):f("v-if",!0)]))),128)),t[19]||(t[19]=s("p",{class:"connection-footnote"},[s("i",{class:"fas fa-info-circle","aria-hidden":"true"}),v(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):f("v-if",!0)])}var gp={class:"container paper-page auth-page"},bp={class:"auth-layout"},wp={class:"auth-options"},kp={key:0,class:"auth-existing",role:"note"},_p={key:1},Ep={key:2,class:"auth-legacy"},Cp={key:3,role:"status"};function Wa(e,t){return l(),d("div",gp,[t[4]||(t[4]=s("a",{class:"auth-back",href:"/"},[s("i",{class:"fas fa-arrow-left","aria-hidden":"true"}),v(" Anonymous GitHub")],-1)),s("div",bp,[t[3]||(t[3]=ge('
Your research, ready for review

Your code.
Your identity,
protected.
Sign in to GitHub

Sign in to create and manage your anonymizations.

',1)),s("div",wp,[e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("p",kp,[...t[0]||(t[0]=[v("Already have an account? Sign in with ",-1),s("a",{target:"_self",href:"/github/login"},"legacy GitHub OAuth",-1),v(" to keep access to your anonymizations. You can connect the read-only App from GitHub connections after signing in.",-1)])])):f("v-if",!0),e.site_options?.GITHUB_APP_ENABLED?(l(),d("section",_p,[...t[1]||(t[1]=[ge('
Read-only access

Continue with GitHub

Connect through the GitHub App with read-only repository access.

  • You choose which repositories to share
  • No permission to write to your code
Sign in with GitHub Select your repositories after signing in.',6)])])):f("v-if",!0),e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("section",Ep,[...t[2]||(t[2]=[s("div",{class:"connection-title"},[s("h2",null,"Legacy OAuth"),s("span",{class:"connection-badge connection-badge-muted"},"For gists & existing accounts")],-1),s("p",null,"Use this connection for gists or your existing OAuth setup. GitHub's private repository scope includes write access.",-1),s("a",{class:"connection-link",target:"_self",href:"/github/login"},[v("Continue with OAuth "),s("i",{class:"fas fa-arrow-right","aria-hidden":"true"})],-1)])])):f("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(l(),d("p",Cp,"GitHub sign-in is currently unavailable. Please try again later.")):f("v-if",!0)])])])}var Np={class:"paper-empty"};function Ka(e,t){return l(),d("div",Np,[...t[0]||(t[0]=[ge('
Error \xB7 404

This link
isn\u2019t here.

The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.

',1)])])}var Sp={class:"container paper-page admin-page"},Dp={class:"admin-summary"},Rp={class:"summary-total"},Tp={class:"count"},Op={class:"count"},Ap={class:"count"},Ip={class:"count"},Vp={class:"count"},Pp={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},qp={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},Mp={class:"admin-filter-row"},$p={class:"search-wrap"},Lp={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},Fp={key:0,class:"admin-search-hint"},Up={class:"admin-filter-inline","aria-label":"Pagination"},zp=["disabled"],Hp={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},Bp=["disabled"],Gp={key:0,class:"admin-filter-row"},jp={class:"admin-active-chips"},Wp={class:"key"},Kp=["onClick"],Yp={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},Jp={class:"paper-table-head",role:"row"},Qp={role:"columnheader"},Xp={role:"columnheader"},Zp={role:"columnheader"},xp={class:"paper-table-row",role:"row"},ef={class:"cell-anon",role:"cell"},tf={class:"anon-text"},sf=["textContent","href"],nf={class:"anon-sub"},of={class:"cell-status",role:"cell"},rf=["textContent"],af={class:"cell-views num",role:"cell"},lf=["textContent","href"],df={class:"cell-expires",role:"cell"},uf={class:"cell-actions",role:"cell"},cf={class:"dropdown"},pf={class:"dropdown-menu dropdown-menu-right"},ff=["href"],mf=["href"],hf=["href"],vf=["onClick"],yf={key:0,class:"paper-table-empty"},gf={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},bf={style:{"font-size":"12px",color:"var(--ink-muted)"}},wf={key:0,class:"pagination-compact"},kf=["disabled"],_f=["max"],Ef=["disabled"],Cf={class:"admin-filter-inline"},Nf={class:"form-control form-control-sm"};function Ya(e,t){let o=we("field"),r=we("form");return l(),d("div",Sp,[t[42]||(t[42]=ge('
Admin \xA0/\xA0 Conferences

Conferences

',3)),s("div",Dp,[s("span",Rp,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),s("span",{class:O(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=n=>{e.query.ready=!e.query.ready,e.query.page=1})},[t[13]||(t[13]=v("Ready ",-1)),s("span",Tp,c(e.fmt?.number(e.statusCountFor("ready"))),1)],2),s("span",{class:O(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=n=>{e.query.preparing=!e.query.preparing,e.query.page=1})},[t[14]||(t[14]=v("Preparing ",-1)),s("span",Op,c(e.fmt?.number(e.statusCountFor("preparing"))),1)],2),s("span",{class:O(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=n=>{e.query.error=!e.query.error,e.query.page=1})},[t[15]||(t[15]=v("Errored ",-1)),s("span",Ap,c(e.fmt?.number(e.statusCountFor("error"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=n=>{e.query.expired=!e.query.expired,e.query.page=1})},[t[16]||(t[16]=v("Expired ",-1)),s("span",Ip,c(e.fmt?.number(e.statusCountFor("expired"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=n=>{e.query.removed=!e.query.removed,e.query.page=1})},[t[17]||(t[17]=v("Removed ",-1)),s("span",Vp,c(e.fmt?.number(e.statusCountFor("removed"))),1)],2)]),e.fetchError?(l(),d("div",Pp,[t[18]||(t[18]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),v(" "+c(e.fetchError),1)])):f("v-if",!0),E((l(),d("form",qp,[s("div",Mp,[s("div",$p,[E(s("input",Lp,null,512),[[o,{state:e.viewState,set:n=>{e.query.search=n},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(l(),d("span",Fp,"/"))]),t[22]||(t[22]=s("span",{class:"admin-filter-spacer"},null,-1)),s("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=n=>e.exportCsv())},[...t[19]||(t[19]=[s("i",{class:"fas fa-file-csv"},null,-1),v(" Export",-1)])]),s("span",Up,[s("button",{class:"btn btn-sm",type:"button",onClick:t[6]||(t[6]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[20]||(t[20]=[s("i",{class:"fas fa-chevron-left"},null,-1)])],8,zp),s("span",Hp,c(e.query?.page)+"/"+c(e.totalPage||1),1),s("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[21]||(t[21]=[s("i",{class:"fas fa-chevron-right"},null,-1)])],8,Bp)])]),e.chips?.length?(l(),d("div",Gp,[s("div",jp,[(l(!0),d(Y,null,oe(e.chips,(n,i)=>(l(),d("span",{class:"admin-active-chip",key:n?.key},[s("span",Wp,c(n?.label),1),s("span",null,c(n?.value),1),s("button",{type:"button",onClick:a=>e.clearFilter(n.key)},[...t[23]||(t[23]=[s("i",{class:"fas fa-times"},null,-1)])],8,Kp)]))),128))])])):f("v-if",!0)])),[[r,e.viewState]]),s("div",Yp,[s("div",Jp,[s("div",Qp,[s("span",{class:O(["sortable",{active:e.query?.sort=="name"}]),onClick:t[8]||(t[8]=n=>e.sortBy("name"))},[t[24]||(t[24]=v("Conference ",-1)),s("i",{class:O(["fas",e.sortIcon("name")])},null,2)],2)]),s("div",Xp,[s("span",{class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[9]||(t[9]=n=>e.sortBy("status"))},[t[25]||(t[25]=v("Status ",-1)),s("i",{class:O(["fas",e.sortIcon("status")])},null,2)],2)]),t[27]||(t[27]=s("div",{role:"columnheader",class:"num"},"Repos",-1)),s("div",Zp,[s("span",{class:O(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[10]||(t[10]=n=>e.sortBy("startDate"))},[t[26]||(t[26]=v("Window ",-1)),s("i",{class:O(["fas",e.sortIcon("startDate")])},null,2)],2)]),t[28]||(t[28]=s("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(Y,null,oe(e.filteredConferences,(n,i)=>(l(),d("div",xp,[s("div",ef,[t[30]||(t[30]=s("span",{class:"type-badge type-repo"},"Conf",-1)),s("div",tf,[s("a",{class:"repo-name",textContent:c(n?.name),href:e.safeUrl("/conference/"+n?.conferenceID)},null,8,sf),s("div",nf,[s("span",null,c(n?.conferenceID),1),t[29]||(t[29]=v("\xA0\xB7\xA0",-1)),s("span",null,c(e.fmt?.number(n?.price||0))+" \u20AC",1)])])]),s("div",of,[s("span",{class:O(["status-dot",{"status-removed":n?.status=="removed"||n?.status=="expired","status-ready":n?.status=="ready","status-error":n?.status=="error","status-preparing":n?.status=="preparing"}])},null,2),s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,rf)]),s("div",af,[s("a",{title:"Show repositories in this conference",textContent:c(e.fmt?.number(n?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+n?.conferenceID)},null,8,lf)]),s("div",df,c(e.fmt?.date(n?.startDate))+" \u2013 "+c(e.fmt?.date(n?.endDate)),1),s("div",uf,[s("div",cf,[t[36]||(t[36]=s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"})],-1)),s("div",pf,[s("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+n?.conferenceID+"/edit")},[...t[31]||(t[31]=[s("i",{class:"far fa-edit"},null,-1),v(" Edit",-1)])],8,ff),s("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+n?.conferenceID+"/")},[...t[32]||(t[32]=[s("i",{class:"fa fa-eye"},null,-1),v(" View",-1)])],8,mf),s("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+n?.conferenceID)},[...t[33]||(t[33]=[s("i",{class:"fas fa-code-branch"},null,-1),v(" View repositories",-1)])],8,hf),t[35]||(t[35]=s("div",{class:"dropdown-divider"},null,-1)),E(s("a",{class:"dropdown-item text-danger",href:"#",onClick:ke(a=>e.removeConference(n),["prevent"])},[...t[34]||(t[34]=[s("i",{class:"fas fa-trash-alt"},null,-1),v(" Remove",-1)])],8,vf),[[G,n?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(l(),d("div",yf,[...t[37]||(t[37]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No conferences match the current filters.",-1)])])):f("v-if",!0)]),s("div",gf,[s("span",bf,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",wf,[s("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[38]||(t[38]=[s("i",{class:"fas fa-chevron-left"},null,-1),v(" Previous",-1)])],8,kf),E(s("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,_f),[[o,{state:e.viewState,set:n=>{e.query.page=n},value:e.query?.page,form:null,options:{}}]]),s("span",null,"of "+c(e.totalPage),1),s("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[39]||(t[39]=[v("Next ",-1),s("i",{class:"fas fa-chevron-right"},null,-1)])],8,Ef)])):f("v-if",!0),s("span",Cf,[t[41]||(t[41]=s("label",null,"Per page",-1)),E((l(),d("select",Nf,[...t[40]||(t[40]=[ge('',5)])])),[[o,{state:e.viewState,set:n=>{e.query.limit=n},value:e.query?.limit,form:null,options:{}}]])])])])}var Sf={class:"container paper-page admin-page errors-page"},Df={class:"errors-header"},Rf={class:"errors-actions"},Tf={class:"kpi-grid"},Of={class:"kpi-card"},Af={class:"kpi-value"},If={key:0},Vf={key:1},Pf={class:"kpi-card kpi-error"},qf={class:"kpi-value"},Mf={class:"kpi-sub"},$f={class:"kpi-card kpi-warn"},Lf={class:"kpi-value"},Ff={class:"kpi-sub"},Uf={class:"kpi-card kpi-info"},zf={class:"kpi-value"},Hf={class:"kpi-sub"},Bf={class:"kpi-value"},Gf={class:"kpi-sub"},jf={key:0,class:"dropped-warn"},Wf={class:"volume-chart"},Kf={class:"volume-bars"},Yf=["title"],Jf={class:"errors-toolbar","aria-label":"Error filters"},Qf={class:"seg-tabs"},Xf={class:"search-wrap"},Zf={type:"search",class:"form-control",placeholder:"code:repo_not_found module:route status:>=400",autocomplete:"off"},xf={key:0,class:"filter-count"},em={class:"select-wrap"},tm={class:"form-control form-control-sm"},sm={class:"select-wrap"},nm={class:"form-control form-control-sm"},om={class:"autoref"},rm={type:"checkbox"},im={key:0,class:"admin-empty"},am={key:1,class:"errors-pager"},lm={key:2,class:"errors-list"},dm=["onClick"],um={class:"col-when"},cm={class:"when-rel"},pm={class:"when-abs"},fm={class:"col-sev"},mm={class:"sev-label"},hm={class:"col-mod"},vm={class:"pill pill-module"},ym={class:"col-msg"},gm={class:"msg-code"},bm={key:0,class:"msg-context"},wm={key:1,class:"msg-detail"},km={key:2,class:"msg-url"},_m={class:"col-count"},Em={key:0,class:"count-pill"},Cm={key:1,class:"count-pill count-pill-muted"},Nm={class:"col-status"},Sm={key:0,class:"errors-row-detail"},Dm={class:"detail-tabs"},Rm=["onClick"],Tm=["onClick"],Om=["onClick"],Am={class:"detail-body"},Im={class:"detail-main"},Vm={key:0},Pm={key:1,class:"stack-pre"},qm={key:2,class:"related-list"},Mm={class:"when-abs"},$m={class:"msg-url"},Lm={class:"detail-actions"},Fm=["onClick"],Um=["onClick"],zm={key:0,class:"copy-hint"},Hm={class:"detail-aside"},Bm={class:"aside-block"},Gm=["title"],jm={class:"aside-block"},Wm=["title"],Km={class:"aside-block"},Ym={class:"aside-value"},Jm={key:0,class:"aside-sub"},Qm={key:0,class:"aside-block"},Xm=["href"],Zm={key:1,class:"aside-block"},xm={class:"aside-value mono"};function Ja(e,t){let o=we("field"),r=we("form");return l(),d("div",Sf,[t[32]||(t[32]=s("div",{class:"paper-crumbs"},[v("Admin \xA0/\xA0 "),s("span",{class:"here"},"Errors")],-1)),s("header",Df,[t[10]||(t[10]=s("h1",{class:"paper-page-title"},"Errors",-1)),s("div",Rf,[s("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=n=>e.exportCsv())},[...t[8]||(t[8]=[s("i",{class:"fas fa-file-export"},null,-1),v(" Export CSV",-1)])]),s("button",{class:"btn btn-sm btn-danger",type:"button",onClick:t[1]||(t[1]=n=>e.clearAll())},[...t[9]||(t[9]=[s("i",{class:"fas fa-trash"},null,-1),v(" Clear all",-1)])])])]),t[33]||(t[33]=ge('',1)),s("section",Tf,[s("div",Of,[t[11]||(t[11]=s("div",{class:"kpi-label"},"Last 24h",-1)),s("div",Af,c(e.stats?.last24h),1),s("div",{class:O(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h?(l(),d("span",If,c(e.stats?.delta>0?"+":"")+c(e.stats?.delta)+"% vs yesterday",1)):f("v-if",!0),e.stats?.prev24h?f("v-if",!0):(l(),d("span",Vf,"no prior baseline"))],2)]),s("div",Pf,[t[12]||(t[12]=s("div",{class:"kpi-label"},"Errors (5xx)",-1)),s("div",qf,c(e.stats?.severity?.error),1),s("div",Mf,c(e.stats?.unique?.error)+" unique",1)]),s("div",$f,[t[13]||(t[13]=s("div",{class:"kpi-label"},"Warnings (4xx)",-1)),s("div",Lf,c(e.stats?.severity?.warn),1),s("div",Ff,c(e.stats?.unique?.warn)+" unique",1)]),s("div",Uf,[t[14]||(t[14]=s("div",{class:"kpi-label"},"Info (auth, 404)",-1)),s("div",zf,c(e.stats?.severity?.info),1),s("div",Hf,c(e.stats?.unique?.info)+" unique",1)]),s("div",{class:O(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[15]||(t[15]=s("div",{class:"kpi-label"},"Captured",-1)),s("div",Bf,c(e.total),1),s("div",Gf,[v(" cap "+c(e.cap)+" \xB7 "+c(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(l(),d("span",jf," \xB7 "+c(e.stats?.dropped)+" dropped",1)):f("v-if",!0)])],2)]),s("section",Wf,[t[16]||(t[16]=ge('
Volume \xB7 24h \xB7 1h bucketserror warn info
',1)),s("div",Kf,[(l(!0),d(Y,null,oe(e.stats?.buckets,(n,i)=>(l(),d("div",{class:"volume-bar",key:i,title:e.bucketTitle(n)},[s("span",{class:"seg seg-error",style:Ve({height:e.barPx(n,"error")+"px"})},null,4),s("span",{class:"seg seg-warn",style:Ve({height:e.barPx(n,"warn")+"px"})},null,4),s("span",{class:"seg seg-info",style:Ve({height:e.barPx(n,"info")+"px"})},null,4)],8,Yf))),128))])]),E((l(),d("form",Jf,[s("div",Qf,[s("button",{type:"button",class:O({active:e.query?.bucket===""}),onClick:t[2]||(t[2]=n=>e.setBucket(""))},"All",2),s("button",{type:"button",class:O({active:e.query?.bucket==="error"}),onClick:t[3]||(t[3]=n=>e.setBucket("error"))},"5xx",2),s("button",{type:"button",class:O({active:e.query?.bucket==="warn"}),onClick:t[4]||(t[4]=n=>e.setBucket("warn"))},"4xx",2),s("button",{type:"button",class:O({active:e.query?.bucket==="info"}),onClick:t[5]||(t[5]=n=>e.setBucket("info"))},"Info",2)]),s("div",Xf,[t[17]||(t[17]=s("i",{class:"fas fa-search search-icon"},null,-1)),E(s("input",Zf,null,512),[[o,{state:e.viewState,set:n=>{e.query.search=n},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(l(),d("span",xf,c(e.parsedFilterCount)+" filter"+c(e.parsedFilterCount>1?"s":""),1)):f("v-if",!0)]),s("div",em,[t[19]||(t[19]=s("label",null,"Sort",-1)),E((l(),d("select",tm,[...t[18]||(t[18]=[s("option",{value:"recent"},"Most recent",-1),s("option",{value:"count"},"Most frequent",-1)])])),[[o,{state:e.viewState,set:n=>{e.query.sort=n},value:e.query?.sort,form:null,options:{}}]])]),s("div",sm,[t[21]||(t[21]=s("label",null,"Group",-1)),E((l(),d("select",nm,[...t[20]||(t[20]=[s("option",{value:""},"Off",-1),s("option",{value:"code"},"By code",-1),s("option",{value:"module"},"By module",-1)])])),[[o,{state:e.viewState,set:n=>{e.query.group=n},value:e.query?.group,form:null,options:{}}]])]),s("label",om,[E(s("input",rm,null,512),[[o,{state:e.viewState,set:n=>{e.query.autoRefresh=n},value:e.query?.autoRefresh,form:null,options:{}}]]),t[22]||(t[22]=v(" Auto-refresh ",-1))]),s("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[6]||(t[6]=n=>e.refreshNow())},[...t[23]||(t[23]=[s("i",{class:"fas fa-sync"},null,-1)])])])),[[r,e.viewState]]),e.visible?.length?f("v-if",!0):(l(),d("div",im,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(l(),d("div",am,[s("span",null,"Showing "+c(e.entries?.length)+" of "+c(e.total)+" captured",1),s("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=n=>e.loadMore())},"Load older")])):f("v-if",!0),e.visible?.length?(l(),d("div",lm,[t[31]||(t[31]=ge('
WhenSeverityModuleMessageCountStatus
',1)),(l(!0),d(Y,null,oe(e.visible,(n,i)=>(l(),d("div",{class:O(["errors-row",{open:e.expanded[n?._key]}]),key:n?._key},[s("div",{class:"errors-row-main",onClick:a=>e.toggle(n)},[s("div",um,[s("div",cm,c(e.relTime(n?.ts)),1),s("div",pm,c(e.absTimeShort(n?.ts)),1)]),s("div",fm,[s("span",{class:O(["sev-dot","sev-"+n?._bucket])},null,2),s("span",mm,c(e.fmt?.uppercase(n?._bucket)),1)]),s("div",hm,[s("span",vm,c(n?.module),1)]),s("div",ym,[s("strong",gm,c(n?.displayMessage),1),n?.displayContext&&n?.displayContext!==n?.displayMessage?(l(),d("span",bm,c(n?.displayContext),1)):f("v-if",!0),n?._detail?(l(),d("span",wm,c(n?._detail),1)):f("v-if",!0),n?._url?(l(),d("div",km,c(n?._url),1)):f("v-if",!0)]),s("div",_m,[n?.count>1?(l(),d("span",Em,"\xD7"+c(n?.count),1)):f("v-if",!0),n?.count===1?(l(),d("span",Cm,"\xD71")):f("v-if",!0)]),s("div",Nm,[n?._status?(l(),d("span",{key:0,class:O(["status-pill","status-"+n?._bucket])},c(n?._status),3)):f("v-if",!0)])],8,dm),e.expanded[n?._key]?(l(),d("div",Sm,[s("div",Dm,[s("button",{type:"button",class:O({active:e.detailTab[n?._key]==="raw"||!e.detailTab[n?._key]}),onClick:a=>e.detailTab[n._key]="raw"},"Raw",10,Rm),n?._stack?(l(),d("button",{key:0,type:"button",class:O({active:e.detailTab[n?._key]==="stack"}),onClick:a=>e.detailTab[n._key]="stack"},"Stack",10,Tm)):f("v-if",!0),n?.count>1?(l(),d("button",{key:1,type:"button",class:O({active:e.detailTab[n?._key]==="related"}),onClick:a=>e.detailTab[n._key]="related"},"Related ("+c(n?.count)+")",11,Om)):f("v-if",!0)]),s("div",Am,[s("div",Im,[(e.detailTab[n?._key]||"raw")==="raw"?(l(),d("pre",Vm,c(n?._detailJson),1)):f("v-if",!0),e.detailTab[n?._key]==="stack"?(l(),d("pre",Pm,c(n?._stack),1)):f("v-if",!0),e.detailTab[n?._key]==="related"?(l(),d("div",qm,[(l(!0),d(Y,null,oe(n?._related,(a,u)=>(l(),d("div",{class:"related-row",key:u},[s("span",Mm,c(e.absTimeShort(a?.ts)),1),s("span",$m,c(a?._url),1),a?._status?(l(),d("span",{key:0,class:O(["status-pill","status-"+a?._bucket])},c(a?._status),3)):f("v-if",!0)]))),128))])):f("v-if",!0),s("div",Lm,[s("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:a=>e.copyCurl(n)},[...t[24]||(t[24]=[s("i",{class:"fas fa-terminal"},null,-1),v(" Copy curl",-1)])],8,Fm),s("button",{class:"btn btn-sm",type:"button",onClick:a=>e.copyJson(n)},[...t[25]||(t[25]=[s("i",{class:"fas fa-clipboard"},null,-1),v(" Copy JSON",-1)])],8,Um),e.copyHint?(l(),d("span",zm,c(e.copyHint),1)):f("v-if",!0)])]),s("aside",Hm,[s("div",Bm,[t[26]||(t[26]=s("div",{class:"aside-label"},"First seen",-1)),s("div",{class:"aside-value",title:e.absTime(n?._firstSeen)},c(e.relTime(n?._firstSeen)),9,Gm)]),s("div",jm,[t[27]||(t[27]=s("div",{class:"aside-label"},"Last seen",-1)),s("div",{class:"aside-value",title:e.absTime(n?.ts)},c(e.relTime(n?.ts)),9,Wm)]),s("div",Km,[t[28]||(t[28]=s("div",{class:"aside-label"},"Occurrences",-1)),s("div",Ym,[v(c(n?.count),1),n?._lastHourCount?(l(),d("span",Jm," \xB7 "+c(n?._lastHourCount)+" this hour",1)):f("v-if",!0)])]),n?._repoId?(l(),d("div",Qm,[t[29]||(t[29]=s("div",{class:"aside-label"},"Repository",-1)),s("a",{class:"aside-value",href:e.safeUrl("/r/"+n?._repoId)},c(n?._repoId),9,Xm)])):f("v-if",!0),n?._url?(l(),d("div",Zm,[t[30]||(t[30]=s("div",{class:"aside-label"},"URL",-1)),s("div",xm,c(n?._url),1)])):f("v-if",!0)])])])):f("v-if",!0)],2))),128))])):f("v-if",!0)])}var eh={class:"container paper-page admin-page overview-page"},th={key:0,class:"admin-empty"},sh={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},nh={key:2},oh={class:"ov-kpi-row"},rh={class:"ov-kpi-card"},ih={class:"ov-kpi-value"},ah={class:"ov-kpi-sub"},lh={class:"ov-kpi-card"},dh={class:"ov-kpi-sub"},uh={class:"ov-kpi-card"},ch={class:"ov-kpi-sub"},ph={class:"ov-kpi-card"},fh={class:"ov-kpi-sub"},mh={class:"ov-kpi-card"},hh={class:"ov-kpi-value"},vh={class:"ov-kpi-sub"},yh={class:"ov-daily-row"},gh={class:"ov-daily-card"},bh={class:"ov-daily-value"},wh={class:"ov-daily-card"},kh={class:"ov-daily-value"},_h={class:"ov-daily-sub"},Eh={class:"ov-daily-card"},Ch={class:"ov-daily-value"},Nh={class:"ov-chart-row"},Sh={class:"ov-chart-card"},Dh={key:0,class:"ov-spark-bars"},Rh=["data-tip","aria-label"],Th={key:1,class:"ov-spark-x"},Oh={class:"ov-chart-card"},Ah={key:0,class:"ov-spark-bars"},Ih=["data-tip","aria-label"],Vh={key:1,class:"ov-spark-x"},Ph={class:"ov-chart-card"},qh={key:0,class:"ov-spark-bars"},Mh=["data-tip","aria-label"],$h={key:1,class:"ov-spark-x"},Lh={class:"ov-chart-card"},Fh={key:0,class:"ov-spark-bars"},Uh=["data-tip","aria-label"],zh={key:1,class:"ov-spark-x"},Hh={class:"ov-triple-row"},Bh={class:"ov-panel-card"},Gh={class:"ov-panel-head"},jh={class:"ov-panel-meta"},Wh={class:"ov-stacked-bar"},Kh={class:"ov-bar-legend"},Yh={href:"/admin/repositories",class:"ov-legend-item"},Jh={class:"ov-legend-n"},Qh={href:"/admin/repositories",class:"ov-legend-item"},Xh={class:"ov-legend-n"},Zh={href:"/admin/repositories",class:"ov-legend-item"},xh={class:"ov-legend-n"},ev={href:"/admin/repositories",class:"ov-legend-item"},tv={class:"ov-legend-n"},sv={href:"/admin/repositories",class:"ov-legend-item"},nv={class:"ov-legend-n"},ov={class:"ov-panel-card"},rv={class:"ov-panel-head"},iv={class:"ov-panel-meta"},av={class:"ov-error-bars"},lv={class:"ov-ebar-row"},dv={class:"ov-ebar-track"},uv={class:"ov-ebar-n"},cv={class:"ov-ebar-row"},pv={class:"ov-ebar-track"},fv={class:"ov-ebar-n"},mv={class:"ov-ebar-row"},hv={class:"ov-ebar-track"},vv={class:"ov-ebar-n"},yv={key:0,class:"ov-panel-foot"},gv={href:"/admin/errors"},bv={class:"ov-panel-card"},wv={class:"ov-routes-table"},kv={class:"ov-route-row",href:"/admin/queues"},_v={class:"ov-route-n"},Ev={class:"ov-route-n"},Cv={class:"ov-route-row",href:"/admin/queues"},Nv={class:"ov-route-n"},Sv={class:"ov-route-n"},Dv={class:"ov-route-row",href:"/admin/queues"},Rv={class:"ov-route-n"},Tv={class:"ov-route-n"},Ov={class:"ov-services-card"},Av={class:"ov-services-head"},Iv={class:"ov-panel-meta"},Vv={class:"ov-services-grid"},Pv={class:"ov-svc"},qv={class:"ov-svc-info"},Mv={class:"ov-svc-meta"},$v={class:"ov-svc-detail"},Lv={class:"ov-svc"},Fv={class:"ov-svc-info"},Uv={key:0,class:"ov-svc-meta"},zv={key:1,class:"ov-svc-meta"},Hv={class:"ov-svc"},Bv={class:"ov-svc-info"},Gv={key:0,class:"ov-svc-meta"},jv={key:1,class:"ov-svc-meta"},Wv={class:"ov-svc"},Kv={class:"ov-svc-info"},Yv={key:0,class:"ov-svc-meta"},Jv={key:1,class:"ov-svc-meta"},Qv={class:"ov-svc"},Xv={class:"ov-svc-info"},Zv={class:"ov-svc-meta"};function Qa(e,t){return l(),d("div",eh,[t[42]||(t[42]=ge('
Admin \xB7 System Health

Overview

',3)),e.loading?(l(),d("div",th,"Loading overview\u2026")):f("v-if",!0),e.error?(l(),d("div",sh,[t[0]||(t[0]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),v(" "+c(e.error),1)])):f("v-if",!0),e.data?(l(),d("div",nh,[f(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",oh,[s("div",rh,[t[1]||(t[1]=s("div",{class:"ov-kpi-label"},[v("Repositories "),s("span",{class:"ov-dot ov-dot-ok"})],-1)),s("div",ih,c(e.humanNum(e.data?.repos?.total)),1),s("div",ah,"+"+c(e.data?.repos?.newRepos24h)+" \xB7 last 24h",1)]),s("div",lh,[t[2]||(t[2]=s("div",{class:"ov-kpi-label"},"CPU",-1)),s("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>80}])},c(e.data?.system?.cpuPercent)+"%",3),s("div",dh,c(e.data?.system?.cpuCount)+" cores \xB7 load "+c(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)]),s("div",uh,[t[3]||(t[3]=s("div",{class:"ov-kpi-label"},"Memory",-1)),s("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>85}])},c(e.data?.system?.memPercent)+"%",3),s("div",ch,c(e.humanBytes(e.data?.system?.memUsed))+" / "+c(e.humanBytes(e.data?.system?.memTotal)),1)]),s("div",ph,[t[4]||(t[4]=s("div",{class:"ov-kpi-label"},"Disk",-1)),s("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>85}])},c(e.data?.system?.diskPercent)+"%",3),s("div",fh,c(e.humanBytes(e.data?.system?.diskUsed))+" / "+c(e.humanBytes(e.data?.system?.diskTotal))+" \xB7 "+c(e.data?.system?.diskMount),1)]),s("div",mh,[t[5]||(t[5]=s("div",{class:"ov-kpi-label"},"Uptime",-1)),s("div",hh,c(e.humanDuration(e.data?.system?.uptime)),1),s("div",vh,c(e.data?.system?.nodeVersion)+" \xB7 "+c(e.data?.system?.platform),1)])]),f(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",yh,[s("div",gh,[t[6]||(t[6]=s("div",{class:"ov-daily-label"},"New repos today",-1)),s("div",bh,"+"+c(e.fmt?.number(e.data?.daily?.today?.repositories)),1),t[7]||(t[7]=s("div",{class:"ov-daily-sub"},"since yesterday",-1))]),s("div",wh,[t[8]||(t[8]=s("div",{class:"ov-daily-label"},"New users today",-1)),s("div",kh,"+"+c(e.fmt?.number(e.data?.daily?.today?.users)),1),s("div",_h,c(e.fmt?.number(e.data?.users?.total))+" total users",1)]),s("div",Eh,[t[9]||(t[9]=s("div",{class:"ov-daily-label"},"Page views today",-1)),s("div",Ch,"+"+c(e.fmt?.number(e.data?.daily?.today?.pageViews)),1),t[10]||(t[10]=s("div",{class:"ov-daily-sub"},"since yesterday",-1))])]),f(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",Nh,[s("div",Sh,[t[11]||(t[11]=s("div",{class:"ov-chart-head"},[s("span",{class:"ov-chart-title"},"Daily page views \xB7 30d"),s("span",{class:"ov-chart-legend"},[s("span",{class:"ov-dot-legend ov-dot-accent"}),v("views/day")])],-1)),e.data?.history?.length?(l(),d("div",Dh,[(l(!0),d(Y,null,oe(e.data?.history,(o,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views"},[s("span",{class:"ov-spark-fill",style:Ve({height:e.historyBarH(o,"dailyPageViews")+"px"})},null,4)],8,Rh))),128))])):f("v-if",!0),e.data?.history?.length?(l(),d("div",Th,[s("span",null,c(e.historyLabel(e.data?.history[0])),1),s("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),s("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),s("div",Oh,[t[12]||(t[12]=s("div",{class:"ov-chart-head"},[s("span",{class:"ov-chart-title"},"New repos \xB7 30d"),s("span",{class:"ov-chart-legend"},[s("span",{class:"ov-dot-legend ov-dot-ok-fill"}),v("repos/day")])],-1)),e.data?.history?.length?(l(),d("div",Ah,[(l(!0),d(Y,null,oe(e.data?.history,(o,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos"},[s("span",{class:"ov-spark-fill ov-spark-fill-alt",style:Ve({height:e.historyBarH(o,"dailyRepositories")+"px"})},null,4)],8,Ih))),128))])):f("v-if",!0),e.data?.history?.length?(l(),d("div",Vh,[s("span",null,c(e.historyLabel(e.data?.history[0])),1),s("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),s("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),s("div",Ph,[t[13]||(t[13]=s("div",{class:"ov-chart-head"},[s("span",{class:"ov-chart-title"},"Users \xB7 30d"),s("span",{class:"ov-chart-legend"},[s("span",{class:"ov-dot-legend ov-dot-user-fill"}),v("total users")])],-1)),e.data?.history?.length?(l(),d("div",qh,[(l(!0),d(Y,null,oe(e.data?.history,(o,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users","aria-label":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users"},[s("span",{class:"ov-spark-fill ov-spark-fill-user",style:Ve({height:e.historyBarH(o,"nbUsers")+"px"})},null,4)],8,Mh))),128))])):f("v-if",!0),e.data?.history?.length?(l(),d("div",$h,[s("span",null,c(e.historyLabel(e.data?.history[0])),1),s("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),s("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),s("div",Lh,[t[14]||(t[14]=s("div",{class:"ov-chart-head"},[s("span",{class:"ov-chart-title"},"New users \xB7 30d"),s("span",{class:"ov-chart-legend"},[s("span",{class:"ov-dot-legend ov-dot-new-user-fill"}),v("users/day")])],-1)),e.data?.history?.length?(l(),d("div",Fh,[(l(!0),d(Y,null,oe(e.data?.history,(o,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users"},[s("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:Ve({height:e.historyBarH(o,"dailyUsers")+"px"})},null,4)],8,Uh))),128))])):f("v-if",!0),e.data?.history?.length?(l(),d("div",zh,[s("span",null,c(e.historyLabel(e.data?.history[0])),1),s("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),s("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)])]),f(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",Hh,[f(" Repo status breakdown "),s("div",Bh,[s("div",Gh,[t[15]||(t[15]=s("span",{class:"ov-panel-title"},"Repo status",-1)),s("span",jh,c(e.fmt?.number(e.data?.repos?.total))+" total",1)]),s("div",Wh,[s("span",{class:"ov-bar-seg ov-bar-ready",title:"Ready",style:Ve({width:e.barPct("ready")+"%"})},null,4),s("span",{class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:Ve({width:e.barPct("preparing")+"%"})},null,4),s("span",{class:"ov-bar-seg ov-bar-error",title:"Error",style:Ve({width:e.barPct("error")+"%"})},null,4),s("span",{class:"ov-bar-seg ov-bar-expired",title:"Expired",style:Ve({width:e.barPct("expired")+"%"})},null,4),s("span",{class:"ov-bar-seg ov-bar-removed",title:"Removed",style:Ve({width:e.barPct("removed")+"%"})},null,4)]),s("div",Kh,[s("a",Yh,[t[16]||(t[16]=s("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[17]||(t[17]=v(" ready ",-1)),s("span",Jh,c(e.fmt?.number(e.statusCount("ready"))),1)]),s("a",Qh,[t[18]||(t[18]=s("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[19]||(t[19]=v(" preparing ",-1)),s("span",Xh,c(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),s("a",Zh,[t[20]||(t[20]=s("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[21]||(t[21]=v(" error ",-1)),s("span",xh,c(e.fmt?.number(e.statusCount("error"))),1)]),s("a",ev,[t[22]||(t[22]=s("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[23]||(t[23]=v(" expired ",-1)),s("span",tv,c(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),s("a",sv,[t[24]||(t[24]=s("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[25]||(t[25]=v(" removed ",-1)),s("span",nv,c(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),f(" Error breakdown "),s("div",ov,[s("div",rv,[t[26]||(t[26]=s("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),s("span",iv,c(e.data?.errors?.last24h)+" total",1)]),s("div",av,[s("div",lv,[t[27]||(t[27]=s("span",{class:"ov-ebar-label"},"5xx",-1)),s("span",dv,[s("span",{class:"ov-ebar-fill ov-ebar-error",style:Ve({width:e.errPct("error")+"%"})},null,4)]),s("span",uv,c(e.data?.errors?.severity?.error),1)]),s("div",cv,[t[28]||(t[28]=s("span",{class:"ov-ebar-label"},"4xx",-1)),s("span",pv,[s("span",{class:"ov-ebar-fill ov-ebar-warn",style:Ve({width:e.errPct("warn")+"%"})},null,4)]),s("span",fv,c(e.data?.errors?.severity?.warn),1)]),s("div",mv,[t[29]||(t[29]=s("span",{class:"ov-ebar-label"},"Info",-1)),s("span",hv,[s("span",{class:"ov-ebar-fill ov-ebar-info",style:Ve({width:e.errPct("info")+"%"})},null,4)]),s("span",vv,c(e.data?.errors?.severity?.info),1)])]),e.data?.repos?.recentErrors24h?(l(),d("div",yv,[s("a",gv,c(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):f("v-if",!0)]),f(" Top routes / queues "),s("div",bv,[t[34]||(t[34]=s("div",{class:"ov-panel-head"},[s("span",{class:"ov-panel-title"},"Queues"),s("span",{class:"ov-panel-meta"},"by state")],-1)),s("div",wv,[t[33]||(t[33]=ge('
QueueActiveWaitFailed
',1)),s("a",kv,[t[30]||(t[30]=s("span",{class:"ov-route-name"},"download",-1)),s("span",_v,c(e.data?.queues?.download?.active),1),s("span",Ev,c(e.data?.queues?.download?.waiting),1),s("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},c(e.data?.queues?.download?.failed),3)]),s("a",Cv,[t[31]||(t[31]=s("span",{class:"ov-route-name"},"remove",-1)),s("span",Nv,c(e.data?.queues?.remove?.active),1),s("span",Sv,c(e.data?.queues?.remove?.waiting),1),s("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},c(e.data?.queues?.remove?.failed),3)]),s("a",Dv,[t[32]||(t[32]=s("span",{class:"ov-route-name"},"cache",-1)),s("span",Rv,c(e.data?.queues?.cache?.active),1),s("span",Tv,c(e.data?.queues?.cache?.waiting),1),s("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},c(e.data?.queues?.cache?.failed),3)])])])]),f(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),s("section",Ov,[s("div",Av,[t[35]||(t[35]=s("span",{class:"ov-panel-title"},"Services",-1)),s("span",Iv,c(e.fmt?.number(e.data?.users?.total))+" users \xB7 "+c(e.data?.conferences?.total)+" conferences",1)]),s("div",Vv,[s("div",Pv,[t[37]||(t[37]=s("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),s("div",qv,[t[36]||(t[36]=s("span",{class:"ov-svc-name"},"web",-1)),s("span",Mv,c(e.data?.system?.nodeVersion),1)]),s("span",$v,"uptime "+c(e.humanDuration(e.data?.system?.uptime)),1)]),s("div",Lv,[s("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),s("div",Fv,[t[38]||(t[38]=s("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(l(),d("span",Uv,c(e.queueTotal(e.data?.queues?.download))+" jobs",1)):f("v-if",!0),e.queueTotal(e.data?.queues?.download)?f("v-if",!0):(l(),d("span",zv,"idle"))])]),s("div",Hv,[s("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),s("div",Bv,[t[39]||(t[39]=s("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(l(),d("span",Gv,c(e.queueTotal(e.data?.queues?.cache))+" jobs",1)):f("v-if",!0),e.queueTotal(e.data?.queues?.cache)?f("v-if",!0):(l(),d("span",jv,"idle"))])]),s("div",Wv,[s("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),s("div",Kv,[t[40]||(t[40]=s("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(l(),d("span",Yv,c(e.queueTotal(e.data?.queues?.remove))+" jobs",1)):f("v-if",!0),e.queueTotal(e.data?.queues?.remove)?f("v-if",!0):(l(),d("span",Jv,"idle"))])]),s("div",Qv,[s("span",{class:O(["ov-svc-dot",e.data?.repos?.recentErrors24h>10?"ov-dot-warn":"ov-dot-ok"])},null,2),s("div",Xv,[t[41]||(t[41]=s("span",{class:"ov-svc-name"},"errors",-1)),s("span",Zv,c(e.data?.errors?.last24h)+" / 24h",1)])])])])])):f("v-if",!0)])}var xv={class:"container paper-page admin-page"},ey={class:"q-header"},ty={class:"q-header-actions"},sy={class:"q-range-btns"},ny={class:"q-cards"},oy=["onClick"],ry={class:"q-card-head"},iy=["textContent"],ay=["textContent"],ly={class:"q-card-sub"},dy={key:0,class:"q-card-bar"},uy={key:0,class:"q-detail"},cy={class:"q-throughput"},py={class:"q-section-label"},fy={class:"q-section-right"},my={class:"q-stats-panel"},hy={class:"q-section-label"},vy={class:"q-stats-grid"},yy={class:"q-stat"},gy=["textContent"],by={class:"q-stat"},wy=["textContent"],ky={class:"q-stat"},_y=["textContent"],Ey={class:"q-stat"},Cy=["textContent"],Ny={class:"q-stat"},Sy=["textContent"],Dy={class:"q-stat"},Ry=["textContent"],Ty={class:"q-stats-actions"},Oy=["disabled"],Ay={class:"q-jobs"},Iy={class:"q-jobs-header"},Vy={class:"q-section-label"},Py={class:"q-state-filters"},qy={class:"q-state-toggle"},My={type:"checkbox"},$y={class:"q-search-row"},Ly={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},Fy={class:"q-auto-refresh"},Uy={type:"checkbox"},zy={key:0,class:"q-table"},Hy=["onClick"],By={class:"q-cell-state"},Gy=["textContent"],jy=["textContent"],Wy={class:"q-cell-id"},Ky=["textContent","href"],Yy={class:"q-cell-payload"},Jy=["textContent"],Qy={key:0,class:"q-payload-detail"},Xy=["textContent"],Zy=["textContent"],xy={class:"q-cell-progress"},eg={key:0,class:"q-progress-wrap"},tg=["textContent"],sg={class:"q-cell-actions"},ng=["onClick"],og=["onClick"],rg={key:0,class:"q-detail-row"},ig={colspan:"7"},ag={class:"q-job-detail"},lg={class:"q-job-detail-grid"},dg={class:"q-job-detail-item"},ug={class:"q-job-detail-value"},cg=["textContent","href"],pg={class:"q-job-detail-item"},fg={class:"q-job-detail-value"},mg=["textContent"],hg={key:0,class:"q-job-detail-item"},vg=["textContent"],yg={key:1,class:"q-job-detail-item"},gg=["textContent"],bg={key:2,class:"q-job-detail-item"},wg={class:"q-job-detail-value"},kg={key:3,class:"q-job-detail-item"},_g=["textContent"],Eg={key:4,class:"q-job-detail-item"},Cg=["textContent"],Ng={key:5,class:"q-job-detail-item"},Sg=["textContent"],Dg={key:6,class:"q-job-detail-item"},Rg=["textContent"],Tg={key:7,class:"q-job-detail-item"},Og=["textContent"],Ag={key:0,class:"q-job-detail-error"},Ig=["textContent"],Vg={key:1},Pg=["textContent"],qg={class:"q-job-detail-actions"},Mg=["onClick"],$g=["onClick"],Lg=["href"],Fg={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},Ug={key:0},zg={key:1};function Xa(e,t){let o=we("field");return l(),d("div",xv,[t[47]||(t[47]=s("div",{class:"paper-crumbs"},[v("Admin \xA0/\xA0 "),s("span",{class:"here"},"Queues")],-1)),s("div",ey,[t[12]||(t[12]=s("h1",{class:"paper-page-title"},"Queues",-1)),s("div",ty,[s("div",sy,[s("button",{class:O(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[0]||(t[0]=r=>e.setRange("1h"))},"1h",2),s("button",{class:O(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[1]||(t[1]=r=>e.setRange("6h"))},"6h",2),s("button",{class:O(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[2]||(t[2]=r=>e.setRange("24h"))},"24h",2),s("button",{class:O(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[3]||(t[3]=r=>e.setRange("7d"))},"7d",2)]),s("button",{class:"btn btn-sm",onClick:t[4]||(t[4]=r=>e.pauseAll())},"Pause all"),s("button",{class:"btn btn-sm btn-dark",onClick:t[5]||(t[5]=r=>e.drainSelected())},"Drain "+c(e.selectedQueue),1)])]),t[48]||(t[48]=ge('',1)),f(" Queue overview cards "),s("div",ny,[(l(!0),d(Y,null,oe(e.queueList,(r,n)=>(l(),d("div",{class:O(["q-card",{selected:e.selectedQueue==r?.key,paused:r?.paused}]),onClick:i=>e.selectQueue(r.key)},[s("div",ry,[s("span",{class:O(["q-dot",{"q-dot-red":r?.paused||r?.counts?.failed>0}])},null,2),s("span",{class:"q-card-name",textContent:c(r?.label)},null,8,iy)]),s("div",{class:"q-card-count",textContent:c((r?.counts?.waiting||0)+(r?.counts?.active||0)+(r?.counts?.delayed||0))},null,8,ay),s("div",ly,[s("span",null,"waiting \xB7 "+c(r?.counts?.active||0)+" active",1),r?.counts?.active?(l(),d("div",dy,[s("div",{class:"q-card-bar-fill",style:Ve({width:r?.counts?.active/((r?.counts?.waiting||0)+(r?.counts?.active||0)+(r?.counts?.delayed||0)||1)*100+"%"})},null,4)])):f("v-if",!0)])],10,oy))),256))]),f(" Detail: throughput chart + stats panel "),e.selectedStats?(l(),d("div",uy,[s("div",cy,[s("div",py,[v(c(e.selectedQueue)+"\xB7throughput ",1),s("span",fy,[t[13]||(t[13]=s("span",{class:"q-legend-completed"},"\u25CF",-1)),t[14]||(t[14]=v(" completed ",-1)),t[15]||(t[15]=s("span",{class:"q-legend-failed"},"\u25CF",-1)),t[16]||(t[16]=v(" failed ",-1)),t[17]||(t[17]=s("span",{class:"q-legend-exec"},"- -",-1)),v(" avg time \xB7 "+c(e.fmt?.uppercase(e.range)),1)])]),t[18]||(t[18]=s("div",{class:"q-chart-wrap"},[s("canvas",{id:"q-throughput-chart",height:"180"}),s("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}}),s("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}})],-1))]),s("div",my,[s("div",hy,c(e.selectedQueue)+"\xB7stats",1),s("div",vy,[s("div",yy,[t[19]||(t[19]=s("div",{class:"q-stat-label"},"WAITING",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.waiting||0)},null,8,gy)]),s("div",by,[t[20]||(t[20]=s("div",{class:"q-stat-label"},"ACTIVE",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.active||0)},null,8,wy)]),s("div",ky,[t[21]||(t[21]=s("div",{class:"q-stat-label"},"COMPLETED (24H)",-1)),s("div",{class:"q-stat-value",textContent:c(e.fmt?.number(e.selectedStats?.completed24h))},null,8,_y)]),s("div",Ey,[t[22]||(t[22]=s("div",{class:"q-stat-label"},"FAILED (24H)",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.failed24h||0)},null,8,Cy)]),s("div",Ny,[t[23]||(t[23]=s("div",{class:"q-stat-label"},"DELAYED",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.delayed||0)},null,8,Sy)]),s("div",Dy,[t[24]||(t[24]=s("div",{class:"q-stat-label"},"WORKERS",-1)),s("div",{class:"q-stat-value",textContent:c(e.selectedStats?.workers||0)},null,8,Ry)])]),s("div",Ty,[s("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=r=>e.togglePause())},c(e.selectedStats?.paused?"Resume":"Pause"),1),s("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=r=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,Oy),s("button",{class:"btn btn-sm",onClick:t[8]||(t[8]=r=>e.emptyQueue())},"Empty")])])])):f("v-if",!0),e.actionError?(l(),d("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=r=>e.actionError=null)},[t[25]||(t[25]=s("i",{class:"fas fa-exclamation-circle"},null,-1)),v(" "+c(e.actionError),1)])):f("v-if",!0),f(" Jobs table "),s("div",Ay,[s("div",Iy,[s("div",Vy,"ALL JOBS \xB7 "+c(e.fmt?.uppercase(e.selectedQueue)),1),s("div",Py,[(l(!0),d(Y,null,oe(e.allStates,(r,n)=>(l(),d("label",qy,[E(s("input",My,null,512),[[o,{state:e.viewState,set:i=>{e.stateFilter[r]=i},value:e.stateFilter[r],form:null,options:{}}]]),s("span",{class:O("q-state-chip q-state-"+r)},c(r),3)]))),256))])]),s("div",$y,[E(s("input",Ly,null,512),[[o,{state:e.viewState,set:r=>{e.query.search=r},value:e.query?.search,form:null,options:{}}]]),s("label",Fy,[E(s("input",Uy,null,512),[[o,{state:e.viewState,set:r=>{e.query.autoRefresh=r},value:e.query?.autoRefresh,form:null,options:{}}]]),t[26]||(t[26]=v(" Auto-refresh ",-1))]),s("button",{class:"btn btn-sm",type:"button",title:"Refresh now",onClick:t[10]||(t[10]=r=>e.refreshNow())},[...t[27]||(t[27]=[s("i",{class:"fas fa-sync"},null,-1)])])]),e.filteredJobs().length>0?(l(),d("table",zy,[t[45]||(t[45]=s("thead",null,[s("tr",null,[s("th",null,"STATE"),s("th",null,"JOB ID"),s("th",null,"PAYLOAD"),s("th",null,"ATTEMPTS"),s("th",null,"DURATION"),s("th",null,"PROGRESS"),s("th")])],-1)),(l(!0),d(Y,null,oe(e.filteredJobs(),(r,n)=>(l(),d("tbody",null,[s("tr",{style:{cursor:"pointer"},class:O({"q-row-failed":r?._state=="failed","q-row-expanded":e.expanded[r?.id]}),onClick:i=>e.toggleJob(r)},[s("td",By,[s("span",{textContent:c(r?._state),class:O("q-state-badge q-state-"+r?._state)},null,10,Gy),r?._state=="delayed"&&r?.delayUntil?(l(),d("span",{key:0,class:"q-delay-hint",textContent:c(e.delayCountdown(r?.delayUntil))},null,8,jy)):f("v-if",!0)]),s("td",Wy,[s("i",{class:O(["fas fa-chevron-right q-chevron",{"q-chevron-open":e.expanded[r?.id]}])},null,2),s("a",{target:"_blank",textContent:c("job:"+e.fmt.limitTo(r?.id,6)),onClick:t[11]||(t[11]=i=>i.stopPropagation()),href:e.safeUrl("/r/"+r?.id)},null,8,Ky)]),s("td",Yy,[s("span",{textContent:c(r?.name||"anonymize")},null,8,Jy),r?.data?.repoId&&r?.data?.repoId!==r?.name?(l(),d("span",Qy," \xB7 "+c(r?.data?.repoId),1)):f("v-if",!0)]),s("td",{class:"q-cell-num",textContent:c(r?.attemptsMade||1)},null,8,Xy),s("td",{class:"q-cell-num",textContent:c(e.jobDuration(r))},null,8,Zy),s("td",xy,[e.jobProgressPct(r)!==null?(l(),d("div",eg,[s("div",{class:"q-progress-bar",style:Ve({"--pct":e.jobProgressPct(r)+"%"})},null,4),s("span",{class:"q-progress-label",textContent:c(e.jobProgressPct(r)+"%")},null,8,tg)])):f("v-if",!0)]),s("td",sg,[r?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",title:"Retry",onClick:i=>{e.retryJob(r),i.stopPropagation()}},[...t[28]||(t[28]=[s("i",{class:"fas fa-sync"},null,-1)])],8,ng)):f("v-if",!0),s("button",{class:"btn btn-sm",title:"Remove",onClick:i=>{e.removeJob(r),i.stopPropagation()}},[...t[29]||(t[29]=[s("i",{class:"fas fa-trash-alt"},null,-1)])],8,og)])],10,Hy),e.expanded[r?.id]?(l(),d("tr",rg,[s("td",ig,[s("div",ag,[s("div",lg,[s("div",dg,[t[30]||(t[30]=s("span",{class:"q-job-detail-label"},"JOB ID",-1)),s("span",ug,[s("a",{target:"_blank",textContent:c(r?.id),href:e.safeUrl("/r/"+r?.id)},null,8,cg)])]),s("div",pg,[t[31]||(t[31]=s("span",{class:"q-job-detail-label"},"STATE",-1)),s("span",fg,[s("span",{textContent:c(r?._state),class:O("q-state-badge q-state-"+r?._state)},null,10,mg)])]),r?.data?.repoId?(l(),d("div",hg,[t[32]||(t[32]=s("span",{class:"q-job-detail-label"},"REPO ID",-1)),s("span",{class:"q-job-detail-value",textContent:c(r?.data?.repoId)},null,8,vg)])):f("v-if",!0),r?.timestamp?(l(),d("div",yg,[t[33]||(t[33]=s("span",{class:"q-job-detail-label"},"CREATED",-1)),s("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.timestamp))},null,8,gg)])):f("v-if",!0),r?._state=="delayed"&&r?.delayUntil?(l(),d("div",bg,[t[34]||(t[34]=s("span",{class:"q-job-detail-label"},"RETRY AT",-1)),s("span",wg,c(e.humanTime(r?.delayUntil))+" ("+c(e.delayCountdown(r?.delayUntil))+")",1)])):f("v-if",!0),r?.processedOn?(l(),d("div",kg,[t[35]||(t[35]=s("span",{class:"q-job-detail-label"},"PROCESSED",-1)),s("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.processedOn))},null,8,_g)])):f("v-if",!0),r?.finishedOn?(l(),d("div",Eg,[t[36]||(t[36]=s("span",{class:"q-job-detail-label"},"FINISHED",-1)),s("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.finishedOn))},null,8,Cg)])):f("v-if",!0),r?.attemptsMade?(l(),d("div",Ng,[t[37]||(t[37]=s("span",{class:"q-job-detail-label"},"ATTEMPTS",-1)),s("span",{class:"q-job-detail-value",textContent:c(r?.attemptsMade)},null,8,Sg)])):f("v-if",!0),r?.progress&&r?.progress?.status?(l(),d("div",Dg,[t[38]||(t[38]=s("span",{class:"q-job-detail-label"},"STATUS",-1)),s("span",{class:"q-job-detail-value",textContent:c(r?.progress?.status)},null,8,Rg)])):f("v-if",!0),e.jobProgressPct(r)!==null?(l(),d("div",Tg,[t[39]||(t[39]=s("span",{class:"q-job-detail-label"},"PROGRESS",-1)),s("span",{class:"q-job-detail-value",textContent:c(e.jobProgressPct(r)+"%")},null,8,Og)])):f("v-if",!0)]),r?.failedReason?(l(),d("div",Ag,[t[40]||(t[40]=s("span",{class:"q-job-detail-label"},"ERROR",-1)),s("div",{class:"q-error-reason",textContent:c(r?.failedReason)},null,8,Ig)])):f("v-if",!0),r?.stacktrace?.length?(l(),d("div",Vg,[t[41]||(t[41]=s("span",{class:"q-job-detail-label"},"STACKTRACE",-1)),(l(!0),d(Y,null,oe(r?.stacktrace,(i,a)=>(l(),d("pre",{class:"q-error-stack",key:a},[s("code",{textContent:c(i)},null,8,Pg)]))),128))])):f("v-if",!0),s("div",qg,[r?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",onClick:i=>e.retryJob(r)},[...t[42]||(t[42]=[s("i",{class:"fas fa-sync"},null,-1),v(" Retry",-1)])],8,Mg)):f("v-if",!0),s("button",{class:"btn btn-sm",onClick:i=>e.removeJob(r)},[...t[43]||(t[43]=[s("i",{class:"fas fa-trash-alt"},null,-1),v(" Remove",-1)])],8,$g),s("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+r?.id)},[...t[44]||(t[44]=[s("i",{class:"fas fa-external-link-alt"},null,-1),v(" View repo",-1)])],8,Lg)])])])])):f("v-if",!0)]))),256))])):f("v-if",!0),e.filteredJobs().length==0?(l(),d("div",Fg,[t[46]||(t[46]=s("i",{class:"fas fa-check-circle"},null,-1)),e.query?.search?f("v-if",!0):(l(),d("span",Ug,"No jobs in the "+c(e.selectedQueue)+" queue.",1)),e.query?.search?(l(),d("span",zg,"No jobs match the current filters.")):f("v-if",!0)])):f("v-if",!0)])])}var Hg={class:"container paper-page admin-page"},Bg={class:"admin-summary"},Gg={class:"summary-total"},jg={class:"summary-meta"},Wg={class:"count"},Kg={class:"count"},Yg={class:"count"},Jg={class:"count"},Qg={class:"count"},Xg={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},Zg={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},xg={class:"admin-filter-row"},eb={class:"search-wrap"},tb={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},sb={key:0,class:"admin-search-hint"},ob={class:"admin-filter-inline"},rb={type:"text",class:"form-control form-control-sm",placeholder:"username"},ib={class:"admin-filter-inline"},ab={type:"text",class:"form-control form-control-sm",placeholder:"ID"},lb={class:"admin-filter-inline","aria-label":"Pagination"},db=["disabled"],ub={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},cb=["disabled"],pb={key:0,class:"admin-filter-row"},fb={class:"admin-active-chips"},mb={class:"key"},hb=["onClick"],vb={key:1,class:"bulk-bar"},yb={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},gb={class:"paper-table-head",role:"row"},bb={role:"columnheader",style:{width:"28px"}},wb=["checked"],kb={role:"columnheader"},_b={role:"columnheader"},Eb={role:"columnheader",class:"num"},Cb={role:"columnheader"},Nb={role:"cell",style:{width:"28px"}},Sb={type:"checkbox","aria-label":"Select repository"},Db={class:"cell-anon",role:"cell"},Rb={class:"anon-text"},Tb=["textContent","href"],Ob={class:"anon-sub"},Ab=["textContent","href"],Ib={key:0},Vb=["textContent","href"],Pb={key:1},qb=["textContent","href"],Mb={key:2},$b={class:"cell-status",role:"cell"},Lb={class:"status-line"},Fb=["textContent"],Ub=["textContent","title"],zb=["textContent"],Hb=["textContent"],Bb={class:"cell-actions",role:"cell"},Gb={class:"dropdown"},jb={class:"dropdown-menu dropdown-menu-right"},Wb=["href"],Kb=["href"],Yb=["href"],Jb=["onClick"],Qb=["onClick"],Xb=["onClick"],Zb=["onClick"],xb=["onClick"],e1=["onClick"],t1={key:0,class:"paper-table-empty"},s1={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},n1={style:{"font-size":"12px",color:"var(--ink-muted)"}},o1={key:0,class:"pagination-compact"},r1=["disabled"],i1=["max"],a1=["disabled"],l1={class:"admin-filter-inline"},d1={class:"form-control form-control-sm"};function Za(e,t){let o=we("field"),r=we("form");return l(),d("div",Hg,[t[61]||(t[61]=ge('
Admin \xA0/\xA0 Repositories

Repositories

',3)),s("div",Bg,[s("span",Gg,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),s("span",jg,c(e.fmt?.humanFileSize(e.totalSize))+" on disk",1),s("span",{class:O(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=n=>{e.query.ready=!e.query.ready,e.query.page=1})},[t[18]||(t[18]=v("Ready ",-1)),s("span",Wg,c(e.fmt?.number(e.statusCountFor("ready"))),1)],2),s("span",{class:O(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=n=>{e.query.preparing=!e.query.preparing,e.query.page=1})},[t[19]||(t[19]=v("Preparing ",-1)),s("span",Kg,c(e.fmt?.number(e.statusCountFor("preparing")+e.statusCountFor("download"))),1)],2),s("span",{class:O(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=n=>{e.query.error=!e.query.error,e.query.page=1})},[t[20]||(t[20]=v("Errored ",-1)),s("span",Yg,c(e.fmt?.number(e.statusCountFor("error"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=n=>{e.query.expired=!e.query.expired,e.query.page=1})},[t[21]||(t[21]=v("Expired ",-1)),s("span",Jg,c(e.fmt?.number(e.statusCountFor("expired")+e.statusCountFor("expiring"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=n=>{e.query.removed=!e.query.removed,e.query.page=1})},[t[22]||(t[22]=v("Removed ",-1)),s("span",Qg,c(e.fmt?.number(e.statusCountFor("removed")+e.statusCountFor("removing"))),1)],2)]),e.fetchError?(l(),d("div",Xg,[t[23]||(t[23]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),v(" "+c(e.fetchError),1)])):f("v-if",!0),E((l(),d("form",Zg,[f(" Row 1: search + scoped inputs + headline actions "),s("div",xg,[s("div",eb,[E(s("input",tb,null,512),[[o,{state:e.viewState,set:n=>{e.query.search=n},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(l(),d("span",sb,"/"))]),s("span",ob,[t[24]||(t[24]=s("label",null,"Owner",-1)),E(s("input",rb,null,512),[[o,{state:e.viewState,set:n=>{e.query.owner=n},value:e.query?.owner,form:null,options:{}}]])]),s("span",ib,[t[25]||(t[25]=s("label",null,"Conference",-1)),E(s("input",ab,null,512),[[o,{state:e.viewState,set:n=>{e.query.conference=n},value:e.query?.conference,form:null,options:{}}]])]),t[29]||(t[29]=s("span",{class:"admin-filter-spacer"},null,-1)),s("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[5]||(t[5]=n=>e.exportCsv())},[...t[26]||(t[26]=[s("i",{class:"fas fa-file-csv"},null,-1),v(" Export",-1)])]),s("span",lb,[s("button",{class:"btn btn-sm",type:"button",onClick:t[6]||(t[6]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[27]||(t[27]=[s("i",{class:"fas fa-chevron-left"},null,-1)])],8,db),s("span",ub,c(e.query?.page)+"/"+c(e.totalPage||1),1),s("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[28]||(t[28]=[s("i",{class:"fas fa-chevron-right"},null,-1)])],8,cb)])]),f(" Row 2: appears only when there are active filter chips "),e.chips?.length?(l(),d("div",pb,[s("div",fb,[(l(!0),d(Y,null,oe(e.chips,(n,i)=>(l(),d("span",{class:"admin-active-chip",key:n?.key},[s("span",mb,c(n?.label),1),s("span",null,c(n?.value),1),s("button",{type:"button","aria-label":"Remove filter",onClick:a=>e.clearFilter(n.key)},[...t[30]||(t[30]=[s("i",{class:"fas fa-times"},null,-1)])],8,hb)]))),128))])])):f("v-if",!0)])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",vb,[s("span",null,[s("strong",null,c(e.selectedCount()),1),t[31]||(t[31]=v(" selected",-1))]),s("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=n=>e.bulkRefresh())},[...t[32]||(t[32]=[s("i",{class:"fas fa-sync"},null,-1),v(" Force refresh",-1)])]),s("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[9]||(t[9]=n=>e.bulkRemoveCache())},[...t[33]||(t[33]=[s("i",{class:"fas fa-broom"},null,-1),v(" Remove cache",-1)])]),s("button",{class:"btn btn-sm",type:"button",onClick:t[10]||(t[10]=n=>e.clearSelection())},"Clear")])):f("v-if",!0),s("div",yb,[s("div",gb,[s("div",bb,[s("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[11]||(t[11]=n=>e.selectAllOnPage()),checked:e.allSelected},null,8,wb)]),s("div",kb,[s("span",{class:O(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[12]||(t[12]=n=>e.sortBy("source.repositoryName"))},[t[34]||(t[34]=v("Repository ",-1)),s("i",{class:O(["fas",e.sortIcon("source.repositoryName")])},null,2)],2)]),s("div",_b,[s("span",{class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[13]||(t[13]=n=>e.sortBy("status"))},[t[35]||(t[35]=v("Status ",-1)),s("i",{class:O(["fas",e.sortIcon("status")])},null,2)],2)]),s("div",Eb,[s("span",{class:O(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[14]||(t[14]=n=>e.sortBy("pageView"))},[t[36]||(t[36]=v("Views ",-1)),s("i",{class:O(["fas",e.sortIcon("pageView")])},null,2)],2)]),s("div",Cb,[s("span",{class:O(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[15]||(t[15]=n=>e.sortBy("anonymizeDate"))},[t[37]||(t[37]=v("Anonymized ",-1)),s("i",{class:O(["fas",e.sortIcon("anonymizeDate")])},null,2)],2)]),t[38]||(t[38]=s("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(Y,null,oe(e.filteredRepositories,(n,i)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":n?.status=="expired"||n?.status=="removed","repo-error":n?.status=="error","row-selected":e.selected[n?.repoId]}]),role:"row"},[s("div",Nb,[E(s("input",Sb,null,512),[[o,{state:e.viewState,set:a=>{e.selected[n.repoId]=a},value:e.selected[n?.repoId],form:null,options:{}}]])]),s("div",Db,[t[43]||(t[43]=s("span",{class:"type-badge type-repo"},"Repo",-1)),s("div",Rb,[s("a",{class:"repo-name",target:"_blank",textContent:c(n?.repoId),href:e.safeUrl("/r/"+n?.repoId)},null,8,Tb),s("div",Ob,[s("a",{textContent:c(n?.source?.repositoryName),href:e.safeUrl("https://github.com/"+n?.source?.repositoryName+"/")},null,8,Ab),n?.options?.update?(l(),d("span",Ib,[t[39]||(t[39]=v("\xA0\xB7\xA0",-1)),s("a",{textContent:c(n?.source?.branch),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.branch)},null,8,Vb)])):f("v-if",!0),n?.options?.update?f("v-if",!0):(l(),d("span",Pb,[t[40]||(t[40]=v("\xA0\xB7\xA0@",-1)),s("a",{textContent:c(n?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.commit)},null,8,qb)])),n?.conference?(l(),d("span",Mb,[t[41]||(t[41]=v("\xA0\xB7\xA0",-1)),t[42]||(t[42]=s("i",{class:"fas fa-chalkboard-teacher"},null,-1)),v(" "+c(n?.conference),1)])):f("v-if",!0),s("span",null,"\xA0\xB7\xA0"+c(e.fmt?.humanFileSize(n?.size?.storage)),1),s("span",null,"\xA0\xB7\xA0"+c(e.fmt?.number(n?.options?.terms?.length))+" terms",1)])])]),s("div",$b,[s("span",Lb,[s("span",{class:O(["status-dot",{"status-removed":n?.status=="removed"||n?.status=="expired","status-ready":n?.status=="ready","status-error":n?.status=="error","status-preparing":n?.status=="preparing"}])},null,2),s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,Fb)]),n?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(n?.statusMessage)),title:n?.statusMessage},null,8,Ub)):f("v-if",!0)]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.pageView||0))},null,8,zb),s("div",{class:"cell-expires",role:"cell",textContent:c(e.fmt?.humanTime(n?.anonymizeDate))},null,8,Hb),s("div",Bb,[s("div",Gb,[t[55]||(t[55]=s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"})],-1)),s("div",jb,[s("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+n?.repoId)},[...t[44]||(t[44]=[s("i",{class:"far fa-edit"},null,-1),v(" Edit",-1)])],8,Wb),s("a",{class:"dropdown-item",href:e.safeUrl("/r/"+n?.repoId+"/")},[...t[45]||(t[45]=[s("i",{class:"fa fa-eye"},null,-1),v(" View repo",-1)])],8,Kb),n?.options?.page&&n?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+n?.repoId+"/")},[...t[46]||(t[46]=[s("i",{class:"fas fa-globe"},null,-1),v(" View page",-1)])],8,Yb)):f("v-if",!0),s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.fetchGithubInfo(n),["prevent"])},[...t[47]||(t[47]=[s("i",{class:"fab fa-github"},null,-1),v(" Live GitHub info",-1)])],8,Jb),t[53]||(t[53]=s("div",{class:"dropdown-divider"},null,-1)),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updateRepository(n),["prevent"])},[...t[48]||(t[48]=[s("i",{class:"fas fa-sync"},null,-1),v(" Force update",-1)])],8,Qb),[[G,n?.status=="ready"||n?.status=="error"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updateRepository(n),["prevent"])},[...t[49]||(t[49]=[s("i",{class:"fas fa-check-circle"},null,-1),v(" Enable",-1)])],8,Xb),[[G,n?.status=="removed"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.showStatusMessage(n),["prevent"])},[...t[50]||(t[50]=[s("i",{class:"fas fa-exclamation-triangle"},null,-1),v(" View status message",-1)])],8,Zb),[[G,n?.statusMessage]]),t[54]||(t[54]=s("div",{class:"dropdown-divider"},null,-1)),s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.removeCache(n),["prevent"])},[...t[51]||(t[51]=[s("i",{class:"fas fa-broom"},null,-1),v(" Remove cache",-1)])],8,xb),E(s("a",{class:"dropdown-item text-danger",href:"#",onClick:ke(a=>e.removeRepository(n),["prevent"])},[...t[52]||(t[52]=[s("i",{class:"fas fa-trash-alt"},null,-1),v(" Remove",-1)])],8,e1),[[G,n?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",t1,[...t[56]||(t[56]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No repositories match the current filters.",-1)])])):f("v-if",!0)]),s("div",s1,[s("span",n1,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",o1,[s("button",{class:"btn btn-sm",onClick:t[16]||(t[16]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[57]||(t[57]=[s("i",{class:"fas fa-chevron-left"},null,-1),v(" Previous ",-1)])],8,r1),E(s("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,i1),[[o,{state:e.viewState,set:n=>{e.query.page=n},value:e.query?.page,form:null,options:{}}]]),s("span",null,"of "+c(e.totalPage),1),s("button",{class:"btn btn-sm",onClick:t[17]||(t[17]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[58]||(t[58]=[v(" Next ",-1),s("i",{class:"fas fa-chevron-right"},null,-1)])],8,a1)])):f("v-if",!0),s("span",l1,[t[60]||(t[60]=s("label",null,"Per page",-1)),E((l(),d("select",d1,[...t[59]||(t[59]=[ge('',5)])])),[[o,{state:e.viewState,set:n=>{e.query.limit=n},value:e.query?.limit,form:null,options:{}}]])])])])}var u1={class:"container paper-page admin-page"},c1={class:"paper-crumbs"},p1={class:"here"},f1={class:"paper-page-title"},m1={key:0,class:"user-detail-card"},h1={class:"user-header"},v1=["src"],y1={class:"status-dot-wrap"},g1=["textContent"],b1={key:0,class:"type-badge type-repo"},w1={class:"user-actions",style:{"margin-top":"4px"}},k1={class:"user-detail-grid"},_1={class:"detail-value"},E1={class:"detail-value"},C1={class:"detail-value",style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},N1={class:"detail-value"},S1=["href"],D1={class:"detail-value"},R1={class:"detail-value"},T1={key:0},O1={key:1,class:"text-muted"},A1={class:"detail-value"},I1={key:0,style:{"margin-top":"20px"}},V1={class:"paper-table w-100",style:{"margin-top":"10px"}},P1={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},q1={class:"cell-anon",role:"cell"},M1={class:"anon-text"},$1=["textContent"],L1={class:"cell-expires",role:"cell"},F1={key:1,class:"admin-section-header"},U1={class:"section-count"},z1={key:2,class:"user-detail-card"},H1={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},B1={key:0,class:"alert alert-warning",role:"alert"},G1={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},j1={key:1,class:"paper-table w-100"},W1={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},K1=["textContent"],Y1=["textContent"],J1={role:"cell"},Q1={key:0},X1={key:1,class:"text-muted"},Z1={role:"cell"},x1=["onClick"],ew={key:2,class:"paper-table-empty"},tw={class:"admin-section-header"},sw={class:"section-count"},nw={class:"admin-summary"},ow={class:"summary-total"},rw={class:"count"},iw={class:"count"},aw={class:"count"},lw={class:"count"},dw={class:"count"},uw={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},cw={class:"admin-filter-row"},pw={class:"search-wrap"},fw={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},mw={key:3,class:"bulk-bar"},hw={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},vw={class:"paper-table-head",role:"row"},yw={role:"columnheader",style:{width:"28px"}},gw=["checked"],bw={role:"columnheader"},ww={role:"columnheader"},kw={role:"columnheader",class:"num"},_w={role:"columnheader"},Ew={role:"cell",style:{width:"28px"}},Cw={type:"checkbox","aria-label":"Select repository"},Nw={class:"cell-anon",role:"cell"},Sw={class:"anon-text"},Dw=["textContent","href"],Rw={class:"anon-sub"},Tw=["textContent","href"],Ow={key:0},Aw=["textContent","href"],Iw={key:1},Vw=["textContent","href"],Pw={key:2},qw={class:"cell-status",role:"cell"},Mw={class:"status-line"},$w=["textContent"],Lw=["textContent","title"],Fw=["textContent"],Uw=["textContent"],zw={class:"cell-actions",role:"cell"},Hw={class:"dropdown"},Bw={class:"dropdown-menu dropdown-menu-right"},Gw=["href"],jw=["href"],Ww=["href"],Kw=["onClick"],Yw=["onClick"],Jw=["onClick"],Qw=["onClick"],Xw=["onClick"],Zw=["onClick"],xw={key:0,class:"paper-table-empty"};function xa(e,t){let o=we("field"),r=we("form");return l(),d("div",u1,[s("div",c1,[t[22]||(t[22]=s("a",{href:"/admin/users"},"Users",-1)),t[23]||(t[23]=v(" \xA0/\xA0 ",-1)),s("span",p1,c(e.userInfo?.username||"Profile"),1)]),s("h1",f1,c(e.userInfo?.username||"User"),1),t[81]||(t[81]=ge('',1)),e.userInfo?(l(),d("div",m1,[s("div",h1,[e.userInfo?.photo?(l(),d("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,v1)):f("v-if",!0),s("div",null,[s("h1",null,[v(c(e.userInfo?.username)+" ",1),s("span",y1,[s("span",{class:O(["status-dot",{"status-ready":e.userInfo?.status=="active","status-removed":e.userInfo?.status!="active"}])},null,2),s("span",{textContent:c(e.fmt?.title(e.userInfo?.status))},null,8,g1)]),e.userInfo?.isAdmin?(l(),d("span",b1,"Admin")):f("v-if",!0)]),s("div",w1,[e.userInfo?.status!=="banned"?(l(),d("button",{key:0,class:"btn btn-sm text-danger",onClick:t[0]||(t[0]=n=>e.banUser())},[...t[24]||(t[24]=[s("i",{class:"fas fa-ban"},null,-1),v(" Ban",-1)])])):f("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(l(),d("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=n=>e.activateUser())},[...t[25]||(t[25]=[s("i",{class:"fas fa-check-circle"},null,-1),v(" Activate",-1)])])):f("v-if",!0),e.userInfo?.isAdmin?f("v-if",!0):(l(),d("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=n=>e.promoteUser())},[...t[26]||(t[26]=[s("i",{class:"fas fa-user-shield"},null,-1),v(" Promote to admin",-1)])])),e.userInfo?.isAdmin?(l(),d("button",{key:3,class:"btn btn-sm text-danger",onClick:t[3]||(t[3]=n=>e.demoteUser())},[...t[27]||(t[27]=[s("i",{class:"fas fa-user-minus"},null,-1),v(" Remove admin",-1)])])):f("v-if",!0)])])]),s("div",k1,[t[30]||(t[30]=s("div",{class:"detail-label"},"ID",-1)),s("div",_1,c(e.userInfo?._id),1),t[31]||(t[31]=s("div",{class:"detail-label"},"Email",-1)),s("div",E1,c(e.userInfo?.emails?.[0]?.email),1),t[32]||(t[32]=s("div",{class:"detail-label"},"Access token",-1)),s("div",C1,c(e.userInfo?.accessTokens?.github),1),t[33]||(t[33]=s("div",{class:"detail-label"},"GitHub",-1)),s("div",N1,[s("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[28]||(t[28]=s("i",{class:"fab fa-github"},null,-1)),v(" "+c(e.userInfo?.username),1)],8,S1)]),t[34]||(t[34]=s("div",{class:"detail-label"},"Created",-1)),s("div",D1,c(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[35]||(t[35]=s("div",{class:"detail-label"},"Last connection",-1)),s("div",R1,[e.userInfo?.accessTokenDates?.github?(l(),d("span",T1,c(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):f("v-if",!0),e.userInfo?.accessTokenDates?.github?f("v-if",!0):(l(),d("span",O1,"never"))]),t[36]||(t[36]=s("div",{class:"detail-label"},"GitHub repos",-1)),s("div",A1,[v(c(e.userInfo?.repositories?.length)+" repositories ",1),s("button",{class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=n=>e.showRepos=!e.showRepos)},c(e.showRepos?"Hide":"Show"),1),s("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=n=>e.getGitHubRepositories())},[...t[29]||(t[29]=[s("i",{class:"fas fa-sync"},null,-1),v(" Refresh ",-1)])])])]),e.showRepos?(l(),d("div",I1,[t[39]||(t[39]=s("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),s("div",V1,[(l(!0),d(Y,null,oe(e.userInfo?.repositories,(n,i)=>(l(),d("div",P1,[s("div",q1,[t[37]||(t[37]=s("span",{class:"type-badge type-repo"},"Repo",-1)),s("div",M1,[s("span",{class:"repo-name",textContent:c(n?.name)},null,8,$1)])]),s("div",L1,[t[38]||(t[38]=s("i",{class:"fas fa-database"},null,-1)),v(" "+c(e.fmt?.humanFileSize(n?.size)),1)])]))),256))])])):f("v-if",!0)])):f("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",F1,[t[40]||(t[40]=s("h2",null,[s("i",{class:"fas fa-key"}),v(" API tokens")],-1)),s("span",U1,c(e.tokens?.length),1)])):f("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",z1,[t[46]||(t[46]=s("p",{class:"paper-page-lede"},[v("Personal API tokens for this admin account. Send as "),s("code",null,"Authorization: Bearer "),v(" to authenticate without GitHub OAuth (useful for development).")],-1)),E((l(),d("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=ke(n=>e.submitForm(n,()=>{e.createToken()}),["prevent"]))},[E(s("input",H1,null,512),[[o,{state:e.viewState,set:n=>{e.tokenForm.name=n},value:e.tokenForm?.name,form:null,options:{}}]]),t[41]||(t[41]=s("button",{type:"submit",class:"btn btn-primary"},[s("i",{class:"fas fa-plus"}),v(" Generate")],-1))],32)),[[r,e.viewState]]),e.tokenForm?.plaintext?(l(),d("div",B1,[t[42]||(t[42]=s("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),s("pre",G1,c(e.tokenForm?.plaintext),1),s("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=n=>e.tokenForm.plaintext=null)},"Dismiss")])):f("v-if",!0),e.tokens?.length?(l(),d("div",j1,[t[44]||(t[44]=s("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[s("div",{role:"columnheader"},"Name"),s("div",{role:"columnheader"},"Created"),s("div",{role:"columnheader"},"Last used"),s("div",{role:"columnheader","aria-label":"Actions"})],-1)),(l(!0),d(Y,null,oe(e.tokens,(n,i)=>(l(),d("div",W1,[s("div",{role:"cell",textContent:c(n?.name)},null,8,K1),s("div",{role:"cell",textContent:c(e.fmt?.humanTime(n?.createdAt))},null,8,Y1),s("div",J1,[n?.lastUsedAt?(l(),d("span",Q1,c(e.fmt?.humanTime(n?.lastUsedAt)),1)):f("v-if",!0),n?.lastUsedAt?f("v-if",!0):(l(),d("span",X1,"never"))]),s("div",Z1,[s("button",{class:"btn btn-sm text-danger",title:"Revoke",onClick:a=>e.revokeToken(n)},[...t[43]||(t[43]=[s("i",{class:"fas fa-trash-alt"},null,-1)])],8,x1)])]))),256))])):f("v-if",!0),e.tokens?.length?f("v-if",!0):(l(),d("div",ew,[...t[45]||(t[45]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No tokens yet.",-1)])]))])):f("v-if",!0),s("div",tw,[t[47]||(t[47]=s("h2",null,[s("i",{class:"fas fa-code-branch"}),v(" Anonymized repositories")],-1)),s("span",sw,c(e.repositories?.length),1)]),s("div",nw,[s("span",ow,c(e.fmt?.number(e.repositories?.length)),1),s("span",{class:O(["summary-pill ok",{active:e.filters?.status?.ready===!1}]),title:"Toggle ready filter",onClick:t[8]||(t[8]=n=>e.filters.status.ready=!e.filters.status.ready)},[t[48]||(t[48]=v("Ready ",-1)),s("span",rw,c(e.fmt?.number(e.statusCountFor("ready"))),1)],2),s("span",{class:O(["summary-pill warn",{active:e.filters?.status?.preparing===!1}]),title:"Toggle preparing filter",onClick:t[9]||(t[9]=n=>e.filters.status.preparing=!e.filters.status.preparing)},[t[49]||(t[49]=v("Preparing ",-1)),s("span",iw,c(e.fmt?.number(e.statusCountFor("preparing"))),1)],2),s("span",{class:O(["summary-pill error",{active:e.filters?.status?.error===!1}]),title:"Toggle errored filter",onClick:t[10]||(t[10]=n=>e.filters.status.error=!e.filters.status.error)},[t[50]||(t[50]=v("Errored ",-1)),s("span",aw,c(e.fmt?.number(e.statusCountFor("error"))),1)],2),s("span",{class:O(["summary-pill",{active:e.filters?.status?.expired===!1}]),title:"Toggle expired filter",onClick:t[11]||(t[11]=n=>e.filters.status.expired=!e.filters.status.expired)},[t[51]||(t[51]=v("Expired ",-1)),s("span",lw,c(e.fmt?.number(e.statusCountFor("expired"))),1)],2),s("span",{class:O(["summary-pill",{active:e.filters?.status?.removed===!1}]),title:"Toggle removed filter",onClick:t[12]||(t[12]=n=>e.filters.status.removed=!e.filters.status.removed)},[t[52]||(t[52]=v("Removed ",-1)),s("span",dw,c(e.fmt?.number(e.statusCountFor("removed"))),1)],2)]),E((l(),d("form",uw,[s("div",cw,[s("div",pw,[E(s("input",fw,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),t[54]||(t[54]=s("span",{class:"admin-filter-spacer"},null,-1)),s("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[13]||(t[13]=n=>e.exportCsv())},[...t[53]||(t[53]=[s("i",{class:"fas fa-file-csv"},null,-1),v(" Export",-1)])])])])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",mw,[s("span",null,[s("strong",null,c(e.selectedCount()),1),t[55]||(t[55]=v(" selected",-1))]),s("button",{class:"btn btn-sm",type:"button",onClick:t[14]||(t[14]=n=>e.bulkRefresh())},[...t[56]||(t[56]=[s("i",{class:"fas fa-sync"},null,-1),v(" Force refresh",-1)])]),s("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[15]||(t[15]=n=>e.bulkRemoveCache())},[...t[57]||(t[57]=[s("i",{class:"fas fa-broom"},null,-1),v(" Remove cache",-1)])]),s("button",{class:"btn btn-sm",type:"button",onClick:t[16]||(t[16]=n=>e.clearSelection())},"Clear")])):f("v-if",!0),s("div",hw,[s("div",vw,[s("div",yw,[s("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[17]||(t[17]=n=>e.selectAllOnPage()),checked:e.allSelected},null,8,gw)]),s("div",bw,[s("span",{class:O(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[18]||(t[18]=n=>e.sortBy("source.repositoryName"))},[t[58]||(t[58]=v("Repository ",-1)),s("i",{class:O(["fas",e.sortIcon("source.repositoryName")])},null,2)],2)]),s("div",ww,[s("span",{class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[19]||(t[19]=n=>e.sortBy("status"))},[t[59]||(t[59]=v("Status ",-1)),s("i",{class:O(["fas",e.sortIcon("status")])},null,2)],2)]),s("div",kw,[s("span",{class:O(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[20]||(t[20]=n=>e.sortBy("pageView"))},[t[60]||(t[60]=v("Views ",-1)),s("i",{class:O(["fas",e.sortIcon("pageView")])},null,2)],2)]),s("div",_w,[s("span",{class:O(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[21]||(t[21]=n=>e.sortBy("anonymizeDate"))},[t[61]||(t[61]=v("Anonymized ",-1)),s("i",{class:O(["fas",e.sortIcon("anonymizeDate")])},null,2)],2)]),t[62]||(t[62]=s("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(Y,null,oe(e.filteredRepositories,(n,i)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":n?.status=="expired"||n?.status=="removed","repo-error":n?.status=="error","row-selected":e.selected[n?.repoId]}]),role:"row"},[s("div",Ew,[E(s("input",Cw,null,512),[[o,{state:e.viewState,set:a=>{e.selected[n.repoId]=a},value:e.selected[n?.repoId],form:null,options:{}}]])]),s("div",Nw,[t[67]||(t[67]=s("span",{class:"type-badge type-repo"},"Repo",-1)),s("div",Sw,[s("a",{class:"repo-name",target:"_blank",textContent:c(n?.repoId),href:e.safeUrl("/r/"+n?.repoId)},null,8,Dw),s("div",Rw,[s("a",{textContent:c(n?.source?.fullName),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/")},null,8,Tw),n?.options?.update?(l(),d("span",Ow,[t[63]||(t[63]=v("\xA0\xB7\xA0",-1)),s("a",{textContent:c(n?.source?.branch),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.branch)},null,8,Aw)])):f("v-if",!0),n?.options?.update?f("v-if",!0):(l(),d("span",Iw,[t[64]||(t[64]=v("\xA0\xB7\xA0@",-1)),s("a",{textContent:c(n?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.commit)},null,8,Vw)])),n?.conference?(l(),d("span",Pw,[t[65]||(t[65]=v("\xA0\xB7\xA0",-1)),t[66]||(t[66]=s("i",{class:"fas fa-chalkboard-teacher"},null,-1)),v(" "+c(n?.conference),1)])):f("v-if",!0),s("span",null,"\xA0\xB7\xA0"+c(e.fmt?.humanFileSize(n?.size?.storage)),1),s("span",null,"\xA0\xB7\xA0"+c(e.fmt?.number(n?.options?.terms?.length))+" terms",1)])])]),s("div",qw,[s("span",Mw,[s("span",{class:O(["status-dot",{"status-removed":n?.status=="removed"||n?.status=="expired","status-ready":n?.status=="ready","status-error":n?.status=="error","status-preparing":n?.status=="preparing"}])},null,2),s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,$w)]),n?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(n?.statusMessage)),title:n?.statusMessage},null,8,Lw)):f("v-if",!0)]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.pageView||0))},null,8,Fw),s("div",{class:"cell-expires",role:"cell",textContent:c(e.fmt?.humanTime(n?.anonymizeDate))},null,8,Uw),s("div",zw,[s("div",Hw,[t[79]||(t[79]=s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"})],-1)),s("div",Bw,[s("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+n?.repoId)},[...t[68]||(t[68]=[s("i",{class:"far fa-edit"},null,-1),v(" Edit",-1)])],8,Gw),s("a",{class:"dropdown-item",href:e.safeUrl("/r/"+n?.repoId+"/")},[...t[69]||(t[69]=[s("i",{class:"fa fa-eye"},null,-1),v(" View repo",-1)])],8,jw),n?.options?.page&&n?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+n?.repoId+"/")},[...t[70]||(t[70]=[s("i",{class:"fas fa-globe"},null,-1),v(" View page",-1)])],8,Ww)):f("v-if",!0),s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.fetchGithubInfo(n),["prevent"])},[...t[71]||(t[71]=[s("i",{class:"fab fa-github"},null,-1),v(" Live GitHub info",-1)])],8,Kw),t[77]||(t[77]=s("div",{class:"dropdown-divider"},null,-1)),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updateRepository(n),["prevent"])},[...t[72]||(t[72]=[s("i",{class:"fas fa-sync"},null,-1),v(" Force update",-1)])],8,Yw),[[G,n?.status=="ready"||n?.status=="error"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updateRepository(n),["prevent"])},[...t[73]||(t[73]=[s("i",{class:"fas fa-check-circle"},null,-1),v(" Enable",-1)])],8,Jw),[[G,n?.status=="removed"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.showStatusMessage(n),["prevent"])},[...t[74]||(t[74]=[s("i",{class:"fas fa-exclamation-triangle"},null,-1),v(" View status message",-1)])],8,Qw),[[G,n?.statusMessage]]),t[78]||(t[78]=s("div",{class:"dropdown-divider"},null,-1)),s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.removeCache(n),["prevent"])},[...t[75]||(t[75]=[s("i",{class:"fas fa-broom"},null,-1),v(" Remove cache",-1)])],8,Xw),E(s("a",{class:"dropdown-item text-danger",href:"#",onClick:ke(a=>e.removeRepository(n),["prevent"])},[...t[76]||(t[76]=[s("i",{class:"fas fa-trash-alt"},null,-1),v(" Remove",-1)])],8,Zw),[[G,n?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",xw,[...t[80]||(t[80]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No repositories match the current filters.",-1)])])):f("v-if",!0)])])}var ek={class:"container paper-page admin-page"},tk={class:"admin-summary"},sk={class:"summary-total"},nk={class:"count"},ok={class:"count"},rk={class:"count"},ik={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},ak={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},lk={class:"admin-filter-row"},dk={class:"search-wrap"},uk={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},ck={key:0,class:"admin-search-hint"},pk={class:"admin-filter-inline"},fk={class:"form-control form-control-sm"},mk={class:"admin-filter-inline","aria-label":"Pagination"},hk=["disabled"],vk={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},yk=["disabled"],gk={key:0,class:"admin-filter-row"},bk={class:"admin-active-chips"},wk={class:"key"},kk=["onClick"],_k={key:1,class:"bulk-bar"},Ek={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},Ck={class:"paper-table-head admin-users-row",role:"row"},Nk={role:"columnheader",style:{width:"28px"}},Sk=["checked"],Dk={role:"columnheader"},Rk={role:"columnheader"},Tk={role:"cell",style:{width:"28px"}},Ok={type:"checkbox","aria-label":"Select user"},Ak={class:"cell-anon",role:"cell"},Ik=["src"],Vk={class:"anon-text"},Pk=["textContent","href"],qk={class:"anon-sub"},Mk={key:0},$k={key:1},Lk=["href"],Fk={key:2},Uk={class:"cell-views num",role:"cell"},zk=["textContent","href"],Hk={class:"cell-status",role:"cell"},Bk=["textContent"],Gk={class:"cell-status",role:"cell"},jk={key:0,class:"type-badge type-repo"},Wk={key:1,class:"empty-dash"},Kk={class:"cell-actions",role:"cell"},Yk={class:"dropdown"},Jk={class:"dropdown-menu dropdown-menu-right"},Qk=["href"],Xk=["href"],Zk=["onClick"],xk=["onClick"],e_={key:0,class:"paper-table-empty"},t_={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},s_={style:{"font-size":"12px",color:"var(--ink-muted)"}},n_={key:0,class:"pagination-compact"},o_=["disabled"],r_=["max"],i_=["disabled"],a_={class:"admin-filter-inline"},l_={class:"form-control form-control-sm"};function el(e,t){let o=we("field"),r=we("form");return l(),d("div",ek,[t[43]||(t[43]=ge('
Admin \xA0/\xA0 Users

Users

',3)),s("div",tk,[s("span",sk,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),s("span",{class:O(["summary-pill ok",{active:e.query?.status=="active"}]),onClick:t[0]||(t[0]=n=>{e.query.status=e.query.status=="active"?"":"active",e.query.page=1})},[t[13]||(t[13]=v("Active ",-1)),s("span",nk,c(e.fmt?.number(e.statusCountFor("active"))),1)],2),s("span",{class:O(["summary-pill error",{active:e.query?.status=="banned"}]),onClick:t[1]||(t[1]=n=>{e.query.status=e.query.status=="banned"?"":"banned",e.query.page=1})},[t[14]||(t[14]=v("Banned ",-1)),s("span",ok,c(e.fmt?.number(e.statusCountFor("banned"))),1)],2),s("span",{class:O(["summary-pill",{active:e.query?.status=="removed"}]),onClick:t[2]||(t[2]=n=>{e.query.status=e.query.status=="removed"?"":"removed",e.query.page=1})},[t[15]||(t[15]=v("Removed ",-1)),s("span",rk,c(e.fmt?.number(e.statusCountFor("removed"))),1)],2)]),e.fetchError?(l(),d("div",ik,[t[16]||(t[16]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),v(" "+c(e.fetchError),1)])):f("v-if",!0),E((l(),d("form",ak,[s("div",lk,[s("div",dk,[E(s("input",uk,null,512),[[o,{state:e.viewState,set:n=>{e.query.search=n},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(l(),d("span",ck,"/"))]),s("span",pk,[t[18]||(t[18]=s("label",null,"Role",-1)),E((l(),d("select",fk,[...t[17]||(t[17]=[s("option",{value:""},"Any",-1),s("option",{value:"admin"},"Admin",-1)])])),[[o,{state:e.viewState,set:n=>{e.query.role=n},value:e.query?.role,form:null,options:{}}]])]),t[22]||(t[22]=s("span",{class:"admin-filter-spacer"},null,-1)),s("button",{class:"btn btn-sm",type:"button",onClick:t[3]||(t[3]=n=>e.exportCsv())},[...t[19]||(t[19]=[s("i",{class:"fas fa-file-csv"},null,-1),v(" Export",-1)])]),s("span",mk,[s("button",{class:"btn btn-sm",type:"button",onClick:t[4]||(t[4]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[20]||(t[20]=[s("i",{class:"fas fa-chevron-left"},null,-1)])],8,hk),s("span",vk,c(e.query?.page)+"/"+c(e.totalPage||1),1),s("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[21]||(t[21]=[s("i",{class:"fas fa-chevron-right"},null,-1)])],8,yk)])]),e.chips?.length?(l(),d("div",gk,[s("div",bk,[(l(!0),d(Y,null,oe(e.chips,(n,i)=>(l(),d("span",{class:"admin-active-chip",key:n?.key},[s("span",wk,c(n?.label),1),s("span",null,c(n?.value),1),s("button",{type:"button",onClick:a=>e.clearFilter(n.key)},[...t[23]||(t[23]=[s("i",{class:"fas fa-times"},null,-1)])],8,kk)]))),128))])])):f("v-if",!0)])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",_k,[s("span",null,[s("strong",null,c(e.selectedCount()),1),t[24]||(t[24]=v(" selected",-1))]),s("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[6]||(t[6]=n=>e.bulkBan())},[...t[25]||(t[25]=[s("i",{class:"fas fa-ban"},null,-1),v(" Ban",-1)])]),s("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=n=>{e.selected={},e.allSelected=!1})},"Clear")])):f("v-if",!0),s("div",Ek,[s("div",Ck,[s("div",Nk,[s("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[8]||(t[8]=n=>e.selectAllOnPage()),checked:e.allSelected},null,8,Sk)]),s("div",Dk,[s("span",{class:O(["sortable",{active:e.query?.sort=="username"}]),onClick:t[9]||(t[9]=n=>e.sortBy("username"))},[t[26]||(t[26]=v("User ",-1)),s("i",{class:O(["fas",e.sortIcon("username")])},null,2)],2)]),t[28]||(t[28]=s("div",{role:"columnheader",class:"num"},"Repos",-1)),s("div",Rk,[s("span",{class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[10]||(t[10]=n=>e.sortBy("status"))},[t[27]||(t[27]=v("Status ",-1)),s("i",{class:O(["fas",e.sortIcon("status")])},null,2)],2)]),t[29]||(t[29]=s("div",{role:"columnheader"},"Role",-1)),t[30]||(t[30]=s("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(Y,null,oe(e.filteredUsers,(n,i)=>(l(),d("div",{class:O(["paper-table-row admin-users-row",{"row-selected":e.selected[n?.username]}]),role:"row"},[s("div",Tk,[E(s("input",Ok,null,512),[[o,{state:e.viewState,set:a=>{e.selected[n.username]=a},value:e.selected[n?.username],form:null,options:{}}]])]),s("div",Ak,[n?.photo?(l(),d("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(n?.photo)},null,8,Ik)):f("v-if",!0),s("div",Vk,[s("a",{class:"repo-name",textContent:c(n?.username),href:e.safeUrl("/admin/users/"+n?.username)},null,8,Pk),s("div",qk,[n?.emails[0].email?(l(),d("span",Mk,c(n?.emails[0].email),1)):f("v-if",!0),n?.emails[0].email?(l(),d("span",$k,"\xA0\xB7\xA0")):f("v-if",!0),s("a",{target:"_blank",href:e.safeUrl("https://github.com/"+n?.username)},[t[31]||(t[31]=s("i",{class:"fab fa-github"},null,-1)),v(" "+c(n?.username),1)],8,Lk),n?.dateOfEntry?(l(),d("span",Fk,"\xA0\xB7\xA0Joined "+c(e.fmt?.humanTime(n?.dateOfEntry)),1)):f("v-if",!0)])])]),s("div",Uk,[s("a",{title:"Show this user's repositories",textContent:c(e.fmt?.number(n?.repoCount||0)),href:e.safeUrl("/admin/?owner="+n?.username)},null,8,zk)]),s("div",Hk,[s("span",{class:O(["status-dot",{"status-ready":n?.status=="active","status-removed":n?.status=="removed"||n?.status=="banned"}])},null,2),s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,Bk)]),s("div",Gk,[n?.isAdmin?(l(),d("span",jk,"Admin")):f("v-if",!0),n?.isAdmin?f("v-if",!0):(l(),d("span",Wk,"\u2014"))]),s("div",Kk,[s("div",Yk,[t[37]||(t[37]=s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"})],-1)),s("div",Jk,[s("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+n?.username)},[...t[32]||(t[32]=[s("i",{class:"far fa-eye"},null,-1),v(" View details",-1)])],8,Qk),s("a",{class:"dropdown-item",href:e.safeUrl("/admin/?owner="+n?.username)},[...t[33]||(t[33]=[s("i",{class:"fas fa-code-branch"},null,-1),v(" View repositories",-1)])],8,Xk),t[36]||(t[36]=s("div",{class:"dropdown-divider"},null,-1)),E(s("a",{class:"dropdown-item text-danger",href:"#",onClick:ke(a=>e.banUser(n),["prevent"])},[...t[34]||(t[34]=[s("i",{class:"fas fa-ban"},null,-1),v(" Ban",-1)])],8,Zk),[[G,n?.status=="active"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.activateUser(n),["prevent"])},[...t[35]||(t[35]=[s("i",{class:"fas fa-check-circle"},null,-1),v(" Activate",-1)])],8,xk),[[G,n?.status=="removed"||n?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(l(),d("div",e_,[...t[38]||(t[38]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No users match the current filters.",-1)])])):f("v-if",!0)]),s("div",t_,[s("span",s_,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",n_,[s("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=n=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[39]||(t[39]=[s("i",{class:"fas fa-chevron-left"},null,-1),v(" Previous",-1)])],8,o_),E(s("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,r_),[[o,{state:e.viewState,set:n=>{e.query.page=n},value:e.query?.page,form:null,options:{}}]]),s("span",null,"of "+c(e.totalPage),1),s("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=n=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[40]||(t[40]=[v("Next ",-1),s("i",{class:"fas fa-chevron-right"},null,-1)])],8,i_)])):f("v-if",!0),s("span",a_,[t[42]||(t[42]=s("label",null,"Per page",-1)),E((l(),d("select",l_,[...t[41]||(t[41]=[s("option",{value:"10"},"10",-1),s("option",{value:"25"},"25",-1),s("option",{value:"50"},"50",-1),s("option",{value:"100"},"100",-1)])])),[[o,{state:e.viewState,set:n=>{e.query.limit=n},value:e.query?.limit,form:null,options:{}}]])])])])}var d_={class:"anonymize-page h-100"},u_={class:"anonymize-landing"},c_={class:"anonymize-landing-inner"},p_={class:"form-group mt-4 mb-2"},f_={class:"source-url-label-row"},m_={key:0,class:"repo-access","aria-label":"GitHub access"},h_={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},v_=["aria-pressed","disabled"],y_=["aria-pressed","disabled"],g_={key:1,class:"connection-badge"},b_={id:"sourceUrl-landing",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},w_={key:0,class:"repo-access-details","aria-label":"GitHub access"},k_={class:"repo-access-main"},__={class:"repo-access-controls"},E_={key:1,class:"connection-link",href:"/connections"},C_={class:"repo-access-note"},N_={key:0},S_={class:"anonymize-workspace"},D_={class:"anonymize-topbar"},R_={class:"anonymize-topbar-inner"},T_={class:"paper-crumbs"},O_={class:"here"},A_={class:"anonymize-topbar-head"},I_={class:"paper-page-title anonymize-topbar-title"},V_={key:0},P_={key:1},q_={class:"anonymize-split"},M_={class:"anonymize-form-col overflow-auto"},$_={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},L_={class:"paper-settings-section"},F_={class:"form-group"},U_={class:"source-url-label-row"},z_={key:0,class:"repo-access","aria-label":"GitHub access"},H_={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},B_=["aria-pressed","disabled"],G_=["aria-pressed","disabled"],j_={key:1,class:"connection-badge"},W_=["disabled"],K_={class:"invalid-feedback"},Y_={class:"invalid-feedback"},J_={class:"invalid-feedback"},Q_={class:"invalid-feedback"},X_={key:0,class:"repo-access-details","aria-label":"GitHub access"},Z_={class:"repo-access-main"},x_={class:"repo-access-controls"},e0={key:1,class:"connection-link",href:"/connections"},t0={class:"repo-access-note"},s0={key:0},n0={key:1,class:"form-grid-2"},o0={class:"form-group"},r0={class:"input-group"},i0={class:"form-control",id:"branch",name:"branch"},a0=["textContent","value"],l0={class:"input-group-append"},d0={class:"form-group"},u0=["disabled"],c0={class:"invalid-feedback"},p0={class:"invalid-feedback"},f0={class:"form-check"},m0={class:"form-check-input",type:"checkbox",id:"update",name:"update"},h0={class:"paper-settings-section"},v0={class:"form-group"},y0=["disabled"],g0={class:"form-text text-muted"},b0={class:"invalid-feedback"},w0={class:"form-group"},k0=["disabled"],_0={class:"form-text text-muted"},E0={class:"invalid-feedback"},C0={class:"form-group"},N0=["disabled"],S0={class:"form-text text-muted"},D0={class:"invalid-feedback"},R0={class:"form-group"},T0={class:"form-text text-muted"},O0=["href"],A0={class:"invalid-feedback"},I0={class:"form-text text-muted"},V0={class:"paper-settings-section"},P0={class:"form-group"},q0={class:"form-text text-muted"},M0={class:"warning-feedback"},$0={class:"invalid-feedback"},L0={class:"paper-settings-section"},F0={class:"form-check"},U0={class:"form-check-input",type:"checkbox",id:"link",name:"link"},z0={class:"form-check"},H0={class:"form-check-input",type:"checkbox",id:"image",name:"image"},B0={class:"form-check"},G0={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},j0={class:"form-check"},W0={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},K0={class:"form-check"},Y0=["disabled"],J0={class:"form-check"},Q0={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},X0={class:"form-check"},Z0={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},x0={class:"form-check"},eE={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},tE={class:"form-check"},sE={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},nE={class:"form-check"},oE={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},rE={class:"form-check"},iE={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},aE={class:"form-check"},lE={class:"form-check-input",type:"checkbox",id:"title",name:"title"},dE={class:"form-check"},uE={class:"form-check-input",type:"checkbox",id:"body",name:"body"},cE={class:"form-check"},pE={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},fE={class:"form-check"},mE={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},hE={class:"form-check"},vE={class:"form-check-input",type:"checkbox",id:"username",name:"username"},yE={class:"form-check"},gE={class:"form-check-input",type:"checkbox",id:"date",name:"date"},bE={class:"form-check"},wE={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},kE={class:"paper-settings-section"},_E={class:"form-grid-2"},EE={class:"form-group"},CE={class:"form-control",id:"expiration",name:"expiration"},NE={class:"form-group"},SE=["min","max"],DE={class:"invalid-feedback"},RE={class:"invalid-feedback"},TE={class:"paper-settings-section"},OE={class:"form-group"},AE={style:{position:"relative"}},IE={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},VE={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},PE=["onClick"],qE=["src"],ME=["textContent"],$E=["textContent"],LE={class:"coauthor-list"},FE={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},UE=["src"],zE=["textContent","href"],HE=["onClick"],BE={class:"form-text text-muted"},GE=["textContent"],jE={class:"anonymize-submit-bar"},WE={key:0,class:"anonymize-preview-col"},KE=["innerHTML"],YE={key:1,class:"anonymize-preview-col"},JE={class:"anonymize-preview-body"},QE={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},XE={class:"pr-title mb-1"},ZE={key:0},xE=["textContent"],eC={key:0},tC={key:1},sC={key:2},nC={class:"pr-comments mt-3"},oC={class:"pr-comment"},rC={class:"pr-comment-head"},iC=["textContent"],aC={key:0,class:"pr-comment-date"},lC={key:3},dC={class:"pr-comments"},uC={class:"pr-comment"},cC={class:"pr-comment-head"},pC={key:0,class:"pr-comment-author"},fC=["textContent"],mC=["textContent"],hC={key:0,class:"pr-comment-body"},vC={key:2,class:"anonymize-preview-col"},yC={class:"anonymize-preview-body"},gC={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},bC={class:"pr-title mb-1"},wC={key:0},kC=["textContent"],_C={key:0},EC={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--paper-bg-alt)"}},CC={key:2,class:"paper-tabs",role:"tablist"},NC=["textContent"],SC={class:"paper-tab-content"},DC={key:0},RC=["innerHTML"],TC={key:1},OC={class:"pr-comments"},AC={class:"pr-comment"},IC={class:"pr-comment-head"},VC={key:0,class:"pr-comment-author"},PC=["textContent"],qC=["textContent"],MC={key:0,class:"pr-comment-body"};function tl(e,t){let o=et("gist-file"),r=et("markdown"),n=we("field"),i=we("form");return l(),d("div",d_,[f(" ===== STATE 1: No URL \u2014 centered input ===== "),E(s("div",u_,[s("div",c_,[t[19]||(t[19]=s("div",{class:"paper-crumbs"},[v("My work \xA0/\xA0 "),s("span",{class:"here"},"New anonymization")],-1)),t[20]||(t[20]=s("h1",{class:"paper-page-title"},[v("New "),s("em",null,"anonymization")],-1)),t[21]||(t[21]=s("p",{class:"paper-page-lede"}," Paste a GitHub repository, pull-request, or gist URL. We\u2019ll fetch it, strip every trace of identity, and hand you back a stable link. ",-1)),s("div",p_,[s("div",f_,[t[16]||(t[16]=s("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",m_,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",h_,[s("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=a=>e.chooseGitHubConnection("github-app"))},[...t[15]||(t[15]=[s("i",{class:"fas fa-shield-alt","aria-hidden":"true"},null,-1),v(),s("span",{class:"sr-only"},"Read-only ",-1),v("GitHub App",-1)])],8,v_),s("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,y_)])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",g_,c(e.detectedType!=="gist"&&e.githubConnection==="github-app"?"Read-only GitHub App":"Legacy OAuth"),1)):f("v-if",!0)])):f("v-if",!0)]),E(s("input",b_,null,512),[[n,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]])]),t[22]||(t[22]=s("small",{class:"form-text",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",w_,[s("div",k_,[s("div",__,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=a=>e.grantGitHubAccess())},[...t[17]||(t[17]=[v("Manage access ",-1),s("i",{class:"fas fa-external-link-alt","aria-hidden":"true"},null,-1)])])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",E_,c(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):f("v-if",!0)])]),s("div",C_,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",N_,"Select repositories on GitHub, then return here.")):f("v-if",!0),t[18]||(t[18]=s("span",null,[s("i",{class:"fas fa-info-circle","aria-hidden":"true"}),v(" Selected content will be published, including content from private repositories.")],-1))])])):f("v-if",!0)])],512),[[G,!e.sourceUrl]]),f(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),E(s("div",S_,[s("header",D_,[s("div",R_,[s("div",T_,[t[23]||(t[23]=s("a",{href:"/dashboard"},"My work",-1)),t[24]||(t[24]=v(" \xA0/\xA0 ",-1)),s("span",O_,c(e.isUpdate?"Edit anonymization":"New anonymization"),1)]),s("div",A_,[s("h1",I_,[e.isUpdate?f("v-if",!0):(l(),d("span",V_,[...t[25]||(t[25]=[v("New ",-1),s("em",null,"anonymization",-1)])])),e.isUpdate?(l(),d("span",P_,[...t[26]||(t[26]=[v("Edit ",-1),s("em",null,"anonymization",-1)])])):f("v-if",!0)]),E(s("span",{class:O(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},c(e.detectedType==="repo"?"Repo":e.detectedType==="pr"?"PR":"Gist"),3),[[G,e.detectedType]])])])]),s("div",q_,[f(" Form column (left) "),s("div",M_,[E((l(),d("form",$_,[s("section",L_,[t[36]||(t[36]=s("div",{class:"paper-section-eyebrow"},"Source",-1)),s("div",F_,[s("div",U_,[t[28]||(t[28]=s("label",{class:"paper-field-label",for:"sourceUrl"},"GitHub URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",z_,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",H_,[s("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[3]||(t[3]=a=>e.chooseGitHubConnection("github-app"))},[...t[27]||(t[27]=[s("i",{class:"fas fa-shield-alt","aria-hidden":"true"},null,-1),v(),s("span",{class:"sr-only"},"Read-only ",-1),v("GitHub App",-1)])],8,B_),s("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[4]||(t[4]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,G_)])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",j_,c(e.detectedType!=="gist"&&e.githubConnection==="github-app"?"Read-only GitHub App":"Legacy OAuth"),1)):f("v-if",!0)])):f("v-if",!0)]),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,W_),[[n,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),E(s("div",K_," Please provide a valid GitHub URL. ",512),[[G,e.anonymize?.sourceUrl?.errors?.github]]),E(s("div",Y_," Not accessible. The organization may restrict access. ",512),[[G,e.anonymize?.sourceUrl?.errors?.access]]),E(s("div",J_," Does not exist or is not accessible. ",512),[[G,e.anonymize?.sourceUrl?.errors?.missing]]),E(s("div",Q_," Already anonymized. ",512),[[G,e.anonymize?.sourceUrl?.errors?.used]])]),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",X_,[s("div",Z_,[s("div",x_,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[5]||(t[5]=a=>e.grantGitHubAccess())},[...t[29]||(t[29]=[v("Manage access ",-1),s("i",{class:"fas fa-external-link-alt","aria-hidden":"true"},null,-1)])])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",e0,c(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):f("v-if",!0)])]),s("div",t0,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",s0,"Select repositories on GitHub, then return here.")):f("v-if",!0),t[30]||(t[30]=s("span",null,[s("i",{class:"fas fa-info-circle","aria-hidden":"true"}),v(" Selected content will be published, including content from private repositories.")],-1))])])):f("v-if",!0),e.detectedType==="repo"?(l(),d("div",n0,[s("div",o0,[t[32]||(t[32]=s("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),s("div",r0,[E((l(),d("select",i0,[(l(!0),d(Y,null,oe(e.branches,(a,u)=>(l(),d("option",{textContent:c(a?.name),value:a?.name},null,8,a0))),256))])),[[n,{state:e.viewState,set:a=>{e.source.branch=a},value:e.source?.branch,form:"anonymize",options:{}}]]),s("div",l0,[s("button",{class:"btn",type:"button",title:"Refresh","data-toggle":"tooltip","data-placement":"bottom",onClick:t[6]||(t[6]=a=>e.getBranches(!0))},[...t[31]||(t[31]=[s("i",{class:"fas fa-sync","aria-hidden":"true"},null,-1)])])])])]),s("div",d0,[t[33]||(t[33]=s("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),E(s("input",{class:O(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,u0),[[n,{state:e.viewState,set:a=>{e.source.commit=a},value:e.source?.commit,form:"anonymize",options:{}}]]),E(s("div",c0," The commit SHA is not valid. ",512),[[G,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),E(s("div",p0," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[G,e.anonymize?.commit?.errors?.exists]])])])):f("v-if",!0),E(s("div",f0,[E(s("input",m0,null,512),[[n,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"anonymize",options:{}}]]),t[34]||(t[34]=s("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[35]||(t[35]=s("small",{class:"form-text text-muted"},"Follow the branch and pull the latest commit automatically, at most once an hour.",-1))],512),[[G,e.detectedType]])]),E(s("section",h0,[t[47]||(t[47]=s("div",{class:"paper-section-eyebrow"},"Identity",-1)),E(s("div",v0,[t[39]||(t[39]=s("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,y0),[[n,{state:e.viewState,set:a=>{e.repoId=a},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),s("small",g0,[t[37]||(t[37]=v("Your share link will be ",-1)),s("code",null,"anonymous.4open.science/r/"+c(e.repoId),1),t[38]||(t[38]=v(".",-1))]),E(s("div",b0,"ID can only contain letters and numbers.",512),[[G,e.anonymize?.repoId?.errors?.format]]),E(s("div",{class:"invalid-feedback"},c(e.repoId)+" is already used.",513),[[G,e.anonymize?.repoId?.errors?.used]])],512),[[G,e.detectedType==="repo"]]),E(s("div",w0,[t[42]||(t[42]=s("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,k0),[[n,{state:e.viewState,set:a=>{e.pullRequestId=a},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),s("small",_0,[t[40]||(t[40]=v("Your share link will be ",-1)),s("code",null,"anonymous.4open.science/pr/"+c(e.pullRequestId),1),t[41]||(t[41]=v(".",-1))]),E(s("div",E0,"ID can only contain letters and numbers.",512),[[G,e.anonymize?.pullRequestId?.errors?.format]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used.",513),[[G,e.anonymize?.pullRequestId?.errors?.used]])],512),[[G,e.detectedType==="pr"]]),E(s("div",C0,[t[45]||(t[45]=s("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,N0),[[n,{state:e.viewState,set:a=>{e.gistId=a},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),s("small",S0,[t[43]||(t[43]=v("Your share link will be ",-1)),s("code",null,"anonymous.4open.science/gist/"+c(e.gistId),1),t[44]||(t[44]=v(".",-1))]),E(s("div",D0,"ID can only contain letters and numbers.",512),[[G,e.anonymize?.gistId?.errors?.format]]),E(s("div",{class:"invalid-feedback"},c(e.gistId)+" is already used.",513),[[G,e.anonymize?.gistId?.errors?.used]])],512),[[G,e.detectedType==="gist"]]),s("div",R0,[t[46]||(t[46]=s("label",{class:"paper-field-label",for:"conference"},[v("Conference "),s("span",{class:"paper-optional"},"(optional)")],-1)),E(s("input",{class:O(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[n,{state:e.viewState,set:a=>{e.conference=a},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),E(s("small",T0,[s("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,O0),v(" expires "+c(e.fmt?.date(e.conference_data?.endDate))+". ",1)],512),[[G,e.conference_data]]),E(s("div",A0,"The conference is not activated.",512),[[G,e.anonymize?.conference?.errors?.activated]]),E(s("small",I0,"Link to a conference to apply its shared defaults.",512),[[G,!e.conference_data]])])],512),[[G,e.detectedType]]),E(s("section",V0,[t[55]||(t[55]=s("div",{class:"paper-section-eyebrow"},"Anonymization",-1)),s("div",P0,[t[54]||(t[54]=s("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),E(s("textarea",{class:O(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"4"},null,2),[[n,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"anonymize",options:{debounce:250}}]]),s("small",q0,[t[48]||(t[48]=v("One term per line (regex allowed). Replaced by ",-1)),s("code",null,c(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[49]||(t[49]=v(", or use ",-1)),t[50]||(t[50]=s("code",null,"term=>replacement",-1)),t[51]||(t[51]=v(" to pick your own (e.g. ",-1)),t[52]||(t[52]=s("code",null,"Anonymous=>ABC",-1)),t[53]||(t[53]=v(").",-1))]),E(s("div",M0,"Regex characters detected. Escape them if unintentional.",512),[[G,e.termsRegexWarning]]),E(s("div",$0,"Terms are in an invalid format.",512),[[G,e.anonymize?.terms?.errors?.format]])])],512),[[G,e.detectedType]]),E(s("section",L0,[t[74]||(t[74]=s("div",{class:"paper-section-eyebrow"},"Display",-1)),E(s("div",null,[s("div",F0,[E(s("input",U0,null,512),[[n,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"anonymize",options:{}}]]),t[56]||(t[56]=s("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),s("div",z0,[E(s("input",H0,null,512),[[n,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"anonymize",options:{}}]]),t[57]||(t[57]=s("label",{class:"form-check-label",for:"image"},"Display images",-1))]),s("div",B0,[E(s("input",G0,null,512),[[n,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[58]||(t[58]=s("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1))]),s("div",j0,[E(s("input",W0,null,512),[[n,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[59]||(t[59]=s("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))]),s("div",K0,[E(s("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,Y0),[[n,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"anonymize",options:{}}]]),t[60]||(t[60]=s("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),E(s("small",{class:"form-text text-muted d-block"},c(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),513),[[G,!e.details?.hasPage]]),E(s("small",{class:"form-text text-muted d-block"},c(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),513),[[G,e.details?.hasPage&&e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch]])])],512),[[G,e.detectedType==="repo"]]),E(s("div",null,[s("div",J0,[E(s("input",Q0,null,512),[[n,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[61]||(t[61]=s("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),s("div",X0,[E(s("input",Z0,null,512),[[n,{state:e.viewState,set:a=>{e.options.content=a},value:e.options?.content,form:"anonymize",options:{}}]]),t[62]||(t[62]=s("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),s("div",x0,[E(s("input",eE,null,512),[[n,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[63]||(t[63]=s("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),s("div",tE,[E(s("input",sE,null,512),[[n,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[64]||(t[64]=s("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),s("div",nE,[E(s("input",oE,null,512),[[n,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[65]||(t[65]=s("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),s("div",rE,[E(s("input",iE,null,512),[[n,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[66]||(t[66]=s("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[G,e.detectedType==="gist"]]),E(s("div",null,[s("div",aE,[E(s("input",lE,null,512),[[n,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[67]||(t[67]=s("label",{class:"form-check-label",for:"title"},"PR title",-1))]),s("div",dE,[E(s("input",uE,null,512),[[n,{state:e.viewState,set:a=>{e.options.body=a},value:e.options?.body,form:"anonymize",options:{}}]]),t[68]||(t[68]=s("label",{class:"form-check-label",for:"body"},"PR body",-1))]),s("div",cE,[E(s("input",pE,null,512),[[n,{state:e.viewState,set:a=>{e.options.diff=a},value:e.options?.diff,form:"anonymize",options:{}}]]),t[69]||(t[69]=s("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),s("div",fE,[E(s("input",mE,null,512),[[n,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[70]||(t[70]=s("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),s("div",hE,[E(s("input",vE,null,512),[[n,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[71]||(t[71]=s("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),s("div",yE,[E(s("input",gE,null,512),[[n,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[72]||(t[72]=s("label",{class:"form-check-label",for:"date"},"Dates",-1))]),s("div",bE,[E(s("input",wE,null,512),[[n,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[73]||(t[73]=s("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[G,e.detectedType==="pr"]])],512),[[G,e.detectedType]]),E(s("section",kE,[t[78]||(t[78]=s("div",{class:"paper-section-eyebrow"},"Expiration",-1)),s("div",_E,[s("div",EE,[t[76]||(t[76]=s("label",{class:"paper-field-label",for:"expiration"},"Strategy",-1)),E((l(),d("select",CE,[...t[75]||(t[75]=[s("option",{value:"redirect"},"Redirect to GitHub when expired",-1),s("option",{value:"remove",selected:""},"Remove when expired",-1)])])),[[n,{state:e.viewState,set:a=>{e.options.expirationMode=a},value:e.options?.expirationMode,form:"anonymize",options:{}}]])]),s("div",NE,[t[77]||(t[77]=s("label",{class:"paper-field-label",for:"expirationDate"},"Expiration date",-1)),E(s("input",{class:O(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,SE),[[n,{state:e.viewState,set:a=>{e.options.expirationDate=a},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),E(s("div",DE,"Pick a date in the future.",512),[[G,e.anonymize?.expirationDate?.errors?.min]]),E(s("div",{class:"invalid-feedback"},"Pick a date on or before "+c(e.fmt?.date(e.maxExpirationDate))+".",513),[[G,e.anonymize?.expirationDate?.errors?.max]]),E(s("div",RE,"Enter a valid expiration date.",512),[[G,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])]),E(s("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the content will be removed.",513),[[G,e.options?.expirationMode=="remove"&&e.options?.expirationDate]]),E(s("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", visitors will be redirected to GitHub.",513),[[G,e.options?.expirationMode=="redirect"&&e.options?.expirationDate]])],512),[[G,e.detectedType]]),E(s("section",TE,[t[82]||(t[82]=s("div",{class:"paper-section-eyebrow"},"Co-authors",-1)),t[83]||(t[83]=s("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),E(s("div",OE,[t[79]||(t[79]=s("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),s("div",AE,[E(s("input",IE,null,512),[[n,{state:e.viewState,set:a=>{e.coauthorSearch=a},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),E(s("div",VE,[(l(!0),d(Y,null,oe(e.coauthorResults,(a,u)=>(l(),d("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:ke(p=>e.addCoauthor(a,p),["prevent"])},[s("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(a?.photo)},null,8,qE),s("span",{textContent:c(a?.username)},null,8,ME)],8,PE))),256))],512),[[G,e.coauthorResults?.length>0]])]),E(s("small",{class:"form-text text-muted",textContent:c(e.coauthorError)},null,8,$E),[[G,e.coauthorError]])],512),[[G,e.role==="owner"||e.role==="admin"]]),s("div",LE,[(l(!0),d(Y,null,oe(e.coauthors,(a,u)=>(l(),d("div",FE,[a?.photo?(l(),d("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(a?.photo)},null,8,UE)):f("v-if",!0),s("a",{target:"_blank",textContent:c(a?.username),href:e.safeUrl("https://github.com/"+a?.username)},null,8,zE),t[81]||(t[81]=s("span",{class:"type-badge type-coauthor"},"Co-author",-1)),E(s("button",{type:"button",class:"btn btn-sm",style:{"margin-left":"auto"},title:"Remove co-author",onClick:p=>e.removeCoauthor(a)},[...t[80]||(t[80]=[s("i",{class:"fas fa-times"},null,-1)])],8,HE),[[G,e.role==="owner"||e.role==="admin"]])]))),256)),E(s("div",BE," No co-authors yet. ",512),[[G,!e.coauthors||e.coauthors?.length===0]])])],512),[[G,e.isUpdate&&e.detectedType==="repo"]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,GE)):f("v-if",!0),E(s("div",jE,[e.detectedType==="repo"&&!e.isUpdate?(l(),d("button",{key:0,type:"submit",class:"btn btn-ink",onClick:t[7]||(t[7]=ke(a=>e.submitForm(a,()=>{e.anonymizeRepo(a)}),["prevent"]))},[...t[84]||(t[84]=[s("i",{class:"fas fa-user-secret mr-1"},null,-1),v(" Anonymize Repository ",-1)])])):f("v-if",!0),e.detectedType==="repo"&&e.isUpdate?(l(),d("button",{key:1,type:"submit",class:"btn btn-ink",onClick:t[8]||(t[8]=ke(a=>e.submitForm(a,()=>{e.anonymizeRepo(a)}),["prevent"]))},[...t[85]||(t[85]=[s("i",{class:"fas fa-save mr-1"},null,-1),v(" Update Repository ",-1)])])):f("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(l(),d("button",{key:2,type:"submit",class:"btn btn-ink",onClick:t[9]||(t[9]=ke(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[86]||(t[86]=[s("i",{class:"fas fa-user-secret mr-1"},null,-1),v(" Anonymize Pull Request ",-1)])])):f("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(l(),d("button",{key:3,type:"submit",class:"btn btn-ink",onClick:t[10]||(t[10]=ke(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[87]||(t[87]=[s("i",{class:"fas fa-save mr-1"},null,-1),v(" Update Pull Request ",-1)])])):f("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(l(),d("button",{key:4,type:"submit",class:"btn btn-ink",onClick:t[11]||(t[11]=ke(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[88]||(t[88]=[s("i",{class:"fas fa-user-secret mr-1"},null,-1),v(" Anonymize Gist ",-1)])])):f("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(l(),d("button",{key:5,type:"submit",class:"btn btn-ink",onClick:t[12]||(t[12]=ke(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[89]||(t[89]=[s("i",{class:"fas fa-save mr-1"},null,-1),v(" Update Gist ",-1)])])):f("v-if",!0)],512),[[G,e.detectedType]])])),[[i,e.viewState]])]),f(" Preview column (right) "),e.detectedType==="repo"&&e.html_readme?(l(),d("div",WE,[t[90]||(t[90]=s("div",{class:"anonymize-preview-head"},[s("span",{class:"paper-eyebrow"},"Live preview"),s("span",{class:"anonymize-preview-sub"},"README with redactions applied")],-1)),s("div",{class:"anonymize-preview-body markdown-body body",innerHTML:e.sanitize(e.html_readme)},null,8,KE)])):f("v-if",!0),e.detectedType==="gist"&&e.details?(l(),d("div",YE,[t[94]||(t[94]=s("div",{class:"anonymize-preview-head"},[s("span",{class:"paper-eyebrow"},"Live preview"),s("span",{class:"anonymize-preview-sub"},"Gist with redactions applied")],-1)),s("div",JE,[s("div",QE,[s("h2",XE,[e.options?.title?(l(),d("span",ZE,c(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):f("v-if",!0),s("span",{class:O(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},c(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,xE)):f("v-if",!0)]),e.options?.origin?(l(),d("small",eC,"Gist ID: "+c(e.details?.source?.gistId),1)):f("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(l(),d("small",tC,"By @"+c(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):f("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(l(),d("div",sC,[s("ul",nC,[(l(!0),d(Y,null,oe(e.previewGistFiles,(a,u)=>(l(),d("li",oC,[s("div",rC,[s("strong",{textContent:c(a?.filename)},null,8,iC),a?.language?(l(),d("span",aC,c(a?.language),1)):f("v-if",!0)]),De(o,{file:a,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):f("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(l(),d("div",lC,[t[93]||(t[93]=s("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),s("ul",dC,[(l(!0),d(Y,null,oe(e.details?.gist?.comments,(a,u)=>(l(),d("li",uC,[s("div",cC,[e.options?.username?(l(),d("span",pC,[t[91]||(t[91]=s("i",{class:"far fa-user"},null,-1)),t[92]||(t[92]=v(" @",-1)),s("span",{textContent:c(e.anonymizeGistContent(a?.author))},null,8,fC)])):f("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(a?.updatedDate))},null,8,mC)):f("v-if",!0)]),e.options?.body?(l(),d("div",hC,[De(r,{content:e.anonymizeGistContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0)]))),256))])])):f("v-if",!0)])])):f("v-if",!0),e.detectedType==="pr"&&e.details?(l(),d("div",vC,[t[99]||(t[99]=s("div",{class:"anonymize-preview-head"},[s("span",{class:"paper-eyebrow"},"Live preview"),s("span",{class:"anonymize-preview-sub"},"Pull request with redactions applied")],-1)),s("div",yC,[s("div",gC,[s("h2",bC,[e.options?.title?(l(),d("span",wC,c(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):f("v-if",!0),s("span",{class:O(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,kC)):f("v-if",!0)]),e.options?.origin?(l(),d("small",_C,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):f("v-if",!0),e.options?.body?(l(),d("div",EC,[De(r,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0),e.options?.diff||e.options?.comments?(l(),d("nav",CC,[e.options?.diff?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",onClick:t[13]||(t[13]=a=>e.prTabState.active="diff")},[...t[95]||(t[95]=[s("i",{class:"fas fa-code"},null,-1),v(" Diff ",-1)])],2)):f("v-if",!0),e.options?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",onClick:t[14]||(t[14]=a=>e.prTabState.active="comments")},[t[96]||(t[96]=s("i",{class:"far fa-comment-dots"},null,-1)),s("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,NC)],2)):f("v-if",!0)])):f("v-if",!0),s("div",SC,[e.options?.diff&&e.prTabState?.active=="diff"?(l(),d("div",DC,[s("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,RC)])):f("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(l(),d("div",TC,[s("ul",OC,[(l(!0),d(Y,null,oe(e.details?.pullRequest?.comments,(a,u)=>(l(),d("li",AC,[s("div",IC,[e.options?.username?(l(),d("span",VC,[t[97]||(t[97]=s("i",{class:"far fa-user"},null,-1)),t[98]||(t[98]=v(" @",-1)),s("span",{textContent:c(e.anonymizePrContent(a?.author))},null,8,PC)])):f("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(a?.updatedDate))},null,8,qC)):f("v-if",!0)]),e.options?.body?(l(),d("div",MC,[De(r,{content:e.anonymizePrContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0)]))),256))])])):f("v-if",!0)])])])):f("v-if",!0)])],512),[[G,e.sourceUrl]])])}var $C={class:"container-fluid h-100 anonymize-page"},LC={class:"row h-100 flex-column flex-md-row"},FC={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},UC={class:"form-group"},zC={class:"form-group"},HC={class:"form-check"},BC={class:"form-check-input",type:"checkbox",id:"update",name:"update"},GC={class:"form-group"},jC={class:"form-text text-muted"},WC=["href"],KC={class:"invalid-feedback"},YC={class:"form-text text-muted"},JC={class:"form-group"},QC={id:"idHelp",class:"form-text text-muted"},XC={class:"invalid-feedback"},ZC={class:"form-group"},xC={class:"invalid-feedback"},eN={class:"form-group"},tN={class:"form-control",id:"expiration",name:"expiration"},sN={class:"form-group",id:"expiration-date-form"},nN={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},oN={class:"accordion mb-3",id:"options"},rN={class:"card"},iN={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},aN={class:"card-body"},lN={class:"form-group mb-0"},dN={class:"form-check"},uN={class:"form-check-input",type:"checkbox",id:"link",name:"link"},cN={class:"form-check"},pN={class:"form-check-input",type:"checkbox",id:"image",name:"image"},fN={class:"form-check"},mN={class:"form-check-input",type:"checkbox",id:"date",name:"date"},hN={class:"form-check"},vN={class:"form-check-input",type:"checkbox",id:"username",name:"username"},yN={class:"form-check"},gN={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},bN={class:"form-check"},wN={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},kN={class:"form-check"},_N={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},EN={class:"form-check"},CN={class:"form-check-input",type:"checkbox",id:"title",name:"title"},NN={class:"form-check"},SN={class:"form-check-input",type:"checkbox",id:"body",name:"body"},DN=["textContent"],RN={class:"anonymize-submit-bar"},TN={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},ON={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},AN={class:"pr-title mb-1"},IN={key:0},VN=["textContent"],PN={key:0},qN={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},MN={class:"nav nav-tabs",id:"myTab",role:"tablist"},$N={key:0,class:"nav-item",role:"presentation"},LN={key:1,class:"nav-item",role:"presentation"},FN=["textContent"],UN={class:"tab-content",id:"pills-tabContent"},zN={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},HN={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},BN={style:{"overflow-x":"auto"}},GN=["innerHTML"],jN={key:0,class:"pr-comments list-group"},WN={class:"pr-comment list-group-item"},KN={class:"d-flex w-100 justify-content-between flex-wrap"},YN={key:0,class:"mb-1"},JN=["textContent"],QN={class:"mb-1"};function sl(e,t){let o=et("markdown"),r=we("field"),n=we("form");return l(),d("div",$C,[s("div",LC,[s("div",FC,[s("div",{class:O(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[E((l(),d("form",{class:O(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=ge('
Anonymize \xA0/\xA0 Pull request

Anonymize a pull request

Fill in the details \u2014 it only takes a minute.

Source
',4)),f(" pullRequestUrl "),s("div",UC,[t[2]||(t[2]=s("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[r,{state:e.viewState,set:i=>{e.pullRequestUrl=i},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[G,e.anonymize?.pullRequestUrl?.errors?.access]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[G,e.anonymize?.pullRequestUrl?.errors?.missing]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is already anonymized ",513),[[G,e.anonymize?.pullRequestUrl?.errors?.used]])]),E(s("div",null,[s("div",zC,[s("div",HC,[E(s("input",BC,null,512),[[r,{state:e.viewState,set:i=>{e.options.update=i},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=s("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=s("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=s("div",{class:"paper-section-eyebrow anonymize-section-title"},[s("i",{class:"fas fa-chalkboard-teacher"}),v(" Conference ID ")],-1)),f(" Conference "),s("div",GC,[t[5]||(t[5]=s("label",{for:"conference"},[v("Conference ID "),s("span",{class:"text-muted"},"(Optional)")],-1)),E(s("input",{class:O(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[r,{state:e.viewState,set:i=>{e.conference=i},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),E(s("small",jC,[s("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,WC),v(" will expire on "+c(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[G,e.conference_data]]),E(s("div",KC," The conference is not activated. ",512),[[G,e.anonymize?.conference?.errors?.activated]]),E(s("small",YC," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[G,!e.conference_data]])]),t[27]||(t[27]=s("div",{class:"paper-section-eyebrow anonymize-section-title"},[s("i",{class:"fas fa-shield-alt"}),v(" Anonymization Options ")],-1)),f(" Pull Request ID "),s("div",JC,[t[6]||(t[6]=s("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[r,{state:e.viewState,set:i=>{e.pullRequestId=i},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),s("small",QC,"Id used in the url: https://anonymous.4open.science/r/"+c(e.pullRequestId),1),E(s("div",XC," Repository id can only contain letters and numbers ",512),[[G,e.anonymize?.pullRequestId?.errors?.format]]),E(s("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used ",513),[[G,e.anonymize?.pullRequestId?.errors?.used]])]),f(" Terms "),s("div",ZC,[t[7]||(t[7]=s("label",{for:"terms"},"Terms to anonymize",-1)),E(s("textarea",{class:O(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[r,{state:e.viewState,set:i=>{e.terms=i},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=s("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),E(s("div",xC," Terms are in an invalid format ",512),[[G,e.anonymize?.terms?.errors?.format]])]),s("div",eN,[t[10]||(t[10]=s("label",{for:"expiration"},"Expiration strategy",-1)),E((l(),d("select",tN,[...t[9]||(t[9]=[s("option",{value:"never",selected:""},"Never expire",-1),s("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),s("option",{value:"remove"},"Remove when expired",-1)])])),[[r,{state:e.viewState,set:i=>{e.options.expirationMode=i},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=s("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),E(s("div",sN,[t[12]||(t[12]=s("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),E(s("input",nN,null,512),[[r,{state:e.viewState,set:i=>{e.options.expirationDate=i},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),E(s("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[G,e.options?.expirationMode=="remove"]]),E(s("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+c(e.pullRequestUrl)+".",513),[[G,e.options?.expirationMode=="redirect"]])],512),[[G,e.options?.expirationMode!="never"]]),s("div",oN,[s("div",rN,[t[25]||(t[25]=s("div",{class:"card-header",id:"headingOne"},[s("h2",{class:"mb-0"},[s("button",{class:"btn btn-block text-left",type:"button","data-toggle":"collapse","data-target":"#collapseOne","aria-expanded":"true","aria-controls":"collapseOne"},[s("i",{class:"fas fa-cog mr-1"}),v(" Advanced options ")])])],-1)),s("div",iN,[s("div",aN,[s("div",lN,[s("div",dN,[E(s("input",uN,null,512),[[r,{state:e.viewState,set:i=>{e.options.link=i},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=s("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=s("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),s("div",cN,[E(s("input",pN,null,512),[[r,{state:e.viewState,set:i=>{e.options.image=i},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=s("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=s("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),s("div",fN,[E(s("input",mN,null,512),[[r,{state:e.viewState,set:i=>{e.options.date=i},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=s("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=s("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),s("div",hN,[E(s("input",vN,null,512),[[r,{state:e.viewState,set:i=>{e.options.username=i},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=s("label",{class:"form-check-label",for:"username"},"Display username",-1))]),s("div",yN,[E(s("input",gN,null,512),[[r,{state:e.viewState,set:i=>{e.options.comments=i},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=s("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),s("div",bN,[E(s("input",wN,null,512),[[r,{state:e.viewState,set:i=>{e.options.diff=i},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=s("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),s("div",kN,[E(s("input",_N,null,512),[[r,{state:e.viewState,set:i=>{e.options.origin=i},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=s("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),s("div",EN,[E(s("input",CN,null,512),[[r,{state:e.viewState,set:i=>{e.options.title=i},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=s("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),s("div",NN,[E(s("input",SN,null,512),[[r,{state:e.viewState,set:i=>{e.options.body=i},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=s("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[G,e.pullRequestUrl]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,DN)):f("v-if",!0),E(s("div",RN,[e.isUpdate?f("v-if",!0):(l(),d("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=ke(i=>e.submitForm(i,()=>{e.anonymizePullRequest(i)}),["prevent"]))},[...t[28]||(t[28]=[s("i",{class:"fas fa-user-secret mr-1"},null,-1),v(" Anonymize ",-1)])])),e.isUpdate?(l(),d("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=ke(i=>e.submitForm(i,()=>{e.updatePullRequest(i)}),["prevent"]))},[...t[29]||(t[29]=[s("i",{class:"fas fa-save mr-1"},null,-1),v(" Update ",-1)])])):f("v-if",!0)],512),[[G,e.pullRequestUrl]])],2)),[[n,e.viewState]])],2)]),e.details?(l(),d("div",TN,[s("div",ON,[s("h2",AN,[e.options?.title?(l(),d("span",IN,c(e.anonymize(e.details?.pullRequest?.title)),1)):f("v-if",!0),s("span",{class:O(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,VN)):f("v-if",!0)]),e.options?.origin?(l(),d("small",PN,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):f("v-if",!0),e.options?.body?(l(),d("div",qN,[De(o,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0),s("ul",MN,[e.options?.diff?(l(),d("li",$N,[...t[31]||(t[31]=[s("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):f("v-if",!0),e.options?.comments?(l(),d("li",LN,[s("button",{class:O(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[s("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,FN)],2)])):f("v-if",!0)]),s("div",UN,[s("div",zN,[e.options?.diff?(l(),d("div",HN,[s("pre",BN,[s("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,GN)])])):f("v-if",!0)]),s("div",{class:O(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(l(),d("ul",jN,[(l(!0),d(Y,null,oe(e.details?.pullRequest?.comments,(i,a)=>(l(),d("li",WN,[s("div",KN,[e.options?.username?(l(),d("h5",YN," @"+c(e.anonymize(i?.author)),1)):f("v-if",!0),e.options?.date?(l(),d("small",{key:1,textContent:c(e.fmt?.date(i?.updatedDate))},null,8,JN)):f("v-if",!0)]),s("p",QN,[e.options?.body?(l(),ks(o,{key:0,class:"pr-comment-body",content:e.anonymize(i?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):f("v-if",!0)])]))),256))])):f("v-if",!0)],2)])])):f("v-if",!0)])])}var XN={class:"container paper-page"},ZN={class:"paper-settings-main claim-form"},xN={class:"form-group"},eS={class:"invalid-feedback"},tS={class:"form-group"};function nl(e,t){let o=we("field"),r=we("form");return l(),d("div",XN,[t[6]||(t[6]=ge('
My work \xA0/\xA0 Claim

Claim an anonymization

Take ownership of an existing anonymized repository so it appears on your dashboard.

',3)),s("div",ZN,[t[5]||(t[5]=s("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),E((l(),d("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=ke(n=>e.submitForm(n,()=>{e.claim()}),["prevent"]))},[s("div",xN,[t[1]||(t[1]=s("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",required:""},null,2),[[o,{state:e.viewState,set:n=>{e.repoUrl=n},value:e.repoUrl,form:"claimForm",options:{}}]]),E(s("div",eS," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[G,e.claimForm?.repoUrl?.errors?.not_found]])]),s("div",tS,[t[2]||(t[2]=s("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",required:""},null,2),[[o,{state:e.viewState,set:n=>{e.repoId=n},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=s("small",{id:"idHelp",class:"form-text text-muted"},[v("The ID is the last part of the anonymized URL: "),s("code",null,"anonymous.4open.science/r/"),v(".")],-1))]),t[4]||(t[4]=s("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[r,e.viewState]])])])}var sS={class:"container page paper-page"},nS={class:"paper-crumbs"},oS={class:"here"},rS={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},iS=["textContent"],aS={key:0,class:"paper-page-lede"},lS=["textContent","href"],dS={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},uS=["textContent"],cS=["href"],pS={class:"paper-meta-rule"},fS=["textContent"],mS=["textContent"],hS={key:0},vS={class:"search-wrap"},yS={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search by ID or source repository\u2026",autocomplete:"off"},gS={class:"dashboard-filter-controls"},bS={class:"dropdown"},wS={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},kS={class:"filter-btn-value"},_S={class:"dropdown-menu","aria-labelledby":"dropdownSort"},ES={class:"form-check dropdown-item"},CS={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},NS={class:"form-check dropdown-item"},SS={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},DS={class:"form-check dropdown-item"},RS={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},TS={class:"form-check dropdown-item"},OS={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},AS={class:"dropdown"},IS={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},VS={key:0,class:"filter-btn-value"},PS={key:1,class:"filter-btn-value"},qS={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},MS={class:"form-check dropdown-item"},$S=["id"],LS=["for"],FS={class:"dashboard-meta"},US={class:"dashboard-count"},zS={key:0},HS={key:0},BS={key:1},GS={key:1},jS={key:0,class:"filter-chip"},WS=["onClick","aria-label"],KS={class:"paper-table paper-table-repos w-100",role:"table","aria-label":"Repositories"},YS={class:"cell-anon",role:"cell"},JS={class:"anon-text"},QS=["textContent","href"],XS={class:"anon-sub"},ZS={class:"anon-source"},xS=["textContent","href"],e2={key:0},t2=["textContent","href"],s2={key:1},n2=["href"],o2={class:"cell-status",role:"cell"},r2={class:"status-line"},i2=["textContent"],a2={key:0,class:"status-sub"},l2=["textContent"],d2={class:"cell-expires",role:"cell"},u2={key:0,class:"expires-never"},c2=["textContent"],p2={key:2,class:"expires-past"},f2={key:0},m2={key:3,class:"empty-dash","aria-label":"Not applicable"},h2={class:"cell-actions",role:"cell"},v2={class:"dropdown"},y2=["aria-label"],g2={class:"dropdown-menu dropdown-menu-right"},b2=["href"],w2=["href"],k2={key:0,class:"paper-table-empty"},_2={key:0},E2={key:1},C2={key:2,class:"paper-table-empty-actions"};function ol(e,t){let o=we("field"),r=we("form");return l(),d("div",sS,[s("div",null,[s("div",nS,[t[2]||(t[2]=s("a",{href:"/dashboard"},"My work",-1)),t[3]||(t[3]=v(" \xA0/\xA0 ",-1)),t[4]||(t[4]=s("a",{href:"/conferences"},"Conferences",-1)),t[5]||(t[5]=v(" \xA0/\xA0 ",-1)),s("span",oS,c(e.conference?.conferenceID),1)]),s("div",rS,[s("div",null,[s("h1",{class:"paper-page-title",textContent:c(e.conference?.name)},null,8,iS),e.conference?.url?(l(),d("p",aS,[s("a",{target:"_blank",rel:"noopener",textContent:c(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,lS)])):f("v-if",!0)]),s("div",dS,[s("span",{class:O(["status-pill",{"status-pill-ready":e.conference?.status=="ready","status-pill-removed":e.conference?.status=="removed"||e.conference?.status=="expired"}])},[s("span",{class:O(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),s("span",{textContent:c(e.fmt?.statusLabel(e.conference?.status))},null,8,uS)],2),s("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[6]||(t[6]=[s("i",{class:"far fa-edit mr-1","aria-hidden":"true"},null,-1),v(" Edit conference",-1)])],8,cS)])]),s("div",pS,[s("span",null,[t[7]||(t[7]=v("ID ",-1)),s("b",{class:"commit-hash",textContent:c(e.conference?.conferenceID)},null,8,fS)]),s("span",null,[t[8]||(t[8]=v("Review window ",-1)),s("b",null,c(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),s("span",null,[t[9]||(t[9]=v("Repositories ",-1)),s("b",null,c(e.fmt?.number(e.conference?.repositories?.length)),1)]),s("span",null,[t[10]||(t[10]=v("Plan ",-1)),s("b",{textContent:c(e.conference?.plan?.name||e.conference?.plan?.planID||"Free")},null,8,mS)]),e.conference?.price?(l(),d("span",hS,[t[11]||(t[11]=v("Cost so far ",-1)),s("b",null,c(e.fmt?.number(e.conference?.price,2))+" \u20AC",1)])):f("v-if",!0)]),t[29]||(t[29]=s("div",{class:"paper-section-eyebrow"},"Repositories",-1)),E((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=ke(n=>e.submitForm(n,()=>{n.preventDefault()}),["prevent"]))},[s("div",vS,[E(s("input",yS,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),s("div",gS,[s("div",bS,[s("button",wS,[t[12]||(t[12]=s("span",{class:"filter-btn-label"},"Sort",-1)),s("span",kS,c({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),s("div",_S,[t[17]||(t[17]=s("h6",{class:"dropdown-header"},"Order by",-1)),s("div",ES,[E(s("input",CS,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[13]||(t[13]=s("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),s("div",NS,[E(s("input",SS,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[14]||(t[14]=s("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),s("div",DS,[E(s("input",RS,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[15]||(t[15]=s("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),s("div",TS,[E(s("input",OS,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[16]||(t[16]=s("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])]),s("div",AS,[s("button",IS,[t[18]||(t[18]=s("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",VS,"All")):f("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?f("v-if",!0):(l(),d("span",PS,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),s("div",qS,[t[19]||(t[19]=s("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(Y,null,oe(e.statusLabels,(n,i,a)=>(l(),d("div",MS,[E(s("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,$S),[[o,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),s("label",{class:"form-check-label",for:"status-"+i},c(n),9,LS)]))),256))])])])],32)),[[r,e.viewState]]),s("div",FS,[s("span",US,[e.filteredRepositories?.length===e.conference?.repositories?.length?(l(),d("span",zS,[v(c(e.fmt?.number(e.conference?.repositories?.length))+" repositor",1),e.conference?.repositories?.length===1?(l(),d("span",HS,"y")):f("v-if",!0),e.conference?.repositories?.length!==1?(l(),d("span",BS,"ies")):f("v-if",!0)])):f("v-if",!0),e.filteredRepositories?.length!==e.conference?.repositories?.length?(l(),d("span",GS,c(e.fmt?.number(e.filteredRepositories?.length))+" of "+c(e.fmt?.number(e.conference?.repositories?.length))+" shown",1)):f("v-if",!0)]),(l(!0),d(Y,null,oe(e.filters?.status,(n,i,a)=>(l(),d(Y,null,[n===!1?(l(),d("span",jS,[v(" Hiding "+c(e.statusLabels[i])+" ",1),s("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusLabels[i]+" again"},"\xD7",8,WS)])):f("v-if",!0)],64))),256))]),s("div",KS,[t[28]||(t[28]=s("div",{class:"paper-table-head",role:"row"},[s("div",{role:"columnheader"},"Repository"),s("div",{role:"columnheader"},"Status"),s("div",{role:"columnheader",class:"num"},"Views"),s("div",{role:"columnheader"},"Expires"),s("div",{role:"columnheader"},[s("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(Y,null,oe(e.filteredRepositories,(n,i)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":n?.status=="expired"||n?.status=="removed","repo-error":n?.status=="error"}]),role:"row",key:n?.repoId},[s("div",YS,[t[22]||(t[22]=s("span",{class:"type-badge type-repo"},"Repo",-1)),s("div",JS,[s("a",{class:"repo-name",textContent:c(n?.repoId),href:e.safeUrl("/r/"+n?.repoId+"/")},null,8,QS),s("div",XS,[s("span",ZS,[s("a",{target:"_blank",rel:"noopener",textContent:c(n?.source?.fullName),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/")},null,8,xS),n?.options?.update&&n?.source?.branch?(l(),d("span",e2,[t[20]||(t[20]=v(" \xB7 ",-1)),s("a",{target:"_blank",rel:"noopener",textContent:c(n?.source?.branch),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.branch)},null,8,t2)])):f("v-if",!0),n?.source?.commit?(l(),d("span",s2,[t[21]||(t[21]=v(" \xB7 ",-1)),s("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.commit)},"@"+c(n?.source?.commit?.substring(0,8)),9,n2)])):f("v-if",!0)])])])]),s("div",o2,[s("div",r2,[s("span",{class:O(["status-dot","status-"+(n?.status=="error"?"error":n?.status=="ready"?"ready":n?.status=="expired"||n?.status=="removed"?n?.status:"progress")]),"aria-hidden":"true"},null,2),s("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(n?.status))},null,8,i2)]),n?.anonymizeDate?(l(),d("div",a2,"anonymized "+c(e.fmt?.humanTime(n?.anonymizeDate)),1)):f("v-if",!0)]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.pageView))},null,8,l2),s("div",d2,[n?.status=="ready"&&(n?.options?.expirationMode==="never"||!n?.options?.expirationDate)?(l(),d("span",u2,"Never")):f("v-if",!0),n?.status=="ready"&&n?.options?.expirationMode!=="never"&&n?.options?.expirationDate?(l(),d("span",{key:1,textContent:c(e.fmt?.humanTime(n?.options?.expirationDate))},null,8,c2)):f("v-if",!0),n?.status=="expired"?(l(),d("span",p2,[t[23]||(t[23]=v("Expired",-1)),n?.options?.expirationDate?(l(),d("span",f2,c(e.fmt?.humanTime(n?.options?.expirationDate)),1)):f("v-if",!0)])):f("v-if",!0),n?.status!="ready"&&n?.status!="expired"?(l(),d("span",m2,"\u2014")):f("v-if",!0)]),s("div",h2,[s("div",v2,[s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+n?.repoId},[...t[24]||(t[24]=[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"},null,-1)])],8,y2),s("div",g2,[s("a",{class:"dropdown-item",href:e.safeUrl("/r/"+n?.repoId+"/")},[...t[25]||(t[25]=[s("i",{class:"fa fa-eye","aria-hidden":"true"},null,-1),v(" View ",-1)])],8,b2),s("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+n?.repoId)},[...t[26]||(t[26]=[s("i",{class:"far fa-edit","aria-hidden":"true"},null,-1),v(" Edit ",-1)])],8,w2)])])])],2))),128)),e.filteredRepositories?.length==0?(l(),d("div",k2,[t[27]||(t[27]=s("i",{class:"fas fa-inbox","aria-hidden":"true"},null,-1)),e.conference?.repositories?.length?f("v-if",!0):(l(),d("span",_2,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(l(),d("span",E2,"Nothing matches the current filters.")):f("v-if",!0),e.conference?.repositories?.length?(l(),d("div",C2,[s("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=n=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")])):f("v-if",!0)])):f("v-if",!0)])])])}var N2={class:"container page paper-page"},S2={class:"row"},D2={class:"w-100"},R2={class:"search-wrap"},T2={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},O2={class:"dashboard-filter-controls"},A2={class:"dropdown"},I2={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},V2={class:"filter-btn-value"},P2={class:"dropdown-menu","aria-labelledby":"dropdownSort"},q2={class:"form-check dropdown-item"},M2={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},$2={class:"form-check dropdown-item"},L2={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},F2={class:"form-check dropdown-item"},U2={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},z2={class:"dropdown"},H2={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},B2={key:0,class:"filter-btn-value"},G2={key:1,class:"filter-btn-value"},j2={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},W2={class:"form-check dropdown-item"},K2=["id"],Y2=["for"],J2={class:"dashboard-meta"},Q2={class:"dashboard-count"},X2={key:0},Z2={key:0},x2={key:1},eD={key:0,class:"filter-chip"},tD=["onClick","aria-label"],sD={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},nD={class:"cell-anon",role:"cell"},oD={class:"anon-text"},rD=["textContent","href"],iD={class:"anon-sub"},aD={class:"anon-source"},lD=["textContent"],dD={key:0},uD=["textContent","href"],cD={class:"cell-status",role:"cell"},pD={class:"status-line"},fD=["textContent"],mD=["textContent"],hD={class:"cell-expires",role:"cell"},vD={key:0},yD={key:1,class:"empty-dash","aria-label":"No review window"},gD={class:"cell-actions",role:"cell"},bD={class:"dropdown"},wD=["aria-label"],kD={class:"dropdown-menu dropdown-menu-right"},_D=["href"],ED=["href"],CD={key:0},ND=["onClick"],SD={key:0,class:"paper-table-empty"},DD={key:0},RD={key:1},TD={class:"paper-table-empty-actions"},OD={key:1,href:"/conference/new",class:"btn btn-ink"};function rl(e,t){let o=we("field"),r=we("form");return l(),d("div",N2,[s("div",S2,[s("div",D2,[t[9]||(t[9]=ge('
My work \xA0/\xA0 Conferences

Your conferences

Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.

New conference
',2)),E((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=ke(n=>e.submitForm(n,()=>{n.preventDefault()}),["prevent"]))},[s("div",R2,[E(s("input",T2,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),s("div",O2,[s("div",A2,[s("button",I2,[t[2]||(t[2]=s("span",{class:"filter-btn-label"},"Sort",-1)),s("span",V2,c({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),s("div",P2,[t[6]||(t[6]=s("h6",{class:"dropdown-header"},"Order by",-1)),s("div",q2,[E(s("input",M2,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=s("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),s("div",$2,[E(s("input",L2,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=s("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),s("div",F2,[E(s("input",U2,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[5]||(t[5]=s("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),s("div",z2,[s("button",H2,[t[7]||(t[7]=s("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",B2,"All")):f("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?f("v-if",!0):(l(),d("span",G2,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),s("div",j2,[t[8]||(t[8]=s("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(Y,null,oe(e.statusLabels,(n,i,a)=>(l(),d("div",W2,[E(s("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,K2),[[o,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),s("label",{class:"form-check-label",for:"status-"+i},c(n),9,Y2)]))),256))])])])],32)),[[r,e.viewState]]),s("div",J2,[s("span",Q2,[e.filteredConferences?.length===e.conferences?.length?(l(),d("span",X2,[v(c(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(l(),d("span",Z2,"s")):f("v-if",!0)])):f("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(l(),d("span",x2,c(e.fmt?.number(e.filteredConferences?.length))+" of "+c(e.fmt?.number(e.conferences?.length))+" shown",1)):f("v-if",!0)]),(l(!0),d(Y,null,oe(e.filters?.status,(n,i,a)=>(l(),d(Y,null,[n===!1?(l(),d("span",eD,[v(" Hiding "+c(e.statusLabels[i])+" ",1),s("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusLabels[i]+" again"},"\xD7",8,tD)])):f("v-if",!0)],64))),256))])]),s("div",sD,[t[20]||(t[20]=s("div",{class:"paper-table-head",role:"row"},[s("div",{role:"columnheader"},"Conference"),s("div",{role:"columnheader"},"Status"),s("div",{role:"columnheader",class:"num"},"Repos"),s("div",{role:"columnheader"},"Review window"),s("div",{role:"columnheader"},[s("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(Y,null,oe(e.filteredConferences,(n,i)=>(l(),d("div",{class:O(["paper-table-row row-clickable",{"repo-inactive":n?.status=="expired"||n?.status=="removed"}]),role:"row",key:n?.conferenceID},[s("div",nD,[t[12]||(t[12]=s("span",{class:"type-badge type-repo"},"Conf",-1)),s("div",oD,[s("a",{class:"repo-name",textContent:c(n?.name),href:e.safeUrl("/conference/"+n?.conferenceID)},null,8,rD),s("div",iD,[s("span",aD,[t[11]||(t[11]=v("ID ",-1)),s("span",{class:"commit-hash",textContent:c(n?.conferenceID)},null,8,lD),n?.url?(l(),d("span",dD,[t[10]||(t[10]=v(" \xB7 ",-1)),s("a",{target:"_blank",rel:"noopener",textContent:c(e.fmt?.limitTo(n?.url,60)),href:e.safeUrl(n?.url)},null,8,uD)])):f("v-if",!0)])])])]),s("div",cD,[s("div",pD,[s("span",{class:O(["status-dot","status-"+n?.status]),"aria-hidden":"true"},null,2),s("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(n?.status))},null,8,fD)])]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.nbRepositories||0))},null,8,mD),s("div",hD,[n?.startDate?(l(),d("span",vD,c(e.fmt?.date(n?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(n?.endDate,"mediumDate")),1)):f("v-if",!0),n?.startDate?f("v-if",!0):(l(),d("span",yD,"\u2014"))]),s("div",gD,[s("div",bD,[s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+n?.name},[...t[13]||(t[13]=[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"},null,-1)])],8,wD),s("div",kD,[s("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+n?.conferenceID+"/")},[...t[14]||(t[14]=[s("i",{class:"fa fa-eye","aria-hidden":"true"},null,-1),v(" View ",-1)])],8,_D),s("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+n?.conferenceID+"/edit")},[...t[15]||(t[15]=[s("i",{class:"far fa-edit","aria-hidden":"true"},null,-1),v(" Edit ",-1)])],8,ED),n?.status!="removed"?(l(),d("div",CD,[t[17]||(t[17]=s("div",{class:"dropdown-divider"},null,-1)),s("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeConference(n)},[...t[16]||(t[16]=[s("i",{class:"fas fa-trash-alt","aria-hidden":"true"},null,-1),v(" Remove ",-1)])],8,ND)])):f("v-if",!0)])])])],2))),128)),e.filteredConferences?.length==0?(l(),d("div",SD,[t[19]||(t[19]=s("i",{class:"fas fa-inbox","aria-hidden":"true"},null,-1)),e.conferences?.length==0?(l(),d("span",DD,"You have not created a conference yet.")):f("v-if",!0),e.conferences?.length>0?(l(),d("span",RD,"Nothing matches the current filters.")):f("v-if",!0),s("div",TD,[e.conferences?.length>0?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=n=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):f("v-if",!0),e.conferences?.length==0?(l(),d("a",OD,[...t[18]||(t[18]=[s("i",{class:"fa fa-plus-circle mr-1","aria-hidden":"true"},null,-1),v(" New conference",-1)])])):f("v-if",!0)])])):f("v-if",!0)])])])}var AD={class:"container page dashboard-page paper-page"},ID={class:"row"},VD={class:"w-100"},PD={key:0,class:"quota-row"},qD={class:"quota-item"},MD={class:"quota-header"},$D={class:"quota-label"},LD={key:0,class:"quota-value"},FD={key:0},UD={key:1,class:"quota-unlimited-tag"},zD={key:1,class:"quota-value"},HD={key:0},BD={key:1,class:"quota-unlimited-tag"},GD=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],jD={class:"search-wrap"},WD={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search by name, source, or conference\u2026",autocomplete:"off"},KD={class:"dashboard-filter-controls"},YD={class:"btn-group",role:"group","aria-label":"Type"},JD=["aria-pressed"],QD=["aria-pressed"],XD=["aria-pressed"],ZD=["aria-pressed"],xD={class:"dropdown"},eR={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},tR={class:"filter-btn-value"},sR={class:"sr-only"},nR={class:"dropdown-menu","aria-labelledby":"dropdownSort"},oR={class:"form-check dropdown-item"},rR=["onClick","checked","id"],iR=["for"],aR={class:"dropdown"},lR={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},dR={key:0,class:"filter-btn-value"},uR={key:1,class:"filter-btn-value"},cR={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},pR={class:"form-check dropdown-item"},fR=["id"],mR=["for"],hR={key:1,class:"dashboard-meta"},vR={class:"dashboard-count"},yR={key:0},gR={key:0},bR={key:1},wR={key:0,class:"filter-chip"},kR=["onClick","aria-label"],_R=["aria-busy"],ER={class:"paper-table-head",role:"row"},CR=["aria-sort"],NR=["aria-sort"],SR=["aria-sort"],DR=["aria-sort"],RR={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},TR=["onClick"],OR={class:"cell-anon",role:"cell"},AR={class:"anon-text"},IR={class:"anon-title"},VR=["textContent","href"],PR=["textContent"],qR={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},MR={key:0,class:"anon-sub"},$R={key:0,class:"anon-source"},LR=["textContent","href"],FR={key:0},UR=["textContent","href"],zR={key:1},HR=["href"],BR={key:1,class:"anon-source"},GR=["textContent","href"],jR={key:2,class:"anon-source"},WR=["textContent","href"],KR=["title"],YR=["textContent"],JR={class:"cell-status",role:"cell"},QR={class:"status-line"},XR=["textContent"],ZR=["textContent","title"],xR=["title"],eT={key:2,class:"status-sub"},tT=["textContent"],sT={class:"cell-expires",role:"cell"},nT={key:0,class:"expires-never"},oT=["textContent"],rT={key:2,class:"expires-past"},iT={key:3,class:"expires-past"},aT={key:4,class:"empty-dash","aria-label":"Not applicable"},lT={class:"cell-actions",role:"cell"},dT={key:0,class:"dropdown"},uT=["aria-label"],cT={class:"dropdown-menu dropdown-menu-right"},pT=["href"],fT=["href"],mT=["href"],hT=["onClick"],vT=["onClick"],yT=["onClick"],gT={key:4},bT=["onClick"],wT={key:0,class:"paper-table-empty"},kT={key:0},_T={key:1},ET={class:"paper-table-empty-actions"},CT={key:1,href:"/anonymize",class:"btn btn-ink"};function il(e,t){let o=we("field"),r=we("form");return l(),d("div",AD,[s("div",ID,[s("div",VD,[t[18]||(t[18]=ge('
My work \xA0/\xA0 Dashboard

Your anonymizations

Every repository, pull request, and gist you\u2019ve mirrored, with live status and stats.

',2)),f(" Quota "),e.quota?(l(),d("div",PD,[(l(),d(Y,null,oe([{key:"repository",label:"Repositories",kind:"count"},{key:"storage",label:"Storage",kind:"bytes"},{key:"file",label:"Files",kind:"count"}],(n,i)=>s("div",qD,[s("div",MD,[s("span",$D,c(n?.label),1),n?.kind==="count"?(l(),d("span",LD,[v(c(e.fmt?.number(e.quota[n?.key].used)),1),e.quota[n?.key].unlimited?f("v-if",!0):(l(),d("span",FD," / "+c(e.fmt?.number(e.quota[n?.key].total)),1)),e.quota[n?.key].unlimited?(l(),d("span",UD,"Unlimited")):f("v-if",!0)])):f("v-if",!0),n?.kind==="bytes"?(l(),d("span",zD,[v(c(e.fmt?.humanFileSize(e.quota[n?.key].used)),1),e.quota[n?.key].unlimited?f("v-if",!0):(l(),d("span",HD," / "+c(e.fmt?.humanFileSize(e.quota[n?.key].total)),1)),e.quota[n?.key].unlimited?(l(),d("span",BD,"Unlimited")):f("v-if",!0)])):f("v-if",!0)]),s("div",{class:O(["quota-track","quota-"+e.quota[n?.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":n?.label+" quota","aria-valuenow":e.quota[n?.key].used,"aria-valuemax":e.quota[n?.key].unlimited?e.quota[n?.key].used:e.quota[n?.key].total,"aria-valuetext":e.quota[n?.key].unlimited?"unlimited":e.fmt.number(e.quota[n?.key].percent,0)+"% used"},[e.quota[n?.key].unlimited?f("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:Ve({width:e.quota[n?.key].percent+"%"})},null,4))],10,GD)])),64))])):f("v-if",!0),f(" Search + filters "),E((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[5]||(t[5]=ke(n=>e.submitForm(n,()=>{n.preventDefault()}),["prevent"]))},[s("div",jD,[E(s("input",WD,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),s("div",KD,[s("div",YD,[s("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[0]||(t[0]=n=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,JD),s("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="repo"}]),onClick:t[1]||(t[1]=n=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},"Repos",10,QD),s("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="pr"}]),onClick:t[2]||(t[2]=n=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},"PRs",10,XD),s("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="gist"}]),onClick:t[3]||(t[3]=n=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},"Gists",10,ZD)]),s("div",xD,[s("button",eR,[t[12]||(t[12]=s("span",{class:"filter-btn-label"},"Sort",-1)),s("span",tR,c(e.sortLabel()),1),s("i",{class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2),s("span",sR,c(e.sortDesc()?"descending":"ascending"),1)]),s("div",nR,[t[14]||(t[14]=s("h6",{class:"dropdown-header"},"Order by",-1)),(l(!0),d(Y,null,oe(e.sortFields,(n,i,a)=>(l(),d("div",oR,[s("input",{class:"form-check-input",type:"radio",name:"sort",onClick:u=>e.setSort(i,n.defaultDesc),checked:e.isSortedBy(i),id:"sort-"+a},null,8,rR),s("label",{class:"form-check-label",for:"sort-"+a},c(n?.label),9,iR)]))),256)),t[15]||(t[15]=s("div",{class:"dropdown-divider"},null,-1)),s("button",{type:"button",class:"dropdown-item",onClick:t[4]||(t[4]=n=>e.toggleSortDirection())},[t[13]||(t[13]=s("i",{class:"fas fa-exchange-alt fa-rotate-90","aria-hidden":"true"},null,-1)),v(" "+c(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])])]),s("div",aR,[s("button",lR,[t[16]||(t[16]=s("span",{class:"filter-btn-label"},"Status",-1)),e.hasHiddenStatus()?f("v-if",!0):(l(),d("span",dR,"All")),e.hasHiddenStatus()?(l(),d("span",uR,c(e.hiddenStatusCount())+" hidden",1)):f("v-if",!0)]),s("div",cR,[t[17]||(t[17]=s("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(Y,null,oe(e.statusKeyLabels,(n,i,a)=>(l(),d("div",pR,[E(s("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,fR),[[o,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),s("label",{class:"form-check-label",for:"status-"+i},c(n),9,mR)]))),256))])])])],32)),[[r,e.viewState]]),f(" Result count + active filter chips "),e.loading?f("v-if",!0):(l(),d("div",hR,[s("span",vR,[e.filteredItems?.length===e.items?.length?(l(),d("span",yR,[v(c(e.fmt?.number(e.items?.length))+" anonymization",1),e.items?.length!==1?(l(),d("span",gR,"s")):f("v-if",!0)])):f("v-if",!0),e.filteredItems?.length!==e.items?.length?(l(),d("span",bR,c(e.fmt?.number(e.filteredItems?.length))+" of "+c(e.fmt?.number(e.items?.length))+" shown",1)):f("v-if",!0)]),(l(!0),d(Y,null,oe(e.filters?.status,(n,i,a)=>(l(),d(Y,null,[n===!1?(l(),d("span",wR,[v(" Hiding "+c(e.statusKeyLabels[i])+" ",1),s("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusKeyLabels[i]+" again"},"\xD7",8,kR)])):f("v-if",!0)],64))),256)),e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn-link-inline",onClick:t[6]||(t[6]=n=>e.clearFilters())},"Clear filters")):f("v-if",!0)]))]),f(" Table "),s("div",{class:"paper-table paper-table-dashboard w-100",role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[s("div",ER,[s("div",{role:"columnheader","aria-sort":e.isSortedBy("_name")?e.sortDesc()?"descending":"ascending":"none"},[s("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("_name")}]),onClick:t[7]||(t[7]=n=>e.setSort("_name"))},[t[19]||(t[19]=v(" Anonymization ",-1)),e.isSortedBy("_name")?(l(),d("i",{key:0,class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2)):f("v-if",!0)],2)],8,CR),s("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[s("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("status")}]),onClick:t[8]||(t[8]=n=>e.setSort("status"))},[t[20]||(t[20]=v(" Status ",-1)),e.isSortedBy("status")?(l(),d("i",{key:0,class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2)):f("v-if",!0)],2)],8,NR),s("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[s("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[9]||(t[9]=n=>e.setSort("pageView"))},[t[21]||(t[21]=v(" Views ",-1)),e.isSortedBy("pageView")?(l(),d("i",{key:0,class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2)):f("v-if",!0)],2)],8,SR),s("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[s("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[10]||(t[10]=n=>e.setSort("options.expirationDate"))},[t[22]||(t[22]=v(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(l(),d("i",{key:0,class:O(["fas",e.sortDesc()?"fa-arrow-down":"fa-arrow-up"]),"aria-hidden":"true"},null,2)):f("v-if",!0)],2)],8,DR),t[23]||(t[23]=s("div",{role:"columnheader"},[s("span",{class:"sr-only"},"Actions")],-1))]),f(" Loading skeleton: keeps the layout stable while the three lists load "),(l(),d(Y,null,oe([1,2,3,4],(n,i)=>(l(),d(Y,null,[e.loading?(l(),d("div",RR,[...t[24]||(t[24]=[s("div",{class:"cell-anon",role:"cell"},[s("span",{class:"skeleton skeleton-badge"}),s("div",{class:"anon-text"},[s("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),s("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),s("div",{class:"cell-status",role:"cell"},[s("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),s("div",{class:"cell-views num",role:"cell"},[s("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),s("div",{class:"cell-expires",role:"cell"},[s("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),s("div",{class:"cell-actions",role:"cell"},null,-1)])])):f("v-if",!0)],64))),64)),(l(!0),d(Y,null,oe(e.filteredItems,(n,i)=>(l(),d(Y,{key:n?._type+":"+(n?._id||i)},[e.loading?f("v-if",!0):(l(),d("div",{key:0,class:O(["paper-table-row",{"repo-inactive":n?._statusKey=="expired"||n?._statusKey=="removed","repo-error":n?.status=="error","row-clickable":!!n?._viewUrl}]),role:"row",onClick:a=>e.openItem(n,a)},[s("div",OR,[s("span",{class:O(["type-badge",{"type-repo":n?._type==="repo","type-pr":n?._type==="pr","type-gist":n?._type==="gist"}])},c(n?._type==="repo"?"Repo":n?._type==="pr"?"PR":"Gist"),3),s("div",AR,[s("div",IR,[n?._viewUrl?(l(),d("a",{key:0,class:"repo-name",textContent:c(n?._name),href:e.safeUrl(n?._viewUrl)},null,8,VR)):f("v-if",!0),n?._viewUrl?f("v-if",!0):(l(),d("span",{key:1,class:"repo-name repo-name-static",textContent:c(n?._name)},null,8,PR)),n?.role==="coauthor"?(l(),d("span",qR,"Co-author")):f("v-if",!0)]),!n?._broken||n?.conference?(l(),d("div",MR,[n?._type==="repo"&&n?.source?.fullName&&!n?._broken?(l(),d("span",$R,[s("a",{target:"_blank",rel:"noopener",textContent:c(n?.source?.fullName),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/")},null,8,LR),n?.options?.update&&n?.source?.branch?(l(),d("span",FR,[t[25]||(t[25]=v(" \xB7 ",-1)),s("a",{target:"_blank",rel:"noopener",textContent:c(n?.source?.branch),href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.branch)},null,8,UR)])):f("v-if",!0),n?.source?.commit?(l(),d("span",zR,[t[26]||(t[26]=v(" \xB7 ",-1)),s("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+n?.source?.fullName+"/tree/"+n?.source?.commit)},"@"+c(n?.source?.commit?.substring(0,8)),9,HR)])):f("v-if",!0)])):f("v-if",!0),n?._type==="pr"&&n?.source?.repositoryFullName&&!n?._broken?(l(),d("span",BR,[s("a",{target:"_blank",rel:"noopener",textContent:c(n?._source),href:e.safeUrl("https://github.com/"+n?.source?.repositoryFullName+"/pull/"+n?.source?.pullRequestId)},null,8,GR)])):f("v-if",!0),n?._type==="gist"&&n?.source?.gistId&&!n?._broken?(l(),d("span",jR,[s("a",{target:"_blank",rel:"noopener",textContent:c(n?._source),href:e.safeUrl("https://gist.github.com/"+n?.source?.gistId)},null,8,WR)])):f("v-if",!0),n?.conference?(l(),d("span",{key:3,class:"cell-conf conf-tag",title:n?.conference},[t[27]||(t[27]=s("i",{class:"fas fa-university","aria-hidden":"true"},null,-1)),t[28]||(t[28]=v()),s("span",{textContent:c(n?.conference)},null,8,YR)],8,KR)):f("v-if",!0)])):f("v-if",!0)])]),s("div",JR,[s("div",QR,[s("span",{class:O(["status-dot","status-"+n?._statusKey]),"aria-hidden":"true"},null,2),s("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(n?.status))},null,8,XR)]),n?.status=="error"&&n?.statusMessage?(l(),d("div",{key:0,class:"status-sub status-sub-error",textContent:c(e.fmt?.statusMsg(n?.statusMessage)),title:n?.statusMessage},null,8,ZR)):f("v-if",!0),n?._stale?(l(),d("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(n?.anonymizeDate||n?.lastView)}," Last activity "+c(e.fmt?.humanTime(n?.anonymizeDate||n?.lastView))+" \xB7 may be stuck ",9,xR)):f("v-if",!0),n?.status!="error"&&!n?._stale&&n?.anonymizeDate?(l(),d("div",eT," anonymized "+c(e.fmt?.humanTime(n?.anonymizeDate)),1)):f("v-if",!0)]),s("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(n?.pageView))},null,8,tT),s("div",sT,[n?._expiry?.kind==="never"?(l(),d("span",nT,"Never")):f("v-if",!0),n?._expiry?.kind==="date"?(l(),d("span",{key:1,textContent:c(e.fmt?.humanTime(n?._expiry?.date))},null,8,oT)):f("v-if",!0),n?._expiry?.kind==="expired"&&n?._expiry?.date?(l(),d("span",rT,"Expired "+c(e.fmt?.humanTime(n?._expiry?.date)),1)):f("v-if",!0),n?._expiry?.kind==="expired"&&!n?._expiry?.date?(l(),d("span",iT,"Expired")):f("v-if",!0),n?._expiry?.kind==="none"?(l(),d("span",aT,"\u2014")):f("v-if",!0)]),s("div",lT,[n?._broken?f("v-if",!0):(l(),d("div",dT,[s("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+n?._name},[...t[29]||(t[29]=[s("i",{class:"fas fa-ellipsis-h","aria-hidden":"true"},null,-1)])],8,uT),s("div",cT,[s("a",{class:"dropdown-item",href:e.safeUrl(n?._viewUrl)},[...t[30]||(t[30]=[s("i",{class:"fa fa-eye","aria-hidden":"true"},null,-1),v(" View ",-1)])],8,pT),n?._type==="repo"&&n?.options?.page&&n?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+n?.repoId+"/")},[...t[31]||(t[31]=[s("i",{class:"fas fa-globe","aria-hidden":"true"},null,-1),v(" View page ",-1)])],8,fT)):f("v-if",!0),s("a",{class:"dropdown-item",href:e.safeUrl(n?._editUrl)},[...t[32]||(t[32]=[s("i",{class:"far fa-edit","aria-hidden":"true"},null,-1),v(" Edit ",-1)])],8,mT),n?.status=="ready"||n?.status=="error"?(l(),d("button",{key:1,type:"button",class:"dropdown-item",onClick:a=>e.refreshItem(n)},[...t[33]||(t[33]=[s("i",{class:"fas fa-sync","aria-hidden":"true"},null,-1),v(" Force update ",-1)])],8,hT)):f("v-if",!0),n?.status=="removed"?(l(),d("button",{key:2,type:"button",class:"dropdown-item",onClick:a=>e.refreshItem(n)},[...t[34]||(t[34]=[s("i",{class:"fas fa-check-circle","aria-hidden":"true"},null,-1),v(" Enable ",-1)])],8,vT)):f("v-if",!0),n?.status=="expired"?(l(),d("button",{key:3,type:"button",class:"dropdown-item",onClick:a=>e.extendItem(n)},[...t[35]||(t[35]=[s("i",{class:"fas fa-calendar-plus","aria-hidden":"true"},null,-1),v(" Extend 6 months ",-1)])],8,yT)):f("v-if",!0),(n?.status=="ready"||n?.status=="expired"||n?.status=="error")&&n?.role!=="coauthor"?(l(),d("div",gT,[t[37]||(t[37]=s("div",{class:"dropdown-divider"},null,-1)),s("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeItem(n)},[...t[36]||(t[36]=[s("i",{class:"fas fa-trash-alt","aria-hidden":"true"},null,-1),v(" Remove ",-1)])],8,bT)])):f("v-if",!0)])]))])],10,TR))],64))),128)),!e.loading&&e.filteredItems?.length==0?(l(),d("div",wT,[t[39]||(t[39]=s("i",{class:"fas fa-inbox","aria-hidden":"true"},null,-1)),e.items?.length==0?(l(),d("span",kT,"You have no anonymizations yet.")):f("v-if",!0),e.items?.length>0?(l(),d("span",_T,"Nothing matches the current filters.")):f("v-if",!0),s("div",ET,[e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[11]||(t[11]=n=>e.clearFilters())},"Clear filters")):f("v-if",!0),e.items?.length==0?(l(),d("a",CT,[...t[38]||(t[38]=[s("i",{class:"fa fa-plus-circle mr-1","aria-hidden":"true"},null,-1),v(" New anonymization",-1)])])):f("v-if",!0)])])):f("v-if",!0)],8,_R)])])}var NT={class:"explorer-page"},ST=["aria-label"],DT=["textContent"],RT={class:"leftCol-head"},TT={class:"leftCol-search"},OT={class:"tree-search-box"},AT={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},IT={class:"leftCol-project-header"},VT=["textContent"],PT={class:"project-file-count"},qT={class:"leftCol-body"},MT={key:0,class:"paper-inline-warning",role:"alert"},$T={key:1,class:"paper-inline-warning",role:"alert"},LT={class:"leftCol-foot"},FT=["title"],UT={class:"explorer-main"},zT={class:"status-bar"},HT={class:"breadcrumb paths","aria-label":"Path"},BT=["textContent"],GT={class:"status-bar-actions"},jT=["href"],WT={class:"d-none d-md-inline"},KT={class:"d-none d-md-inline"},YT=["href"],JT=["href"],QT=["href"],XT=["href"],ZT={class:"explorer-content"};function al(e,t){let o=et("tree"),r=et("partial-view"),n=we("field");return l(),d("div",NT,[E(s("button",{class:"sidebar-toggle",onClick:t[0]||(t[0]=i=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[s("i",{class:O(["fas",e.sidebarCollapsed?"fa-folder-open":"fa-times"])},null,2),s("span",{textContent:c(e.sidebarCollapsed?"Files":"Close")},null,8,DT)],8,ST),[[G,e.files?.length]]),E(s("div",{class:O(["leftCol",{collapsed:e.sidebarCollapsed}])},[s("div",RT,[t[7]||(t[7]=s("span",{class:"leftCol-eyebrow"},"Files",-1)),s("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[1]||(t[1]=i=>e.sidebarCollapsed=!0)},[...t[6]||(t[6]=[s("i",{class:"fas fa-times"},null,-1)])])]),s("div",TT,[s("div",OT,[s("i",{class:O(["fas tree-search-icon",e.fileSearchLoading?"fa-spinner fa-spin":"fa-search"])},null,2),E(s("input",AT,null,512),[[n,{state:e.viewState,set:i=>{e.fileSearchQuery=i},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),E(s("kbd",{class:"tree-search-kbd"},c(e.isMac?"\u2318":"Ctrl+")+"K",513),[[G,!e.fileSearchQuery]]),E(s("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[2]||(t[2]=i=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[G,e.fileSearchQuery]])])]),s("div",IT,[s("span",{class:"project-name",textContent:c(e.repoId)},null,8,VT),s("span",PT,c(e.fileCounts?.[""]||e.files?.length)+" files",1)]),s("div",qT,[e.options?.truncatedFolders?.length>0?(l(),d("div",MT,[t[8]||(t[8]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),v(" "+c(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):f("v-if",!0),e.options?.hasSubmodules?(l(),d("div",$T,[t[9]||(t[9]=s("i",{class:"fas fa-exclamation-triangle"},null,-1)),v(" "+c(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):f("v-if",!0),De(o,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])]),s("div",LT,[s("span",{class:"last-update","data-toggle":"tooltip","data-placement":"top",title:e.options?.lastUpdateDate}," Updated "+c(e.fmt?.date(e.options?.lastUpdateDate)),9,FT)])],2),[[G,e.files?.length]]),E(s("div",{class:"leftCol-backdrop",onClick:t[3]||(t[3]=i=>e.sidebarCollapsed=!0)},null,512),[[G,e.files?.length&&!e.sidebarCollapsed]]),s("div",UT,[s("div",zT,[s("ol",HT,[(l(!0),d(Y,null,oe(e.paths,(i,a)=>(l(),d("li",{class:"breadcrumb-item",textContent:c(i)},null,8,BT))),256))]),s("div",GT,[e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[10]||(t[10]=[s("i",{class:"far fa-edit"},null,-1),s("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,jT)):f("v-if",!0),e.type=="html-doc"&&!e.showSource?(l(),d("button",{key:1,class:O(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[4]||(t[4]=i=>e.toggleAllowScripts())},[t[11]||(t[11]=s("i",{class:"fab fa-js"},null,-1)),s("span",WT,c(e.allowScripts?"JS on":"JS off"),1)],2)):f("v-if",!0),e.type=="html-doc"?(l(),d("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[5]||(t[5]=i=>e.toggleSource())},[s("i",{class:O(["fas",e.showSource?"fa-eye":"fa-code"])},null,2),s("span",KT,c(e.showSource?"Rendered":"Source"),1)])):f("v-if",!0),E(s("a",{target:"_self",class:"btn btn-sm","aria-label":"View raw current file",title:"View the raw content of the current file",href:e.safeUrl(e.url)},[...t[12]||(t[12]=[s("i",{class:"fas fa-file-alt"},null,-1),s("span",{class:"d-none d-md-inline"}," Raw",-1)])],8,YT),[[G,e.content!=null]]),E(s("a",{target:"_self",class:"btn btn-sm","aria-label":"Download current file",title:"Download the current file",href:e.safeUrl(e.url+"&download=true")},[...t[13]||(t[13]=[s("i",{class:"fas fa-download"},null,-1),s("span",{class:"d-none d-md-inline"}," Download",-1)])],8,JT),[[G,e.content!=null]]),e.options?.download?(l(),d("a",{key:3,target:"_self",class:"btn btn-sm","aria-label":"Download full repository as ZIP",title:"Download the full repository as a ZIP archive",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[14]||(t[14]=[s("i",{class:"fas fa-file-archive"},null,-1),s("span",{class:"d-none d-md-inline"}," Full repo ZIP",-1)])],8,QT)):f("v-if",!0),e.options?.hasWebsite?(l(),d("a",{key:4,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[15]||(t[15]=[s("i",{class:"fas fa-globe"},null,-1),s("span",{class:"d-none d-md-inline"}," Website",-1)])],8,XT)):f("v-if",!0)])]),s("div",ZT,[De(r,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])])}var xT={class:"paper-faq"};function ll(e,t){return l(),d("div",xT,[...t[0]||(t[0]=[ge('
Help

Answers to the questions that come up most.

If something's missing, write to us \u2014 report a bug on GitHub.

',1),s("div",{class:"paper-faq-body"},[s("aside",{class:"paper-faq-toc"},[s("div",{class:"paper-faq-toc-head"},"Contents"),s("nav",null,[s("a",{href:"#faq-general"},"General"),s("a",{href:"#faq-features"},"Features"),s("a",{href:"#faq-limitations"},"Limitations"),s("a",{href:"#faq-privacy"},"Privacy & Security"),s("a",{href:"#faq-hosting"},"Self-Hosting")])]),s("section",{class:"faq-section","aria-label":"FAQs"},[s("div",null,[f(" General "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-info-circle mr-2"}),v("General ")]),s("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"false","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),s("div",{id:"whatIs",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingWhatIs"},[s("div",{class:"panel-body p-3"},[s("p",null," Anonymous GitHub is a free, open-source tool that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information \u2014 such as the repository owner, organization name, and custom terms \u2014 so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),s("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[s("div",{class:"panel-body p-3"},[s("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),s("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[s("div",{class:"panel-body p-3"},[s("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix \u2014 not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),s("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[s("div",{class:"panel-body p-3"},[s("p",null,[v(" Anonymous GitHub is completely free to use. However, the server costs hundreds of dollars per year to maintain. If you find the service useful, a small donation would be greatly appreciated. You can support the project by "),s("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank"},"sponsoring on GitHub"),v(", donating through "),s("a",{href:"https://ko-fi.com/tdurieux",target:"_blank"},"Ko-fi"),v(', or by clicking the "Support me" button on the site. ')])])])])]),f(" Features "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-cogs mr-2"}),v("Features ")]),s("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),s("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[s("div",{class:"panel-body p-3"},[s("p",null," Anonymous GitHub can display and render a wide variety of file types: "),s("ul",null,[s("li",null,[s("strong",null,"Text and source code"),v(" \u2014 displayed with syntax highlighting")]),s("li",null,[s("strong",null,"Markdown"),v(" \u2014 rendered as formatted HTML")]),s("li",null,[s("strong",null,"Images"),v(" (PNG, JPG, SVG, etc.) \u2014 displayed inline")]),s("li",null,[s("strong",null,"PDFs"),v(" \u2014 rendered directly in the browser")]),s("li",null,[s("strong",null,"Jupyter Notebooks"),v(" \u2014 rendered with code cells and outputs")])]),s("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),s("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[s("div",{class:"panel-body p-3"},[s("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),s("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[s("div",{class:"panel-body p-3"},[s("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),s("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[s("div",{class:"panel-body p-3"},[s("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),s("ul",null,[s("li",null,[s("strong",null,"Never expire"),v(" \u2014 the anonymized repository remains accessible indefinitely.")]),s("li",null,[s("strong",null,"Redirect to GitHub"),v(" \u2014 after expiration, visitors are redirected to the original GitHub repository.")]),s("li",null,[s("strong",null,"Remove content"),v(" \u2014 after expiration, the anonymized content is deleted from the server.")])])])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),s("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[s("div",{class:"panel-body p-3"},[s("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),s("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[s("div",{class:"panel-body p-3"},[s("p",null," Yes. The anonymized repository tracks the source on GitHub: when you push new commits to the original repository, the anonymized view picks up those changes (cached files are refreshed against GitHub). This means you can keep iterating on the code while reviewers have the link, and you do not need to recreate the anonymized repository every time you update the source. "),s("p",null," A few practical implications worth keeping in mind: "),s("ul",null,[s("li",null," You can safely create the anonymized repository early in the writing process \u2014 later commits will be visible to reviewers without any additional action. "),s("li",null," If you rename files, add new identifiers, or introduce new contributor names after creation, revisit the anonymization options (custom terms, file filters) to make sure the new content is still properly anonymized. "),s("li",null," If the original repository is made private or deleted, the anonymized repository will no longer be able to fetch updated content. ")])])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),s("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[s("div",{class:"panel-body p-3"},[s("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),s("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[s("code",null,`npm install -g @tdurieux/anonymous_github +anonymous_github`)])])])])]),f(" Limitations "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-exclamation-triangle mr-2"}),v("Limitations ")]),s("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),s("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[s("div",{class:"panel-body p-3"},[s("ul",null,[s("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),s("li",null," Files larger than 8 MB are not supported. "),s("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),s("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),f(" Privacy & Security "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-shield-alt mr-2"}),v("Privacy & Security ")]),s("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),s("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[s("div",{class:"panel-body p-3"},[s("p",null," Data stored on Anonymous GitHub is never shared or used for any purpose beyond providing the anonymization service. When a repository is removed or expires, only its configuration is retained \u2014 this makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),s("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[s("div",{class:"panel-body p-3"},[s("p",null," Anonymous GitHub only reads your repositories \u2014 it never pushes commits, opens issues, modifies settings, or deletes anything. From your perspective as a user, the service is read-only. "),s("p",null,[v(" However, GitHub's OAuth scopes do not offer a read-only option for private repositories: the only scope that grants access to private repos is "),s("code",null,"repo"),v(", which is documented as full read/write access. To support users who want to anonymize a private repository, Anonymous GitHub must request that scope, and GitHub then displays the broader permission text at sign-in. The application itself only ever performs read operations against the GitHub API. ")]),s("p",null,[v(" If you only anonymize public repositories, the source code is open and can be audited on the "),s("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),v(", or you can self-host your own instance. ")])])])]),s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),s("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[s("div",{class:"panel-body p-3"},[s("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),f(" Self-Hosting "),s("h4",{class:"faq-cat"},[s("i",{class:"fas fa-server mr-2"}),v("Self-Hosting ")]),s("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[s("div",{class:"panel panel-default mb-3"},[s("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[s("h3",{class:"panel-title"},[s("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),s("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[s("div",{class:"panel-body p-3"},[s("p",null,[v(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),s("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),v(". ")]),s("p",null," The basic steps are: "),s("ol",null,[s("li",null,"Clone the repository and install dependencies"),s("li",null,[v("Create a "),s("code",null,".env"),v(" file with your GitHub token, OAuth client ID, and client secret")]),s("li",null,[v("Run "),s("code",null,"docker-compose up -d")])])])])])]),s("div",{class:"text-center mt-5 mb-5 p-4",style:{"background-color":"var(--hover-bg-color)","border-radius":"8px"}},[s("p",{class:"mb-2",style:{"font-size":"1.1rem"}}," Still have questions? "),s("p",{class:"text-muted mb-0"},[v(" Open an issue on the "),s("a",{href:"https://github.com/tdurieux/anonymous_github/issues",target:"_blank"},"GitHub repository"),v(" and we'll be happy to help. ")])])])])],-1)])])}var eO={class:"pr-page"},tO={class:"container paper-page pr-page-inner"},sO={class:"pr-header"},nO={class:"paper-page-title pr-title"},oO=["textContent"],rO={key:1,class:"text-muted"},iO=["href"],aO={class:"pr-header-meta"},lO={key:0,class:"pr-meta-item"},dO=["textContent"],uO={key:1,class:"pr-meta-item"},cO=["textContent"],pO={key:2,class:"pr-meta-item"},fO=["textContent"],mO={key:0,class:"paper-tabs",role:"tablist"},hO=["textContent"],vO=["textContent"],yO={class:"paper-tab-content"},gO={key:0},bO={class:"pr-comments"},wO={class:"pr-comment"},kO={class:"pr-comment-head"},_O=["textContent"],EO={key:0,class:"pr-comment-date"},CO={key:0,class:"paper-table-empty"},NO={key:1},SO={class:"pr-comments"},DO={class:"pr-comment"},RO={class:"pr-comment-head"},TO={key:0,class:"pr-comment-author"},OO=["textContent"],AO=["textContent"],IO={key:0,class:"pr-comment-body"},VO={key:0,class:"paper-table-empty"};function dl(e,t){let o=et("gist-file"),r=et("markdown");return l(),d("div",eO,[s("div",tO,[t[15]||(t[15]=s("div",{class:"paper-crumbs"},[s("a",{href:"/dashboard"},"Reviewer"),v(" \xA0/\xA0 "),s("span",{class:"here"},"Gist")],-1)),s("header",sO,[s("h1",nO,[e.details?.description?(l(),d("span",{key:0,textContent:c(e.details?.description)},null,8,oO)):f("v-if",!0),e.details?.description?f("v-if",!0):(l(),d("span",rO,"Untitled gist")),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:2,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[2]||(t[2]=[s("i",{class:"far fa-edit"},null,-1),s("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,iO)):f("v-if",!0)]),s("div",aO,[s("span",{class:O(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},c(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(l(),d("span",lO,[t[3]||(t[3]=s("i",{class:"far fa-user"},null,-1)),t[4]||(t[4]=v(" @",-1)),s("span",{textContent:c(e.details?.ownerLogin)},null,8,dO)])):f("v-if",!0),e.details?.updatedDate?(l(),d("span",uO,[t[5]||(t[5]=s("i",{class:"far fa-clock"},null,-1)),t[6]||(t[6]=v()),s("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,cO)])):f("v-if",!0),e.details?.anonymizeDate?(l(),d("span",pO,[t[7]||(t[7]=s("i",{class:"fas fa-user-secret"},null,-1)),t[8]||(t[8]=v(" Anonymized ",-1)),s("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,fO)])):f("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(l(),d("nav",mO,[e.details?.files?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",onClick:t[0]||(t[0]=n=>e.tabState.active="files")},[t[9]||(t[9]=s("i",{class:"fas fa-file-code"},null,-1)),s("span",{textContent:c(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,hO)],2)):f("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",onClick:t[1]||(t[1]=n=>e.tabState.active="comments")},[t[10]||(t[10]=s("i",{class:"far fa-comment-dots"},null,-1)),s("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,vO)],2)):f("v-if",!0)])):f("v-if",!0),s("div",yO,[e.details?.files&&e.tabState?.active=="files"?(l(),d("div",gO,[s("ul",bO,[(l(!0),d(Y,null,oe(e.details?.files,(n,i)=>(l(),d("li",wO,[s("div",kO,[s("strong",{textContent:c(n?.filename)},null,8,_O),n?.language?(l(),d("span",EO,c(n?.language),1)):f("v-if",!0)]),De(o,{file:n},null,8,["file"])]))),256)),e.details?.files?.length?f("v-if",!0):(l(),d("li",CO,[...t[11]||(t[11]=[s("i",{class:"fas fa-file"},null,-1),s("span",null,"No files in this gist.",-1)])]))])])):f("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",NO,[s("ul",SO,[(l(!0),d(Y,null,oe(e.details?.comments,(n,i)=>(l(),d("li",DO,[s("div",RO,[n?.author?(l(),d("span",TO,[t[12]||(t[12]=s("i",{class:"far fa-user"},null,-1)),t[13]||(t[13]=v(" @",-1)),s("span",{textContent:c(n?.author)},null,8,OO)])):f("v-if",!0),n?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(n?.updatedDate))},null,8,AO)):f("v-if",!0)]),n?.body?(l(),d("div",IO,[De(r,{content:n?.body},null,8,["content"])])):f("v-if",!0)]))),256)),e.details?.comments?.length?f("v-if",!0):(l(),d("li",VO,[...t[14]||(t[14]=[s("i",{class:"far fa-comment-dots"},null,-1),s("span",null,"No comments on this gist.",-1)])]))])])):f("v-if",!0)])])])}var PO={class:"collapse navbar-collapse",id:"navbarSupportedContent"},qO={class:"navbar-nav mr-auto smooth-scroll"},MO={key:0,class:"nav-item"},$O={key:1,class:"nav-item"},LO={key:2,class:"nav-item"},FO={key:3,class:"nav-item"},UO={class:"nav-item"},zO={key:4,class:"nav-item"},HO={class:"navbar-nav"},BO={key:0,class:"nav-item"},GO={key:1,class:"nav-item"},jO={key:2,class:"nav-item"},WO={key:3,class:"nav-item dropdown user-chip-wrap"},KO={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},YO=["src"],JO={class:"user-chip-name"},QO={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},XO={class:"dropdown-header"},ZO=["innerHTML"];function ul(e,t){return l(),d(Y,null,[s("nav",{class:O(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[13]||(t[13]=s("a",{class:"navbar-brand",href:"/"},[v("Anonymous "),s("em",null,"GitHub")],-1)),t[14]||(t[14]=s("button",{class:"navbar-toggler",type:"button","data-toggle":"collapse","data-target":"#navbarSupportedContent","aria-controls":"navbarSupportedContent","aria-expanded":"false","aria-label":"Toggle navigation"},[s("span",{class:"navbar-toggler-icon"})],-1)),s("div",PO,[s("ul",qO,[e.user?f("v-if",!0):(l(),d("li",MO,[s("a",{class:O(["nav-link",{active:e.path=="/"}]),href:"/"}," Home ",2)])),e.user?(l(),d("li",$O,[s("a",{class:O(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[2]||(t[2]=[s("i",{class:"fas fa-th-large d-lg-none mr-1"},null,-1),v(" My work ",-1)])],2)])):f("v-if",!0),e.user?(l(),d("li",LO,[s("a",{class:O(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[3]||(t[3]=[s("i",{class:"fas fa-user-secret d-lg-none mr-1"},null,-1),v(" Anonymize ",-1)])],2)])):f("v-if",!0),e.user?(l(),d("li",FO,[s("a",{class:O(["nav-link",{active:e.path=="/conferences"}]),href:"/conferences"},[...t[4]||(t[4]=[s("i",{class:"fas fa-chalkboard-teacher d-lg-none mr-1"},null,-1),v(" Conferences ",-1)])],2)])):f("v-if",!0),s("li",UO,[s("a",{class:O(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[5]||(t[5]=[s("i",{class:"fas fa-question-circle d-lg-none mr-1"},null,-1),v("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(l(),d("li",zO,[s("a",{class:O(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[6]||(t[6]=[s("i",{class:"fas fa-cog d-lg-none mr-1"},null,-1),v(" Admin ",-1)])],2)])):f("v-if",!0)]),s("ul",HO,[t[11]||(t[11]=s("li",{class:"nav-item"},[s("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[s("i",{class:"fab fa-github","aria-hidden":"true"})])],-1)),f(` "Report a bug" is about this service. Reviewers who land on an anonymized repository often think it is about the paper, so the - label names the service and the tooltip says who to contact. `),t[12]||(t[12]=s("li",{class:"nav-item d-none d-lg-block"},[s("a",{class:"nav-link",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",title:"Report a problem with the Anonymous GitHub service. Questions about an anonymized repository or paper go to its authors.","data-offset":"30"},[s("i",{class:"fas fa-bug d-lg-none mr-1","aria-hidden":"true"}),y("Report a bug ")])],-1)),e.isDarkMode?m("v-if",!0):(l(),d("li",OO,[s("a",{class:"nav-link nav-icon",href:"#",title:"Switch to dark mode","aria-label":"Switch to dark mode",role:"button",onClick:t[0]||(t[0]=ke(o=>{e.darkMode(!0)},["prevent"]))},[...t[7]||(t[7]=[s("i",{class:"fas fa-moon","aria-hidden":"true"},null,-1)])])])),e.isDarkMode?(l(),d("li",AO,[s("a",{class:"nav-link nav-icon",href:"#",title:"Switch to light mode","aria-label":"Switch to light mode",role:"button",onClick:t[1]||(t[1]=ke(o=>{e.darkMode(!1)},["prevent"]))},[...t[8]||(t[8]=[s("i",{class:"fas fa-sun","aria-hidden":"true"},null,-1)])])])):m("v-if",!0),e.user?m("v-if",!0):(l(),d("li",IO,[...t[9]||(t[9]=[s("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[s("i",{class:"fab fa-github mr-1"}),y(" Sign in ")],-1)])])),e.user?(l(),d("li",VO,[s("a",PO,[e.user?.photo?(l(),d("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,qO)):m("v-if",!0),s("span",MO,c(e.user?.username),1)]),s("div",$O,[s("h6",LO,"Signed in as @"+c(e.user?.username),1),t[10]||(t[10]=ge('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource codeSign out',8))])])):m("v-if",!0)])])],2),e.generalMessage?(l(),d("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,FO)):m("v-if",!0)],64)}var UO={class:"paper-landing"},zO={class:"paper-hero"},HO={class:"paper-hero-copy"},BO={class:"paper-cta-row"},GO={key:0,href:"/signin",target:"_self",class:"btn-hero"},jO={key:1,href:"/anonymize",class:"btn-hero"},WO={class:"paper-stats paper-wrap",id:"metrics","aria-label":"Usage over the last 60 days"},KO={class:"paper-stats-grid"},YO={class:"paper-stat-value"},JO={class:"paper-stat-label"},QO=["viewBox"],XO=["x","y","width","height"],xO={key:1,class:"paper-stat-delta"},ZO={class:"paper-features paper-wrap","aria-label":"Product features"},eA={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},tA=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],sA={class:"paper-eyebrow"},nA={class:"paper-feature-title"},oA={class:"paper-feature-more"},rA={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},iA=["href","target"],aA={class:"paper-features-stage"},lA=["id","aria-labelledby"],dA={class:"paper-frame"},uA={class:"paper-frame-bar","aria-hidden":"true"},cA={class:"url"},pA=["src","alt"],fA={class:"paper-footer"},mA={class:"paper-footer-inner"},hA={class:"paper-footer-col"},vA={key:0,href:"/dashboard"},yA={key:1,href:"/conferences"},gA={class:"paper-footer-foot"};function cl(e,t){return l(),d("div",UO,[m(" Hero: copy on the left, the product on the right "),s("section",zO,[s("div",HO,[t[2]||(t[2]=s("div",{class:"paper-eyebrow"},"For double-blind peer review",-1)),t[3]||(t[3]=s("h1",{class:"hero-title"},[y(" Share the code,"),s("br"),s("span",{class:"accent"},"not the author.")],-1)),t[4]||(t[4]=s("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist with every trace of identity removed, so you can attach a link to your submission without breaking anonymity. ",-1)),s("div",BO,[e.user?m("v-if",!0):(l(),d("a",GO,[...t[0]||(t[0]=[s("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),y("Sign in with GitHub ",-1)])])),e.user?(l(),d("a",jO," Anonymize a repository \u2192 ")):m("v-if",!0),t[1]||(t[1]=s("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[5]||(t[5]=s("ul",{class:"paper-reassure"},[s("li",null,"Free and open source"),s("li",null,"Read-only: never writes to your repos"),s("li",null,"Expires on the date you set")],-1))]),t[6]||(t[6]=ge('
The anonymize form with a live README preview showing the redactions
',1))]),m(" Proof "),t[16]||(t[16]=ge('
Trusted by authors at
ICSEFSEOOPSLA
',1)),m(" Live stats "),s("section",WO,[t[7]||(t[7]=s("div",{class:"paper-stats-meta"},[s("div",{class:"paper-stats-meta-left"},"Live \xB7 last 60 days"),s("div",{class:"paper-stats-meta-right"},[s("span",{class:"paper-stats-dot","aria-hidden":"true"}),y(" updated daily ")])],-1)),s("div",KO,[(l(!0),d(Y,null,oe(e.cards,(o,r)=>(l(),d("div",{class:"paper-stat-card",key:o?.key},[s("div",YO,c(e.fmt?.bigNum(o?.total)),1),s("div",JO,c(o?.label),1),e.history[o?.key].bars?.length>1?(l(),d("svg",{key:0,class:"paper-stat-bars",preserveAspectRatio:"none","aria-hidden":"true",viewBox:"0 0 "+e.history[o?.key].viewW+" 36"},[(l(!0),d(Y,null,oe(e.history[o?.key].bars,(n,i)=>(l(),d("rect",{key:i,class:O({"is-latest":i===e.history[o.key].bars.length-1}),x:n?.x,y:n?.y,width:n?.w,height:n?.h},null,10,XO))),128))],8,QO)):m("v-if",!0),e.history[o?.key].bars?.length>1?(l(),d("div",xO," +"+c(e.fmt?.number(e.history[o?.key].deltaToday))+" today ",1)):m("v-if",!0)]))),128))])]),m(" Before / after "),t[17]||(t[17]=s("section",{class:"paper-section-head paper-wrap"},[s("div",null,[s("div",{class:"paper-eyebrow"},"Before \xB7 after"),s("h2",null,[y("The same repository, "),s("em",null,"minus you.")])]),s("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),t[18]||(t[18]=s("div",{class:"paper-preview paper-wrap","aria-label":"Before and after example"},[s("div",{class:"pane"},[s("div",{class:"pane-header"},[s("span",{class:"pane-label"},"Before \xB7 your repo"),s("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")]),s("div",{class:"pane-body"},[s("div",null,[s("span",{class:"tok"},"#"),y(),s("strong",null,"DeepLearnUtils")]),s("div",null,"Developed by Jane Smith at MIT CSAIL."),s("div",null,"See Smith et\xA0al., \u201CAttention That Works,\u201D 2026."),s("div",null,"Contact: jane.smith@mit.edu")])]),s("div",{class:"pane"},[s("div",{class:"pane-header"},[s("span",{class:"pane-label"},"After \xB7 anonymous mirror"),s("span",{class:"pane-url"},"anonymous.4open.science/r/paper-7f2a")]),s("div",{class:"pane-body"},[s("div",null,[s("span",{class:"tok"},"#"),y(),s("strong",null,"DeepLearnUtils")]),s("div",null,[y("Developed by "),s("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),y(" at "),s("span",{class:"redact",role:"img","aria-label":"redacted affiliation"},"XXXX-2"),y(".")]),s("div",null,[y("See "),s("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),y(" et\xA0al., \u201CAttention That Works,\u201D 2026.")]),s("div",null,[y("Contact: "),s("span",{class:"redact",role:"img","aria-label":"redacted email address"},"XXXX-3")])])])],-1)),m(" What you get: one screenshot, three tabs "),t[19]||(t[19]=s("section",{class:"paper-section-head paper-wrap",id:"about"},[s("div",null,[s("div",{class:"paper-eyebrow"},"What you get"),s("h2",null,[y("Anonymize, review, "),s("em",null,"manage.")])]),s("p",null," Every mirror is read-only and passes through the same filter, from the README to a PDF's link targets. Monitor it, update it, or remove it the day the decision is out. ")],-1)),s("section",ZO,[s("div",eA,[(l(!0),d(Y,null,oe(e.features,(o,r)=>(l(),d("div",{class:O(["paper-feature",{"is-on":e.feature===o?.key}]),key:o?.key},[s("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:n=>e.selectFeature(o.key),onKeydown:n=>e.featureKeydown(n,r),id:"feature-tab-"+o?.key,"aria-controls":"feature-panel-"+o?.key,"aria-selected":e.feature===o?.key,tabindex:e.feature===o?.key?0:-1},[s("span",sA,c(o?.num)+" \xB7 "+c(o?.eyebrow),1),s("span",nA,[y(c(o?.title)+" ",1),s("em",null,c(o?.accent),1)])],40,tA),s("div",oA,[s("span",rA,[y(c(o?.title)+" ",1),s("em",null,c(o?.accent),1)]),s("p",null,c(o?.text),1),s("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(o)),target:e.featureTarget(o)},c(o?.cta)+" \u2192",9,iA)])],2))),128))]),s("div",aA,[(l(!0),d(Y,null,oe(e.features,(o,r)=>E((l(),d("div",{class:"paper-feature-panel",role:"tabpanel",key:o?.key,id:"feature-panel-"+o?.key,"aria-labelledby":"feature-tab-"+o?.key},[s("div",dA,[s("div",uA,[t[8]||(t[8]=s("span",{class:"dots"},[s("i"),s("i"),s("i")],-1)),s("span",cA,c(o?.url),1)]),s("div",{class:O("paper-crop paper-crop-"+o?.key)},[s("img",{loading:"lazy",width:"2880",height:"1800",src:e.safeUrl(o?.img),alt:o?.alt},null,8,pA)],2)])],8,lA)),[[G,e.feature===o?.key]])),128))])]),m(" FAQ teaser "),t[20]||(t[20]=ge('
Before you sign in

The questions that come up most.

Read the full FAQ \u2192
Why does GitHub ask for write access at sign-in?

GitHub's OAuth scopes have no read-only option for private repositories. Anonymous GitHub only ever reads your repositories; it never pushes, modifies, or deletes anything.

Which file formats are supported?

Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Everything passes through the same redaction filter.

What happens when an anonymized repository expires?

You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.

',1)),s("footer",fA,[s("div",mA,[t[12]||(t[12]=s("div",{class:"paper-footer-brand"},[s("div",{class:"paper-footer-mark"},[y("Anonymous "),s("em",null,"GitHub")]),s("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-blind peer review. ")],-1)),s("div",hA,[t[9]||(t[9]=s("div",{class:"paper-footer-head"},"Product",-1)),t[10]||(t[10]=s("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(l(),d("a",vA,"My work")):m("v-if",!0),e.user?(l(),d("a",yA,"Conferences")):m("v-if",!0),t[11]||(t[11]=s("a",{href:"/faq"},"FAQ",-1))]),t[13]||(t[13]=ge('',2))]),t[15]||(t[15]=s("div",{class:"paper-footer-rule"},null,-1)),s("div",gA,[s("span",null,"\xA9 "+c(e.year||2026)+" Anonymous GitHub \xB7 MIT licensed",1),t[14]||(t[14]=s("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])])}var bA={class:"paper-empty"},wA={class:"paper-empty-inner"},kA={key:0,class:"paper-eyebrow"},_A={key:1,class:"paper-eyebrow"},EA={key:2,class:"paper-empty-title"},CA=["textContent"];function pl(e,t){return l(),d("div",bA,[s("div",wA,[e.error?m("v-if",!0):(l(),d("div",kA,"Working")),e.error?(l(),d("div",_A,"Error")):m("v-if",!0),e.error?m("v-if",!0):(l(),d("h1",EA,[...t[0]||(t[0]=[y(" Loading",-1),s("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(l(),d("h1",{key:3,class:"paper-empty-title",textContent:c(e.fmt.translate(e.error))},null,8,CA)):m("v-if",!0)])])}var NA={class:"container paper-page paper-settings"},SA={class:"paper-crumbs"},DA={class:"here"},RA={class:"paper-page-title"},TA={class:"paper-settings-body"},OA={class:"paper-settings-toc"},AA={href:"#conf-billing"},IA={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},VA={id:"conf-basics",class:"paper-settings-section"},PA={class:"form-group"},qA={class:"invalid-feedback"},MA={class:"invalid-feedback"},$A={class:"form-group"},LA={class:"invalid-feedback"},FA={class:"form-group"},UA={class:"invalid-feedback"},zA={class:"invalid-feedback"},HA={id:"conf-window",class:"paper-settings-section"},BA={class:"form-grid-2"},GA={class:"form-group"},jA={class:"invalid-feedback"},WA={class:"invalid-feedback"},KA={class:"form-group"},YA={class:"invalid-feedback"},JA={class:"invalid-feedback"},QA={id:"conf-rendering",class:"paper-settings-section"},XA={class:"form-check"},xA={class:"form-check-input",type:"checkbox",id:"link",name:"link"},ZA={class:"form-check"},eI={class:"form-check-input",type:"checkbox",id:"image",name:"image"},tI={class:"form-check"},sI={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},nI={class:"form-check"},oI={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},rI={id:"conf-features",class:"paper-settings-section"},iI={class:"form-check"},aI={class:"form-check-input",type:"checkbox",id:"update",name:"update"},lI={class:"form-check"},dI={class:"form-check-input",type:"checkbox",id:"page",name:"page"},uI={id:"conf-plan",class:"paper-settings-section"},cI={class:"paper-plan-grid"},pI=["value"],fI=["textContent"],mI={class:"paper-plan-price"},hI=["innerHTML"],vI={key:0,id:"conf-billing",class:"paper-settings-section"},yI={class:"form-group"},gI={class:"form-group"},bI={class:"form-group"},wI={class:"form-group"},kI={class:"form-grid-3"},_I={class:"form-group"},EI={class:"form-group"},CI={class:"form-group"},NI={class:"form-group"},SI={class:"paper-settings-footer"},DI=["textContent"],RI=["textContent"];function fl(e,t){let o=we("paper-scrollspy"),r=we("field"),n=we("form");return l(),d("div",NA,[s("div",SA,[t[1]||(t[1]=s("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=y(" \xA0/\xA0 ",-1)),t[3]||(t[3]=s("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=y(" \xA0/\xA0 ",-1)),s("span",DA,c(e.editionMode?"Edit":"New"),1)]),s("h1",RA,[y(c(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=s("em",null,"conference",-1))]),t[42]||(t[42]=s("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue, and lift author quotas during the review window. ",-1)),s("div",TA,[E((l(),d("aside",OA,[t[7]||(t[7]=s("div",{class:"paper-settings-toc-head"},"On this page",-1)),s("nav",null,[t[6]||(t[6]=ge('BasicsReview windowRendering defaultsFeaturesPlan',5)),E(s("a",AA,"Billing",512),[[G,e.plan?.pricePerRepo>0]])])])),[[o]]),E((l(),d("form",IA,[s("section",VA,[t[12]||(t[12]=s("div",{class:"paper-section-eyebrow"},"Basics",-1)),s("div",PA,[t[8]||(t[8]=s("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[r,{state:e.viewState,set:i=>{e.options.name=i},value:e.options?.name,form:"conference",options:{}}]]),E(s("div",qA," The name of the conference is invalid. ",512),[[G,e.conference?.name?.errors?.invalid]]),E(s("div",MA," The name of the conference is required. ",512),[[G,e.conference?.name?.errors?.required]])]),s("div",$A,[t[9]||(t[9]=s("label",{class:"paper-field-label",for:"url"},"Website",-1)),E(s("input",{type:"url",class:O(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[r,{state:e.viewState,set:i=>{e.options.url=i},value:e.options?.url,form:"conference",options:{}}]]),E(s("div",LA," The url of the conference is invalid. ",512),[[G,e.conference?.url?.errors?.invalid]])]),s("div",FA,[t[10]||(t[10]=s("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[r,{state:e.viewState,set:i=>{e.options.conferenceID=i},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=s("small",{class:"form-text text-muted"},[y("3\u201310 characters, letters, numbers, "),s("code",null,"-"),y(" and "),s("code",null,"_"),y(". Authors reference this when they anonymize.")],-1)),E(s("div",{class:"invalid-feedback"}," The conference ID '"+c(e.options?.conferenceID)+"' is already used. ",513),[[G,e.conference?.conferenceID?.errors?.used]]),E(s("div",UA," The conference ID is required. ",512),[[G,e.conference?.conferenceID?.errors?.required]]),E(s("div",zA," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[G,e.conference?.conferenceID?.errors?.pattern]])])]),s("section",HA,[t[17]||(t[17]=s("div",{class:"paper-section-eyebrow"},"Review window",-1)),s("div",BA,[s("div",GA,[t[13]||(t[13]=s("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),E(s("input",{type:"date",class:O(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[r,{state:e.viewState,set:i=>{e.options.startDate=i},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=s("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),E(s("div",jA," Start date is required. ",512),[[G,e.conference?.startDate?.errors?.required]]),E(s("div",WA," Start date must be before end date. ",512),[[G,e.conference?.startDate?.errors?.invalid]])]),s("div",KA,[t[15]||(t[15]=s("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),E(s("input",{type:"date",class:O(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[r,{state:e.viewState,set:i=>{e.options.endDate=i},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=s("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),E(s("div",YA," End date is required. ",512),[[G,e.conference?.endDate?.errors?.required]]),E(s("div",JA," End date is invalid. ",512),[[G,e.conference?.endDate?.errors?.invalid]])])])]),s("section",QA,[t[25]||(t[25]=s("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),s("div",XA,[E(s("input",xA,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.link=i},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=s("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=s("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),s("div",ZA,[E(s("input",eI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.image=i},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=s("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=s("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),s("div",tI,[E(s("input",sI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.pdf=i},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=s("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=s("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),s("div",nI,[E(s("input",oI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.notebook=i},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=s("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))])]),s("section",rI,[t[30]||(t[30]=s("div",{class:"paper-section-eyebrow"},"Features",-1)),s("div",iI,[E(s("input",aI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.update=i},value:e.options?.options?.update,form:"conference",options:{}}]]),t[26]||(t[26]=s("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[27]||(t[27]=s("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),s("div",lI,[E(s("input",dI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.page=i},value:e.options?.options?.page,form:"conference",options:{}}]]),t[28]||(t[28]=s("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[29]||(t[29]=s("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),s("section",uI,[t[32]||(t[32]=s("div",{class:"paper-section-eyebrow"},"Plan",-1)),t[33]||(t[33]=s("p",{class:"paper-section-copy"},"Billed per repository per month, prorated by the day for as long as a repository stays in the conference.",-1)),s("div",cI,[(l(!0),d(Y,null,oe(e.plans,(i,a)=>(l(),d("label",{class:O(["paper-plan-card",{selected:e.options?.plan?.planID==i?.id}])},[E(s("input",{type:"radio",name:"planPicker",value:i?.id},null,8,pI),[[r,{state:e.viewState,set:u=>{e.options.plan.planID=u},value:e.options?.plan?.planID,form:"conference",options:{}}]]),s("div",{class:"paper-plan-head",textContent:c(i?.name)},null,8,fI),s("div",mI,[y(c(e.fmt?.number(i?.pricePerRepo))+"\u20AC ",1),t[31]||(t[31]=s("span",{class:"paper-plan-per"},"/ repo / month",-1))]),s("div",{class:"paper-plan-desc",innerHTML:e.sanitize(i?.description)},null,8,hI)],2))),256))])]),e.plan?.pricePerRepo>0?(l(),d("section",vI,[t[41]||(t[41]=s("div",{class:"paper-section-eyebrow"},"Billing",-1)),s("div",yI,[t[34]||(t[34]=s("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.name=i},value:e.options?.billing?.name,form:"conference",options:{}}]])]),s("div",gI,[t[35]||(t[35]=s("label",{class:"paper-field-label",for:"email"},"Email",-1)),E(s("input",{type:"email",class:O(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.email=i},value:e.options?.billing?.email,form:"conference",options:{}}]])]),s("div",bI,[t[36]||(t[36]=s("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.address=i},value:e.options?.billing?.address,form:"conference",options:{}}]])]),s("div",wI,[E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.address2=i},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),s("div",kI,[s("div",_I,[t[37]||(t[37]=s("label",{class:"paper-field-label",for:"city"},"City",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.city=i},value:e.options?.billing?.city,form:"conference",options:{}}]])]),s("div",EI,[t[38]||(t[38]=s("label",{class:"paper-field-label",for:"country"},"Country",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.country=i},value:e.options?.billing?.country,form:"conference",options:{}}]])]),s("div",CI,[t[39]||(t[39]=s("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.zip=i},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),s("div",NI,[t[40]||(t[40]=s("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.vat=i},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):m("v-if",!0),s("div",SI,[e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,DI)):m("v-if",!0),e.message?(l(),d("div",{key:1,class:"alert alert-success",role:"alert",textContent:c(e.message)},null,8,RI)):m("v-if",!0),s("button",{id:"send",type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=ke(i=>e.submitForm(i,()=>{e.submit(i)}),["prevent"]))},c(e.editionMode?"Update":"Create")+" conference ",1)])])),[[n,e.viewState]])])])}var TI={key:0},OI=["innerHTML"],AI={key:3},II=["src"],VI=["src"],PI={key:7},qI={controls:"controls"},MI=["src"],$I={key:8},LI={key:9,class:"file-error container d-flex h-100"},FI={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},UI={class:"paper-error-msg"},zI={key:10,class:"file-error container d-flex h-100"},HI=["textContent"],BI={key:11,class:"file-error container d-flex h-100"},GI={key:12,class:"file-error container d-flex h-100"},jI={key:13,class:"file-error container d-flex h-100"},WI={key:14,class:"file-error container d-flex h-100"},KI={class:"paper-empty-title m-auto"},YI=["href"];function ml(e,t){let o=et("html-doc"),r=et("pdfviewer"),n=et("notebook"),i=we("code-editor");return l(),d(Y,null,[e.type=="text"?E((l(),d("div",TI,null,512)),[[i,{content:e.content,options:e.aceOption}]]):m("v-if",!0),e.type=="html"?(l(),d("div",{key:1,class:"file-content markdown-body",innerHTML:e.sanitize(e.content)},null,8,OI)):m("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(l(),ks(o,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):m("v-if",!0),(e.type=="code"||e.type=="html-doc"&&e.showSource)&&e.content!=null?E((l(),d("div",AI,null,512)),[[i,{content:e.content,options:e.aceOption}]]):m("v-if",!0),e.type=="image"?(l(),d("img",{key:4,class:"image-content",src:e.safeUrl(e.url)},null,8,II)):m("v-if",!0),e.type=="media"?(l(),d("iframe",{key:5,class:"h-100 overflow-auto w-100 b-0",src:e.safeUrl(e.url)},null,8,VI)):m("v-if",!0),e.type=="pdf"?(l(),ks(r,{key:6,src:e.safeUrl(e.url)},null,8,["src"])):m("v-if",!0),e.type=="audio"?(l(),d("div",PI,[s("audio",qI,[s("source",{src:e.safeUrl(e.url)},null,8,MI)])])):m("v-if",!0),e.type=="IPython"?(l(),d("div",$I,[De(n,{file:e.url,content:e.content},null,8,["file","content"])])):m("v-if",!0),e.type=="rate_limited"?(l(),d("div",LI,[s("div",FI,[t[2]||(t[2]=s("div",{class:"paper-ratelimit-head"},[s("i",{class:"fas fa-hourglass-half"}),s("div",null,[s("div",{class:"paper-error-eyebrow"},"Temporarily paused"),s("div",{class:"paper-error-title"},"GitHub API rate limit reached")])],-1)),s("p",UI,[t[0]||(t[0]=y("This repository will be available in ",-1)),s("strong",null,c(e.rateLimitCountdown),1),t[1]||(t[1]=y(". The page will reload automatically.",-1))])])])):m("v-if",!0),e.type=="error"?(l(),d("div",zI,[s("h1",{class:"paper-empty-title m-auto",textContent:c(e.fmt.translate("ERRORS."+e.content))},null,8,HI)])):m("v-if",!0),e.type=="loading"&&!e.error?(l(),d("div",BI,[...t[3]||(t[3]=[s("h1",{class:"paper-empty-title m-auto"},"Loading\u2026",-1)])])):m("v-if",!0),e.type=="empty"?(l(),d("div",GI,[...t[4]||(t[4]=[s("h1",{class:"paper-empty-title m-auto"},[y("Empty "),s("em",null,"repository"),y(".")],-1)])])):m("v-if",!0),e.content==null&&e.type!="empty"?(l(),d("div",jI,[...t[5]||(t[5]=[s("h1",{class:"paper-empty-title m-auto"},[y("Empty "),s("em",null,"file"),y(".")],-1)])])):m("v-if",!0),e.type=="binary"?(l(),d("div",WI,[s("h1",KI,[t[6]||(t[6]=y("Unsupported ",-1)),t[7]||(t[7]=s("em",null,"binary file",-1)),t[8]||(t[8]=y(". You can ",-1)),s("a",{target:"_blank",href:e.safeUrl(e.url+"&download=true")},"download it",8,YI),t[9]||(t[9]=y(".",-1))])])):m("v-if",!0)],64)}var JI={class:"container page dashboard-page paper-page"},QI={class:"row"},XI={class:"w-100"},xI={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},ZI={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},eV={class:"flex-grow-1"},tV={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},sV={class:"d-flex flex-wrap",style:{gap:"6px"}},nV={class:"dropdown"},oV={class:"dropdown-menu","aria-labelledby":"dropdownSort"},rV={class:"form-check dropdown-item"},iV={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},aV={class:"form-check dropdown-item"},lV={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},dV={class:"form-check dropdown-item"},uV={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},cV={class:"form-check dropdown-item"},pV={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},fV={class:"form-check dropdown-item"},mV={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},hV={class:"dropdown"},vV={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},yV={class:"form-check dropdown-item"},gV={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},bV={class:"form-check dropdown-item"},wV={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},kV={class:"form-check dropdown-item"},_V={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},EV={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},CV={class:"filter-chip"},NV=["onClick"],SV={class:"repo-list w-100"},DV={class:"repo-list-item-content"},RV={class:"repo-list-item-main"},TV={class:"repo-list-item-header"},OV=["textContent","href"],AV=["textContent"],IV=["textContent"],VV={class:"repo-source"},PV=["href"],qV={class:"repo-date"},MV={class:"repo-meta"},$V={key:0,title:"Conference"},LV=["title"],FV=["title"],UV=["title"],zV={key:1},HV={class:"repo-list-item-actions"},BV={class:"dropdown"},GV={class:"dropdown-menu dropdown-menu-right"},jV=["href"],WV=["onClick"],KV=["onClick"],YV=["onClick"],JV=["href"],QV={key:0,class:"repo-list-empty"};function hl(e,t){let o=we("field"),r=we("form");return l(),d("div",JI,[s("div",QI,[s("div",XI,[t[12]||(t[12]=ge('
My work \xA0/\xA0 Pull requests

Anonymized pull requests

Track PR mirrors you\u2019ve created and their reviewer traffic.

',2)),m(" Search + filters row "),E((l(),d("form",xI,[s("div",ZI,[s("div",eV,[E(s("input",tV,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),s("div",sV,[s("div",nV,[t[6]||(t[6]=s("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),s("div",oV,[t[5]||(t[5]=s("h6",{class:"dropdown-header"},"Select order",-1)),s("div",rV,[E(s("input",iV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=s("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),s("div",aV,[E(s("input",lV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=s("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),s("div",dV,[E(s("input",uV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=s("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),s("div",cV,[E(s("input",pV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=s("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),s("div",fV,[E(s("input",mV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=s("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),s("div",hV,[t[11]||(t[11]=s("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),s("div",vV,[t[10]||(t[10]=s("h6",{class:"dropdown-header"},"Select status",-1)),s("div",yV,[E(s("input",gV,null,512),[[o,{state:e.viewState,set:n=>{e.filters.status.ready=n},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=s("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),s("div",bV,[E(s("input",wV,null,512),[[o,{state:e.viewState,set:n=>{e.filters.status.expired=n},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=s("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),s("div",kV,[E(s("input",_V,null,512),[[o,{state:e.viewState,set:n=>{e.filters.status.removed=n},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=s("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[r,e.viewState]]),m(" Active filter chips "),E(s("div",EV,[(l(!0),d(Y,null,oe(e.filters?.status,(n,i,a)=>E((l(),d("span",CV,[y(c(e.fmt?.title(i))+" ",1),s("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:u=>{e.filters.status[i]=!0}}," \xD7 ",8,NV)],512)),[[G,!n]])),256))],512),[[G,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),m(" Pull request list "),s("ul",SV,[(l(!0),d(Y,null,oe(e.filteredPullRequests,(n,i)=>(l(),d("li",{class:O(["repo-list-item",{"repo-inactive":n?.status=="expired"||n?.status=="removed"||n?.status=="error"}])},[s("div",DV,[s("div",RV,[s("div",TV,[s("a",{class:"repo-name",textContent:c(n?.pullRequestId),href:e.safeUrl("/pr/"+n?.pullRequestId)},null,8,OV),s("span",{class:O(["status-badge",{"status-removed":n?.status=="removed"||n?.status=="expired"||n?.status=="removing"||n?.status=="expiring","status-preparing":n?.status=="preparing"||n?.status=="download","status-ready":n?.status=="ready","status-error":n?.status=="error"}])},[s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,AV),n?.status=="error"?(l(),d("span",{key:0,textContent:c(": "+n?.statusMessage)},null,8,IV)):m("v-if",!0)],2)]),s("div",VV,[s("span",null,[t[13]||(t[13]=s("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),s("a",{href:e.safeUrl("https://github.com/"+n?.source?.repositoryFullName+"/pull/"+n?.source?.pullRequestId)},c(n?.source?.repositoryFullName)+"#"+c(n?.source?.pullRequestId),9,PV)]),s("span",{class:O(["status-badge",{"status-ready":n?.merged,"status-removed":n?.state=="open","status-error":n?.state=="closed"&&!n?.merged}]),style:{"font-size":"10px"}},c(e.fmt?.title(n?.merged?"merged":n?.state)),3),s("span",qV,"anonymized "+c(e.fmt?.humanTime(n?.anonymizeDate)),1)])]),s("div",MV,[n?.conference?(l(),d("span",$V,[t[14]||(t[14]=s("i",{class:"fas fa-chalkboard-teacher"},null,-1)),y(" "+c(n?.conference),1)])):m("v-if",!0),s("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+n?.options?.terms?.join(", ")},[t[15]||(t[15]=s("i",{class:"fas fa-shield-alt"},null,-1)),y(" "+c(e.fmt?.number(n?.options?.terms?.length)),1)],8,LV),s("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(n?.pageView)},[t[16]||(t[16]=s("i",{class:"far fa-eye"},null,-1)),y(" "+c(e.fmt?.number(n?.pageView)),1)],8,FV),s("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(n?.lastView)},[t[17]||(t[17]=s("i",{class:"far fa-calendar-alt"},null,-1)),y(" "+c(e.fmt?.humanTime(n?.lastView)),1)],8,UV),n?.options?.expirationMode!="never"&&n?.status=="ready"?(l(),d("span",zV,[t[18]||(t[18]=s("i",{class:"far fa-clock"},null,-1)),y(" Expire: "+c(e.fmt?.humanTime(n?.options?.expirationDate)),1)])):m("v-if",!0)])]),s("div",HV,[s("div",BV,[t[24]||(t[24]=s("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),s("div",GV,[s("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+n?.pullRequestId)},[...t[19]||(t[19]=[s("i",{class:"far fa-edit","aria-hidden":"true"},null,-1),y(" Edit ",-1)])],8,jV),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updatePullRequest(n),["prevent"])},[...t[20]||(t[20]=[s("i",{class:"fas fa-sync"},null,-1),y(" Force update ",-1)])],8,WV),[[G,n?.status=="ready"||n?.status=="error"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updatePullRequest(n),["prevent"])},[...t[21]||(t[21]=[s("i",{class:"fas fa-check-circle"},null,-1),y(" Enable ",-1)])],8,KV),[[G,n?.status=="removed"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.removePullRequest(n),["prevent"])},[...t[22]||(t[22]=[s("i",{class:"fas fa-trash-alt"},null,-1),y(" Remove ",-1)])],8,YV),[[G,n?.status=="ready"]]),s("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+n?.pullRequestId+"/")},[...t[23]||(t[23]=[s("i",{class:"fa fa-eye","aria-hidden":"true"},null,-1),y(" View PR ",-1)])],8,JV)])])])],2))),256)),e.filteredPullRequests?.length==0?(l(),d("li",QV,[...t[25]||(t[25]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No pull requests to display.",-1)])])):m("v-if",!0)])])])}var XV={class:"container paper-page paper-settings"},xV={class:"paper-settings-body"},ZV={class:"paper-settings-toc"},eP={class:"paper-settings-main"},tP={id:"settings-quota",class:"paper-settings-section"},sP={key:0,class:"quota-row"},nP={class:"quota-item"},oP={class:"quota-header"},rP={class:"quota-label"},iP={key:0,class:"quota-value"},aP={key:0},lP={key:1,class:"quota-unlimited-tag"},dP={key:1,class:"quota-value"},uP={key:0},cP={key:1,class:"quota-unlimited-tag"},pP=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],fP={key:1,class:"quota-row","aria-hidden":"true"},mP={class:"quota-item"},hP={id:"settings-terms",class:"paper-settings-section"},vP={class:"form-group"},yP={class:"form-control",id:"terms",name:"terms",rows:"4",placeholder:`Jane Smith + label names the service and the tooltip says who to contact. `),t[12]||(t[12]=s("li",{class:"nav-item d-none d-lg-block"},[s("a",{class:"nav-link",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",title:"Report a problem with the Anonymous GitHub service. Questions about an anonymized repository or paper go to its authors.","data-offset":"30"},[s("i",{class:"fas fa-bug d-lg-none mr-1","aria-hidden":"true"}),v("Report a bug ")])],-1)),e.isDarkMode?f("v-if",!0):(l(),d("li",BO,[s("a",{class:"nav-link nav-icon",href:"#",title:"Switch to dark mode","aria-label":"Switch to dark mode",role:"button",onClick:t[0]||(t[0]=ke(o=>{e.darkMode(!0)},["prevent"]))},[...t[7]||(t[7]=[s("i",{class:"fas fa-moon","aria-hidden":"true"},null,-1)])])])),e.isDarkMode?(l(),d("li",GO,[s("a",{class:"nav-link nav-icon",href:"#",title:"Switch to light mode","aria-label":"Switch to light mode",role:"button",onClick:t[1]||(t[1]=ke(o=>{e.darkMode(!1)},["prevent"]))},[...t[8]||(t[8]=[s("i",{class:"fas fa-sun","aria-hidden":"true"},null,-1)])])])):f("v-if",!0),e.user?f("v-if",!0):(l(),d("li",jO,[...t[9]||(t[9]=[s("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[s("i",{class:"fab fa-github mr-1"}),v(" Sign in ")],-1)])])),e.user?(l(),d("li",WO,[s("a",KO,[e.user?.photo?(l(),d("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,YO)):f("v-if",!0),s("span",JO,c(e.user?.username),1)]),s("div",QO,[s("h6",XO,"Signed in as @"+c(e.user?.username),1),t[10]||(t[10]=ge('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource codeSign out',8))])])):f("v-if",!0)])])],2),e.generalMessage?(l(),d("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,ZO)):f("v-if",!0)],64)}var xO={class:"paper-landing"},eA={class:"paper-hero"},tA={class:"paper-hero-copy"},sA={class:"paper-cta-row"},nA={key:0,href:"/signin",target:"_self",class:"btn-hero"},oA={key:1,href:"/anonymize",class:"btn-hero"},rA={class:"paper-stats paper-wrap",id:"metrics","aria-label":"Usage over the last 60 days"},iA={class:"paper-stats-grid"},aA={class:"paper-stat-value"},lA={class:"paper-stat-label"},dA=["viewBox"],uA=["x","y","width","height"],cA={key:1,class:"paper-stat-delta"},pA={class:"paper-features paper-wrap","aria-label":"Product features"},fA={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},mA=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],hA={class:"paper-eyebrow"},vA={class:"paper-feature-title"},yA={class:"paper-feature-more"},gA={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},bA=["href","target"],wA={class:"paper-features-stage"},kA=["id","aria-labelledby"],_A={class:"paper-frame"},EA={class:"paper-frame-bar","aria-hidden":"true"},CA={class:"url"},NA=["src","alt"],SA={class:"paper-footer"},DA={class:"paper-footer-inner"},RA={class:"paper-footer-col"},TA={key:0,href:"/dashboard"},OA={key:1,href:"/conferences"},AA={class:"paper-footer-foot"};function cl(e,t){return l(),d("div",xO,[f(" Hero: copy on the left, the product on the right "),s("section",eA,[s("div",tA,[t[2]||(t[2]=s("div",{class:"paper-eyebrow"},"For double-blind peer review",-1)),t[3]||(t[3]=s("h1",{class:"hero-title"},[v(" Share the code,"),s("br"),s("span",{class:"accent"},"not the author.")],-1)),t[4]||(t[4]=s("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist with every trace of identity removed, so you can attach a link to your submission without breaking anonymity. ",-1)),s("div",sA,[e.user?f("v-if",!0):(l(),d("a",nA,[...t[0]||(t[0]=[s("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),v("Sign in with GitHub ",-1)])])),e.user?(l(),d("a",oA," Anonymize a repository \u2192 ")):f("v-if",!0),t[1]||(t[1]=s("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[5]||(t[5]=s("ul",{class:"paper-reassure"},[s("li",null,"Free and open source"),s("li",null,"Read-only: never writes to your repos"),s("li",null,"Expires on the date you set")],-1))]),t[6]||(t[6]=ge('
The anonymize form with a live README preview showing the redactions
',1))]),f(" Proof "),t[16]||(t[16]=ge('
Trusted by authors at
ICSEFSEOOPSLA
',1)),f(" Live stats "),s("section",rA,[t[7]||(t[7]=s("div",{class:"paper-stats-meta"},[s("div",{class:"paper-stats-meta-left"},"Live \xB7 last 60 days"),s("div",{class:"paper-stats-meta-right"},[s("span",{class:"paper-stats-dot","aria-hidden":"true"}),v(" updated daily ")])],-1)),s("div",iA,[(l(!0),d(Y,null,oe(e.cards,(o,r)=>(l(),d("div",{class:"paper-stat-card",key:o?.key},[s("div",aA,c(e.fmt?.bigNum(o?.total)),1),s("div",lA,c(o?.label),1),e.history[o?.key].bars?.length>1?(l(),d("svg",{key:0,class:"paper-stat-bars",preserveAspectRatio:"none","aria-hidden":"true",viewBox:"0 0 "+e.history[o?.key].viewW+" 36"},[(l(!0),d(Y,null,oe(e.history[o?.key].bars,(n,i)=>(l(),d("rect",{key:i,class:O({"is-latest":i===e.history[o.key].bars.length-1}),x:n?.x,y:n?.y,width:n?.w,height:n?.h},null,10,uA))),128))],8,dA)):f("v-if",!0),e.history[o?.key].bars?.length>1?(l(),d("div",cA," +"+c(e.fmt?.number(e.history[o?.key].deltaToday))+" today ",1)):f("v-if",!0)]))),128))])]),f(" Before / after "),t[17]||(t[17]=s("section",{class:"paper-section-head paper-wrap"},[s("div",null,[s("div",{class:"paper-eyebrow"},"Before \xB7 after"),s("h2",null,[v("The same repository, "),s("em",null,"minus you.")])]),s("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),t[18]||(t[18]=s("div",{class:"paper-preview paper-wrap","aria-label":"Before and after example"},[s("div",{class:"pane"},[s("div",{class:"pane-header"},[s("span",{class:"pane-label"},"Before \xB7 your repo"),s("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")]),s("div",{class:"pane-body"},[s("div",null,[s("span",{class:"tok"},"#"),v(),s("strong",null,"DeepLearnUtils")]),s("div",null,"Developed by Jane Smith at MIT CSAIL."),s("div",null,"See Smith et\xA0al., \u201CAttention That Works,\u201D 2026."),s("div",null,"Contact: jane.smith@mit.edu")])]),s("div",{class:"pane"},[s("div",{class:"pane-header"},[s("span",{class:"pane-label"},"After \xB7 anonymous mirror"),s("span",{class:"pane-url"},"anonymous.4open.science/r/paper-7f2a")]),s("div",{class:"pane-body"},[s("div",null,[s("span",{class:"tok"},"#"),v(),s("strong",null,"DeepLearnUtils")]),s("div",null,[v("Developed by "),s("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),v(" at "),s("span",{class:"redact",role:"img","aria-label":"redacted affiliation"},"XXXX-2"),v(".")]),s("div",null,[v("See "),s("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),v(" et\xA0al., \u201CAttention That Works,\u201D 2026.")]),s("div",null,[v("Contact: "),s("span",{class:"redact",role:"img","aria-label":"redacted email address"},"XXXX-3")])])])],-1)),f(" What you get: one screenshot, three tabs "),t[19]||(t[19]=s("section",{class:"paper-section-head paper-wrap",id:"about"},[s("div",null,[s("div",{class:"paper-eyebrow"},"What you get"),s("h2",null,[v("Anonymize, review, "),s("em",null,"manage.")])]),s("p",null," Every mirror is read-only and passes through the same filter, from the README to a PDF's link targets. Monitor it, update it, or remove it the day the decision is out. ")],-1)),s("section",pA,[s("div",fA,[(l(!0),d(Y,null,oe(e.features,(o,r)=>(l(),d("div",{class:O(["paper-feature",{"is-on":e.feature===o?.key}]),key:o?.key},[s("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:n=>e.selectFeature(o.key),onKeydown:n=>e.featureKeydown(n,r),id:"feature-tab-"+o?.key,"aria-controls":"feature-panel-"+o?.key,"aria-selected":e.feature===o?.key,tabindex:e.feature===o?.key?0:-1},[s("span",hA,c(o?.num)+" \xB7 "+c(o?.eyebrow),1),s("span",vA,[v(c(o?.title)+" ",1),s("em",null,c(o?.accent),1)])],40,mA),s("div",yA,[s("span",gA,[v(c(o?.title)+" ",1),s("em",null,c(o?.accent),1)]),s("p",null,c(o?.text),1),s("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(o)),target:e.featureTarget(o)},c(o?.cta)+" \u2192",9,bA)])],2))),128))]),s("div",wA,[(l(!0),d(Y,null,oe(e.features,(o,r)=>E((l(),d("div",{class:"paper-feature-panel",role:"tabpanel",key:o?.key,id:"feature-panel-"+o?.key,"aria-labelledby":"feature-tab-"+o?.key},[s("div",_A,[s("div",EA,[t[8]||(t[8]=s("span",{class:"dots"},[s("i"),s("i"),s("i")],-1)),s("span",CA,c(o?.url),1)]),s("div",{class:O("paper-crop paper-crop-"+o?.key)},[s("img",{loading:"lazy",width:"2880",height:"1800",src:e.safeUrl(o?.img),alt:o?.alt},null,8,NA)],2)])],8,kA)),[[G,e.feature===o?.key]])),128))])]),f(" FAQ teaser "),t[20]||(t[20]=ge('
Before you sign in

The questions that come up most.

Read the full FAQ \u2192
Why does GitHub ask for write access at sign-in?

GitHub's OAuth scopes have no read-only option for private repositories. Anonymous GitHub only ever reads your repositories; it never pushes, modifies, or deletes anything.

Which file formats are supported?

Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Everything passes through the same redaction filter.

What happens when an anonymized repository expires?

You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.

',1)),s("footer",SA,[s("div",DA,[t[12]||(t[12]=s("div",{class:"paper-footer-brand"},[s("div",{class:"paper-footer-mark"},[v("Anonymous "),s("em",null,"GitHub")]),s("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-blind peer review. ")],-1)),s("div",RA,[t[9]||(t[9]=s("div",{class:"paper-footer-head"},"Product",-1)),t[10]||(t[10]=s("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(l(),d("a",TA,"My work")):f("v-if",!0),e.user?(l(),d("a",OA,"Conferences")):f("v-if",!0),t[11]||(t[11]=s("a",{href:"/faq"},"FAQ",-1))]),t[13]||(t[13]=ge('',2))]),t[15]||(t[15]=s("div",{class:"paper-footer-rule"},null,-1)),s("div",AA,[s("span",null,"\xA9 "+c(e.year||2026)+" Anonymous GitHub \xB7 MIT licensed",1),t[14]||(t[14]=s("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])])}var IA={class:"paper-empty"},VA={class:"paper-empty-inner"},PA={key:0,class:"paper-eyebrow"},qA={key:1,class:"paper-eyebrow"},MA={key:2,class:"paper-empty-title"},$A=["textContent"];function pl(e,t){return l(),d("div",IA,[s("div",VA,[e.error?f("v-if",!0):(l(),d("div",PA,"Working")),e.error?(l(),d("div",qA,"Error")):f("v-if",!0),e.error?f("v-if",!0):(l(),d("h1",MA,[...t[0]||(t[0]=[v(" Loading",-1),s("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(l(),d("h1",{key:3,class:"paper-empty-title",textContent:c(e.fmt.translate(e.error))},null,8,$A)):f("v-if",!0)])])}var LA={class:"container paper-page paper-settings"},FA={class:"paper-crumbs"},UA={class:"here"},zA={class:"paper-page-title"},HA={class:"paper-settings-body"},BA={class:"paper-settings-toc"},GA={href:"#conf-billing"},jA={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},WA={id:"conf-basics",class:"paper-settings-section"},KA={class:"form-group"},YA={class:"invalid-feedback"},JA={class:"invalid-feedback"},QA={class:"form-group"},XA={class:"invalid-feedback"},ZA={class:"form-group"},xA={class:"invalid-feedback"},eI={class:"invalid-feedback"},tI={id:"conf-window",class:"paper-settings-section"},sI={class:"form-grid-2"},nI={class:"form-group"},oI={class:"invalid-feedback"},rI={class:"invalid-feedback"},iI={class:"form-group"},aI={class:"invalid-feedback"},lI={class:"invalid-feedback"},dI={id:"conf-rendering",class:"paper-settings-section"},uI={class:"form-check"},cI={class:"form-check-input",type:"checkbox",id:"link",name:"link"},pI={class:"form-check"},fI={class:"form-check-input",type:"checkbox",id:"image",name:"image"},mI={class:"form-check"},hI={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},vI={class:"form-check"},yI={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},gI={id:"conf-features",class:"paper-settings-section"},bI={class:"form-check"},wI={class:"form-check-input",type:"checkbox",id:"update",name:"update"},kI={class:"form-check"},_I={class:"form-check-input",type:"checkbox",id:"page",name:"page"},EI={id:"conf-plan",class:"paper-settings-section"},CI={class:"paper-plan-grid"},NI=["value"],SI=["textContent"],DI={class:"paper-plan-price"},RI=["innerHTML"],TI={key:0,id:"conf-billing",class:"paper-settings-section"},OI={class:"form-group"},AI={class:"form-group"},II={class:"form-group"},VI={class:"form-group"},PI={class:"form-grid-3"},qI={class:"form-group"},MI={class:"form-group"},$I={class:"form-group"},LI={class:"form-group"},FI={class:"paper-settings-footer"},UI=["textContent"],zI=["textContent"];function fl(e,t){let o=we("paper-scrollspy"),r=we("field"),n=we("form");return l(),d("div",LA,[s("div",FA,[t[1]||(t[1]=s("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=v(" \xA0/\xA0 ",-1)),t[3]||(t[3]=s("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=v(" \xA0/\xA0 ",-1)),s("span",UA,c(e.editionMode?"Edit":"New"),1)]),s("h1",zA,[v(c(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=s("em",null,"conference",-1))]),t[42]||(t[42]=s("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue, and lift author quotas during the review window. ",-1)),s("div",HA,[E((l(),d("aside",BA,[t[7]||(t[7]=s("div",{class:"paper-settings-toc-head"},"On this page",-1)),s("nav",null,[t[6]||(t[6]=ge('BasicsReview windowRendering defaultsFeaturesPlan',5)),E(s("a",GA,"Billing",512),[[G,e.plan?.pricePerRepo>0]])])])),[[o]]),E((l(),d("form",jA,[s("section",WA,[t[12]||(t[12]=s("div",{class:"paper-section-eyebrow"},"Basics",-1)),s("div",KA,[t[8]||(t[8]=s("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[r,{state:e.viewState,set:i=>{e.options.name=i},value:e.options?.name,form:"conference",options:{}}]]),E(s("div",YA," The name of the conference is invalid. ",512),[[G,e.conference?.name?.errors?.invalid]]),E(s("div",JA," The name of the conference is required. ",512),[[G,e.conference?.name?.errors?.required]])]),s("div",QA,[t[9]||(t[9]=s("label",{class:"paper-field-label",for:"url"},"Website",-1)),E(s("input",{type:"url",class:O(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[r,{state:e.viewState,set:i=>{e.options.url=i},value:e.options?.url,form:"conference",options:{}}]]),E(s("div",XA," The url of the conference is invalid. ",512),[[G,e.conference?.url?.errors?.invalid]])]),s("div",ZA,[t[10]||(t[10]=s("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[r,{state:e.viewState,set:i=>{e.options.conferenceID=i},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=s("small",{class:"form-text text-muted"},[v("3\u201310 characters, letters, numbers, "),s("code",null,"-"),v(" and "),s("code",null,"_"),v(". Authors reference this when they anonymize.")],-1)),E(s("div",{class:"invalid-feedback"}," The conference ID '"+c(e.options?.conferenceID)+"' is already used. ",513),[[G,e.conference?.conferenceID?.errors?.used]]),E(s("div",xA," The conference ID is required. ",512),[[G,e.conference?.conferenceID?.errors?.required]]),E(s("div",eI," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[G,e.conference?.conferenceID?.errors?.pattern]])])]),s("section",tI,[t[17]||(t[17]=s("div",{class:"paper-section-eyebrow"},"Review window",-1)),s("div",sI,[s("div",nI,[t[13]||(t[13]=s("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),E(s("input",{type:"date",class:O(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[r,{state:e.viewState,set:i=>{e.options.startDate=i},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=s("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),E(s("div",oI," Start date is required. ",512),[[G,e.conference?.startDate?.errors?.required]]),E(s("div",rI," Start date must be before end date. ",512),[[G,e.conference?.startDate?.errors?.invalid]])]),s("div",iI,[t[15]||(t[15]=s("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),E(s("input",{type:"date",class:O(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[r,{state:e.viewState,set:i=>{e.options.endDate=i},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=s("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),E(s("div",aI," End date is required. ",512),[[G,e.conference?.endDate?.errors?.required]]),E(s("div",lI," End date is invalid. ",512),[[G,e.conference?.endDate?.errors?.invalid]])])])]),s("section",dI,[t[25]||(t[25]=s("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),s("div",uI,[E(s("input",cI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.link=i},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=s("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=s("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),s("div",pI,[E(s("input",fI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.image=i},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=s("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=s("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),s("div",mI,[E(s("input",hI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.pdf=i},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=s("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=s("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),s("div",vI,[E(s("input",yI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.notebook=i},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=s("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))])]),s("section",gI,[t[30]||(t[30]=s("div",{class:"paper-section-eyebrow"},"Features",-1)),s("div",bI,[E(s("input",wI,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.update=i},value:e.options?.options?.update,form:"conference",options:{}}]]),t[26]||(t[26]=s("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[27]||(t[27]=s("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),s("div",kI,[E(s("input",_I,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.page=i},value:e.options?.options?.page,form:"conference",options:{}}]]),t[28]||(t[28]=s("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[29]||(t[29]=s("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),s("section",EI,[t[32]||(t[32]=s("div",{class:"paper-section-eyebrow"},"Plan",-1)),t[33]||(t[33]=s("p",{class:"paper-section-copy"},"Billed per repository per month, prorated by the day for as long as a repository stays in the conference.",-1)),s("div",CI,[(l(!0),d(Y,null,oe(e.plans,(i,a)=>(l(),d("label",{class:O(["paper-plan-card",{selected:e.options?.plan?.planID==i?.id}])},[E(s("input",{type:"radio",name:"planPicker",value:i?.id},null,8,NI),[[r,{state:e.viewState,set:u=>{e.options.plan.planID=u},value:e.options?.plan?.planID,form:"conference",options:{}}]]),s("div",{class:"paper-plan-head",textContent:c(i?.name)},null,8,SI),s("div",DI,[v(c(e.fmt?.number(i?.pricePerRepo))+"\u20AC ",1),t[31]||(t[31]=s("span",{class:"paper-plan-per"},"/ repo / month",-1))]),s("div",{class:"paper-plan-desc",innerHTML:e.sanitize(i?.description)},null,8,RI)],2))),256))])]),e.plan?.pricePerRepo>0?(l(),d("section",TI,[t[41]||(t[41]=s("div",{class:"paper-section-eyebrow"},"Billing",-1)),s("div",OI,[t[34]||(t[34]=s("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.name=i},value:e.options?.billing?.name,form:"conference",options:{}}]])]),s("div",AI,[t[35]||(t[35]=s("label",{class:"paper-field-label",for:"email"},"Email",-1)),E(s("input",{type:"email",class:O(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.email=i},value:e.options?.billing?.email,form:"conference",options:{}}]])]),s("div",II,[t[36]||(t[36]=s("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.address=i},value:e.options?.billing?.address,form:"conference",options:{}}]])]),s("div",VI,[E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.address2=i},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),s("div",PI,[s("div",qI,[t[37]||(t[37]=s("label",{class:"paper-field-label",for:"city"},"City",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.city=i},value:e.options?.billing?.city,form:"conference",options:{}}]])]),s("div",MI,[t[38]||(t[38]=s("label",{class:"paper-field-label",for:"country"},"Country",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.country=i},value:e.options?.billing?.country,form:"conference",options:{}}]])]),s("div",$I,[t[39]||(t[39]=s("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.zip=i},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),s("div",LI,[t[40]||(t[40]=s("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),E(s("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.vat=i},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):f("v-if",!0),s("div",FI,[e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,UI)):f("v-if",!0),e.message?(l(),d("div",{key:1,class:"alert alert-success",role:"alert",textContent:c(e.message)},null,8,zI)):f("v-if",!0),s("button",{id:"send",type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=ke(i=>e.submitForm(i,()=>{e.submit(i)}),["prevent"]))},c(e.editionMode?"Update":"Create")+" conference ",1)])])),[[n,e.viewState]])])])}var HI={key:0},BI=["innerHTML"],GI={key:3},jI=["src"],WI=["src"],KI={key:7},YI={controls:"controls"},JI=["src"],QI={key:8},XI={key:9,class:"file-error container d-flex h-100"},ZI={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},xI={class:"paper-error-msg"},eV={key:10,class:"file-error container d-flex h-100"},tV=["textContent"],sV={key:11,class:"file-error container d-flex h-100"},nV={key:12,class:"file-error container d-flex h-100"},oV={key:13,class:"file-error container d-flex h-100"},rV={key:14,class:"file-error container d-flex h-100"},iV={class:"paper-empty-title m-auto"},aV=["href"];function ml(e,t){let o=et("html-doc"),r=et("pdfviewer"),n=et("notebook"),i=we("code-editor");return l(),d(Y,null,[e.type=="text"?E((l(),d("div",HI,null,512)),[[i,{content:e.content,options:e.aceOption}]]):f("v-if",!0),e.type=="html"?(l(),d("div",{key:1,class:"file-content markdown-body",innerHTML:e.sanitize(e.content)},null,8,BI)):f("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(l(),ks(o,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):f("v-if",!0),(e.type=="code"||e.type=="html-doc"&&e.showSource)&&e.content!=null?E((l(),d("div",GI,null,512)),[[i,{content:e.content,options:e.aceOption}]]):f("v-if",!0),e.type=="image"?(l(),d("img",{key:4,class:"image-content",src:e.safeUrl(e.url)},null,8,jI)):f("v-if",!0),e.type=="media"?(l(),d("iframe",{key:5,class:"h-100 overflow-auto w-100 b-0",src:e.safeUrl(e.url)},null,8,WI)):f("v-if",!0),e.type=="pdf"?(l(),ks(r,{key:6,src:e.safeUrl(e.url)},null,8,["src"])):f("v-if",!0),e.type=="audio"?(l(),d("div",KI,[s("audio",YI,[s("source",{src:e.safeUrl(e.url)},null,8,JI)])])):f("v-if",!0),e.type=="IPython"?(l(),d("div",QI,[De(n,{file:e.url,content:e.content},null,8,["file","content"])])):f("v-if",!0),e.type=="rate_limited"?(l(),d("div",XI,[s("div",ZI,[t[2]||(t[2]=s("div",{class:"paper-ratelimit-head"},[s("i",{class:"fas fa-hourglass-half"}),s("div",null,[s("div",{class:"paper-error-eyebrow"},"Temporarily paused"),s("div",{class:"paper-error-title"},"GitHub API rate limit reached")])],-1)),s("p",xI,[t[0]||(t[0]=v("This repository will be available in ",-1)),s("strong",null,c(e.rateLimitCountdown),1),t[1]||(t[1]=v(". The page will reload automatically.",-1))])])])):f("v-if",!0),e.type=="error"?(l(),d("div",eV,[s("h1",{class:"paper-empty-title m-auto",textContent:c(e.fmt.translate("ERRORS."+e.content))},null,8,tV)])):f("v-if",!0),e.type=="loading"&&!e.error?(l(),d("div",sV,[...t[3]||(t[3]=[s("h1",{class:"paper-empty-title m-auto"},"Loading\u2026",-1)])])):f("v-if",!0),e.type=="empty"?(l(),d("div",nV,[...t[4]||(t[4]=[s("h1",{class:"paper-empty-title m-auto"},[v("Empty "),s("em",null,"repository"),v(".")],-1)])])):f("v-if",!0),e.content==null&&e.type!="empty"?(l(),d("div",oV,[...t[5]||(t[5]=[s("h1",{class:"paper-empty-title m-auto"},[v("Empty "),s("em",null,"file"),v(".")],-1)])])):f("v-if",!0),e.type=="binary"?(l(),d("div",rV,[s("h1",iV,[t[6]||(t[6]=v("Unsupported ",-1)),t[7]||(t[7]=s("em",null,"binary file",-1)),t[8]||(t[8]=v(". You can ",-1)),s("a",{target:"_blank",href:e.safeUrl(e.url+"&download=true")},"download it",8,aV),t[9]||(t[9]=v(".",-1))])])):f("v-if",!0)],64)}var lV={class:"container page dashboard-page paper-page"},dV={class:"row"},uV={class:"w-100"},cV={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},pV={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},fV={class:"flex-grow-1"},mV={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},hV={class:"d-flex flex-wrap",style:{gap:"6px"}},vV={class:"dropdown"},yV={class:"dropdown-menu","aria-labelledby":"dropdownSort"},gV={class:"form-check dropdown-item"},bV={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},wV={class:"form-check dropdown-item"},kV={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},_V={class:"form-check dropdown-item"},EV={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},CV={class:"form-check dropdown-item"},NV={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},SV={class:"form-check dropdown-item"},DV={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},RV={class:"dropdown"},TV={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},OV={class:"form-check dropdown-item"},AV={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},IV={class:"form-check dropdown-item"},VV={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},PV={class:"form-check dropdown-item"},qV={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},MV={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},$V={class:"filter-chip"},LV=["onClick"],FV={class:"repo-list w-100"},UV={class:"repo-list-item-content"},zV={class:"repo-list-item-main"},HV={class:"repo-list-item-header"},BV=["textContent","href"],GV=["textContent"],jV=["textContent"],WV={class:"repo-source"},KV=["href"],YV={class:"repo-date"},JV={class:"repo-meta"},QV={key:0,title:"Conference"},XV=["title"],ZV=["title"],xV=["title"],eP={key:1},tP={class:"repo-list-item-actions"},sP={class:"dropdown"},nP={class:"dropdown-menu dropdown-menu-right"},oP=["href"],rP=["onClick"],iP=["onClick"],aP=["onClick"],lP=["href"],dP={key:0,class:"repo-list-empty"};function hl(e,t){let o=we("field"),r=we("form");return l(),d("div",lV,[s("div",dV,[s("div",uV,[t[12]||(t[12]=ge('
My work \xA0/\xA0 Pull requests

Anonymized pull requests

Track PR mirrors you\u2019ve created and their reviewer traffic.

',2)),f(" Search + filters row "),E((l(),d("form",cV,[s("div",pV,[s("div",fV,[E(s("input",mV,null,512),[[o,{state:e.viewState,set:n=>{e.search=n},value:e.search,form:null,options:{}}]])]),s("div",hV,[s("div",vV,[t[6]||(t[6]=s("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),s("div",yV,[t[5]||(t[5]=s("h6",{class:"dropdown-header"},"Select order",-1)),s("div",gV,[E(s("input",bV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=s("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),s("div",wV,[E(s("input",kV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=s("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),s("div",_V,[E(s("input",EV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=s("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),s("div",CV,[E(s("input",NV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=s("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),s("div",SV,[E(s("input",DV,null,512),[[o,{state:e.viewState,set:n=>{e.orderBy=n},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=s("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),s("div",RV,[t[11]||(t[11]=s("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),s("div",TV,[t[10]||(t[10]=s("h6",{class:"dropdown-header"},"Select status",-1)),s("div",OV,[E(s("input",AV,null,512),[[o,{state:e.viewState,set:n=>{e.filters.status.ready=n},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=s("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),s("div",IV,[E(s("input",VV,null,512),[[o,{state:e.viewState,set:n=>{e.filters.status.expired=n},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=s("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),s("div",PV,[E(s("input",qV,null,512),[[o,{state:e.viewState,set:n=>{e.filters.status.removed=n},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=s("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[r,e.viewState]]),f(" Active filter chips "),E(s("div",MV,[(l(!0),d(Y,null,oe(e.filters?.status,(n,i,a)=>E((l(),d("span",$V,[v(c(e.fmt?.title(i))+" ",1),s("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:u=>{e.filters.status[i]=!0}}," \xD7 ",8,LV)],512)),[[G,!n]])),256))],512),[[G,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),f(" Pull request list "),s("ul",FV,[(l(!0),d(Y,null,oe(e.filteredPullRequests,(n,i)=>(l(),d("li",{class:O(["repo-list-item",{"repo-inactive":n?.status=="expired"||n?.status=="removed"||n?.status=="error"}])},[s("div",UV,[s("div",zV,[s("div",HV,[s("a",{class:"repo-name",textContent:c(n?.pullRequestId),href:e.safeUrl("/pr/"+n?.pullRequestId)},null,8,BV),s("span",{class:O(["status-badge",{"status-removed":n?.status=="removed"||n?.status=="expired"||n?.status=="removing"||n?.status=="expiring","status-preparing":n?.status=="preparing"||n?.status=="download","status-ready":n?.status=="ready","status-error":n?.status=="error"}])},[s("span",{textContent:c(e.fmt?.title(n?.status))},null,8,GV),n?.status=="error"?(l(),d("span",{key:0,textContent:c(": "+n?.statusMessage)},null,8,jV)):f("v-if",!0)],2)]),s("div",WV,[s("span",null,[t[13]||(t[13]=s("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),s("a",{href:e.safeUrl("https://github.com/"+n?.source?.repositoryFullName+"/pull/"+n?.source?.pullRequestId)},c(n?.source?.repositoryFullName)+"#"+c(n?.source?.pullRequestId),9,KV)]),s("span",{class:O(["status-badge",{"status-ready":n?.merged,"status-removed":n?.state=="open","status-error":n?.state=="closed"&&!n?.merged}]),style:{"font-size":"10px"}},c(e.fmt?.title(n?.merged?"merged":n?.state)),3),s("span",YV,"anonymized "+c(e.fmt?.humanTime(n?.anonymizeDate)),1)])]),s("div",JV,[n?.conference?(l(),d("span",QV,[t[14]||(t[14]=s("i",{class:"fas fa-chalkboard-teacher"},null,-1)),v(" "+c(n?.conference),1)])):f("v-if",!0),s("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+n?.options?.terms?.join(", ")},[t[15]||(t[15]=s("i",{class:"fas fa-shield-alt"},null,-1)),v(" "+c(e.fmt?.number(n?.options?.terms?.length)),1)],8,XV),s("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(n?.pageView)},[t[16]||(t[16]=s("i",{class:"far fa-eye"},null,-1)),v(" "+c(e.fmt?.number(n?.pageView)),1)],8,ZV),s("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(n?.lastView)},[t[17]||(t[17]=s("i",{class:"far fa-calendar-alt"},null,-1)),v(" "+c(e.fmt?.humanTime(n?.lastView)),1)],8,xV),n?.options?.expirationMode!="never"&&n?.status=="ready"?(l(),d("span",eP,[t[18]||(t[18]=s("i",{class:"far fa-clock"},null,-1)),v(" Expire: "+c(e.fmt?.humanTime(n?.options?.expirationDate)),1)])):f("v-if",!0)])]),s("div",tP,[s("div",sP,[t[24]||(t[24]=s("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),s("div",nP,[s("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+n?.pullRequestId)},[...t[19]||(t[19]=[s("i",{class:"far fa-edit","aria-hidden":"true"},null,-1),v(" Edit ",-1)])],8,oP),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updatePullRequest(n),["prevent"])},[...t[20]||(t[20]=[s("i",{class:"fas fa-sync"},null,-1),v(" Force update ",-1)])],8,rP),[[G,n?.status=="ready"||n?.status=="error"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.updatePullRequest(n),["prevent"])},[...t[21]||(t[21]=[s("i",{class:"fas fa-check-circle"},null,-1),v(" Enable ",-1)])],8,iP),[[G,n?.status=="removed"]]),E(s("a",{class:"dropdown-item",href:"#",onClick:ke(a=>e.removePullRequest(n),["prevent"])},[...t[22]||(t[22]=[s("i",{class:"fas fa-trash-alt"},null,-1),v(" Remove ",-1)])],8,aP),[[G,n?.status=="ready"]]),s("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+n?.pullRequestId+"/")},[...t[23]||(t[23]=[s("i",{class:"fa fa-eye","aria-hidden":"true"},null,-1),v(" View PR ",-1)])],8,lP)])])])],2))),256)),e.filteredPullRequests?.length==0?(l(),d("li",dP,[...t[25]||(t[25]=[s("i",{class:"fas fa-inbox"},null,-1),s("span",null,"No pull requests to display.",-1)])])):f("v-if",!0)])])])}var uP={class:"container paper-page paper-settings"},cP={class:"paper-settings-body"},pP={class:"paper-settings-toc"},fP={class:"paper-settings-main"},mP={id:"settings-quota",class:"paper-settings-section"},hP={key:0,class:"quota-row"},vP={class:"quota-item"},yP={class:"quota-header"},gP={class:"quota-label"},bP={key:0,class:"quota-value"},wP={key:0},kP={key:1,class:"quota-unlimited-tag"},_P={key:1,class:"quota-value"},EP={key:0},CP={key:1,class:"quota-unlimited-tag"},NP=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],SP={key:1,class:"quota-row","aria-hidden":"true"},DP={class:"quota-item"},RP={id:"settings-terms",class:"paper-settings-section"},TP={class:"form-group"},OP={class:"form-control",id:"terms",name:"terms",rows:"4",placeholder:`Jane Smith MIT CSAIL -jane.smith@example.org`},gP={id:"termsHelp",class:"form-text text-muted"},bP={class:"invalid-feedback"},wP={id:"settings-display",class:"paper-settings-section"},kP={class:"form-group paper-check-list"},_P={class:"form-check"},EP={class:"form-check-input",type:"checkbox",id:"link",name:"link"},CP={class:"form-check"},NP={class:"form-check-input",type:"checkbox",id:"image",name:"image"},SP={class:"form-check"},DP={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},RP={class:"form-check"},TP={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},OP={id:"settings-features",class:"paper-settings-section"},AP={class:"form-group paper-check-list"},IP={class:"form-check"},VP={class:"form-check-input",type:"checkbox",id:"page",name:"page"},PP={class:"form-check"},qP={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},MP={class:"form-check"},$P={class:"form-check-input",type:"checkbox",id:"update",name:"update"},LP={class:"form-group"},FP={class:"form-control",id:"mode",name:"mode"},UP={class:"form-text text-muted"},zP={id:"settings-expiration",class:"paper-settings-section"},HP={class:"form-group"},BP={class:"form-control",id:"expiration",name:"expiration"},GP={class:"paper-settings-footer"},jP={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},WP=["textContent"],KP={class:"paper-settings-actions"},YP=["disabled"],JP={key:0,class:"fas fa-check mr-1","aria-hidden":"true"},QP={id:"settings-account",class:"paper-settings-section"},XP={class:"paper-account-card"},xP=["src"],ZP={class:"paper-account-identity"},e3={class:"paper-account-name"},t3={class:"paper-danger-zone"},s3={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},n3=["textContent"],o3=["disabled"];function vl(e,t){let o=we("paper-scrollspy"),r=we("field"),n=we("form");return l(),d("div",XV,[t[48]||(t[48]=ge('
My work \xA0/\xA0 Settings

Your settings

Defaults applied to every new anonymization, your quotas, and your account.

',3)),s("div",xV,[E((l(),d("aside",ZV,[...t[2]||(t[2]=[ge('
On this page
',2)])])),[[o]]),s("div",eP,[m(" Quota: same markup as the dashboard, driven by quotaService "),s("section",tP,[t[4]||(t[4]=s("div",{class:"paper-section-eyebrow"},"Quota",-1)),t[5]||(t[5]=s("p",{class:"paper-section-copy"},"What you are using across all your anonymizations. Conferences can lift these limits during a review window.",-1)),e.quota?(l(),d("div",sP,[(l(),d(Y,null,oe([{key:"repository",label:"Repositories",kind:"count"},{key:"storage",label:"Storage",kind:"bytes"},{key:"file",label:"Files",kind:"count"}],(i,a)=>s("div",nP,[s("div",oP,[s("span",rP,c(i?.label),1),i?.kind==="count"?(l(),d("span",iP,[y(c(e.fmt?.number(e.quota[i?.key].used)),1),e.quota[i?.key].unlimited?m("v-if",!0):(l(),d("span",aP," / "+c(e.fmt?.number(e.quota[i?.key].total)),1)),e.quota[i?.key].unlimited?(l(),d("span",lP,"Unlimited")):m("v-if",!0)])):m("v-if",!0),i?.kind==="bytes"?(l(),d("span",dP,[y(c(e.fmt?.humanFileSize(e.quota[i?.key].used)),1),e.quota[i?.key].unlimited?m("v-if",!0):(l(),d("span",uP," / "+c(e.fmt?.humanFileSize(e.quota[i?.key].total)),1)),e.quota[i?.key].unlimited?(l(),d("span",cP,"Unlimited")):m("v-if",!0)])):m("v-if",!0)]),s("div",{class:O(["quota-track","quota-"+e.quota[i?.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":i?.label+" quota","aria-valuenow":e.quota[i?.key].used,"aria-valuemax":e.quota[i?.key].unlimited?e.quota[i?.key].used:e.quota[i?.key].total,"aria-valuetext":e.quota[i?.key].unlimited?"unlimited":e.fmt.number(e.quota[i?.key].percent,0)+"% used"},[e.quota[i?.key].unlimited?m("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:Ve({width:e.quota[i?.key].percent+"%"})},null,4))],10,pP)])),64))])):m("v-if",!0),e.quota?m("v-if",!0):(l(),d("div",fP,[(l(),d(Y,null,oe([1,2,3],(i,a)=>s("div",mP,[...t[3]||(t[3]=[s("div",{class:"quota-header"},[s("span",{class:"skeleton skeleton-line",style:{width:"40%"}}),s("span",{class:"skeleton skeleton-line",style:{width:"25%"}})],-1),s("div",{class:"quota-track"},null,-1)])])),64))]))]),E((l(),d("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onSubmit:t[0]||(t[0]=ke(i=>e.submitForm(i,()=>{e.saveDefault(i)}),["prevent"]))},[s("section",hP,[t[11]||(t[11]=s("div",{class:"paper-section-eyebrow"},"Terms to redact",-1)),t[12]||(t[12]=s("p",{class:"paper-section-copy"},"Pre-filled in every new anonymization. You can still edit the list per anonymization.",-1)),s("div",vP,[t[10]||(t[10]=s("label",{class:"paper-field-label",for:"terms"},"Default terms",-1)),E(s("textarea",yP,null,512),[[r,{state:e.viewState,set:i=>{e.terms=i},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),s("small",gP,[t[6]||(t[6]=y(" One term per line (regex allowed). Each match is replaced by ",-1)),s("code",null,c(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[7]||(t[7]=y(", or use ",-1)),t[8]||(t[8]=s("code",null,"term=>replacement",-1)),t[9]||(t[9]=y(" to pick your own. ",-1))]),E(s("div",bP," Terms are in an invalid format ",512),[[G,e.defaultsForm?.terms?.errors?.format]])])]),s("section",wP,[t[21]||(t[21]=s("div",{class:"paper-section-eyebrow"},"Display",-1)),t[22]||(t[22]=s("p",{class:"paper-section-copy"},"What reviewers can see inside an anonymized repository.",-1)),s("div",kP,[s("div",_P,[E(s("input",EP,null,512),[[r,{state:e.viewState,set:i=>{e.options.link=i},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[13]||(t[13]=s("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=s("small",{class:"form-text text-muted"},"Unchecked, every link in text files is removed.",-1))]),s("div",CP,[E(s("input",NP,null,512),[[r,{state:e.viewState,set:i=>{e.options.image=i},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[15]||(t[15]=s("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=s("small",{class:"form-text text-muted"},"Images are shown as is. They are not anonymized.",-1))]),s("div",SP,[E(s("input",DP,null,512),[[r,{state:e.viewState,set:i=>{e.options.pdf=i},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[17]||(t[17]=s("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[18]||(t[18]=s("small",{class:"form-text text-muted"},"PDFs are shown as is. They are not anonymized.",-1))]),s("div",RP,[E(s("input",TP,null,512),[[r,{state:e.viewState,set:i=>{e.options.notebook=i},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[19]||(t[19]=s("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[20]||(t[20]=s("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])])]),s("section",OP,[t[31]||(t[31]=s("div",{class:"paper-section-eyebrow"},"Features",-1)),s("div",AP,[s("div",IP,[E(s("input",VP,null,512),[[r,{state:e.viewState,set:i=>{e.options.page=i},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[23]||(t[23]=s("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[24]||(t[24]=s("small",{class:"form-text text-muted"},"Serve an anonymized copy of the repository's GitHub Pages site. Only pages built from the anonymized branch are supported.",-1))]),s("div",PP,[E(s("input",qP,null,512),[[r,{state:e.viewState,set:i=>{e.options.loc=i},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[25]||(t[25]=s("label",{class:"form-check-label",for:"loc"},"Lines of code",-1)),t[26]||(t[26]=s("small",{class:"form-text text-muted"},"Show the line count of the repository in the explorer.",-1))]),s("div",MP,[E(s("input",$P,null,512),[[r,{state:e.viewState,set:i=>{e.options.update=i},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[27]||(t[27]=s("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=s("small",{class:"form-text text-muted"},"Follow the branch and pull the latest commit automatically, at most once an hour.",-1))])]),s("div",LP,[t[30]||(t[30]=s("label",{class:"paper-field-label",for:"mode"},"Fetch mode",-1)),E((l(),d("select",FP,[...t[29]||(t[29]=[s("option",{value:"GitHubStream",selected:""},"Stream from GitHub on demand",-1),s("option",{value:"GitHubDownload"},"Download to Anonymous GitHub",-1)])])),[[r,{state:e.viewState,set:i=>{e.options.mode=i},value:e.options?.mode,form:"defaultsForm",options:{}}]]),s("small",UP," Download is faster for reviewers and enables every feature. Streaming is the only option above "+c(e.fmt?.humanFileSize(e.site_options?.MAX_REPO_SIZE*1024))+". ",1)])]),s("section",zP,[t[35]||(t[35]=s("div",{class:"paper-section-eyebrow"},"Expiration",-1)),s("div",HP,[t[33]||(t[33]=s("label",{class:"paper-field-label",for:"expiration"},"When an anonymization expires",-1)),E((l(),d("select",BP,[...t[32]||(t[32]=[s("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),s("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[r,{state:e.viewState,set:i=>{e.options.expirationMode=i},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),t[34]||(t[34]=s("small",{class:"form-text text-muted"}," The expiration date itself is chosen per anonymization. Redirecting reveals the source repository, so pick it only once the review is over. ",-1))])]),s("div",GP,[e.error?(l(),d("div",jP,[t[36]||(t[36]=s("i",{class:"fas fa-exclamation-circle","aria-hidden":"true"},null,-1)),t[37]||(t[37]=y()),s("span",{textContent:c(e.error)},null,8,WP)])):m("v-if",!0),s("div",KP,[s("button",{id:"save",type:"submit",class:"btn btn-ink",disabled:e.saving},[e.message?(l(),d("i",JP)):m("v-if",!0),y(c(e.saving?"Saving\u2026":e.message?"Saved":"Save defaults"),1)],8,YP),t[38]||(t[38]=s("span",{class:"paper-settings-hint"},"Applies to new anonymizations only. Existing ones keep their settings.",-1))])])],32)),[[n,e.viewState]]),s("section",QP,[t[46]||(t[46]=s("div",{class:"paper-section-eyebrow"},"Account",-1)),s("div",XP,[e.user?.photo?(l(),d("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,xP)):m("v-if",!0),s("div",ZP,[s("div",e3,"@"+c(e.user?.username),1),t[39]||(t[39]=s("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[40]||(t[40]=s("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),t[47]||(t[47]=s("a",{class:"paper-settings-connection-link",href:"/connections"},[s("i",{class:"fab fa-github","aria-hidden":"true"}),s("span",null,[y("GitHub connections"),s("small",null,"Manage repository access and legacy OAuth.")]),s("span",{"aria-hidden":"true"},"\u2192")],-1)),s("div",t3,[t[44]||(t[44]=s("div",{class:"paper-danger-head"},"Delete account",-1)),t[45]||(t[45]=s("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(l(),d("div",s3,[t[41]||(t[41]=s("i",{class:"fas fa-exclamation-circle","aria-hidden":"true"},null,-1)),t[42]||(t[42]=y()),s("span",{textContent:c(e.deleteError)},null,8,n3)])):m("v-if",!0),s("button",{type:"button",class:"btn btn-outline-danger",onClick:t[1]||(t[1]=i=>e.deleteAccount()),disabled:e.deletingAccount},[t[43]||(t[43]=s("i",{class:"fas fa-trash-alt mr-1","aria-hidden":"true"},null,-1)),y(c(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,o3)])])])])])}var r3={class:"pr-page"},i3={class:"container paper-page pr-page-inner"},a3={class:"pr-header"},l3={class:"paper-page-title pr-title"},d3=["textContent"],u3={key:1,class:"text-muted"},c3=["href"],p3={class:"pr-header-meta"},f3={key:0,class:"pr-meta-item"},m3=["textContent"],h3={key:1,class:"pr-meta-item"},v3=["textContent"],y3={key:2,class:"pr-meta-item"},g3=["textContent"],b3={key:0,class:"pr-body-card"},w3={key:1,class:"paper-tabs",role:"tablist"},k3=["textContent"],_3={class:"paper-tab-content"},E3={key:0},C3=["innerHTML"],N3={key:1},S3={class:"pr-comments"},D3={class:"pr-comment"},R3={class:"pr-comment-head"},T3={key:0,class:"pr-comment-author"},O3=["textContent"],A3=["textContent"],I3={key:0,class:"pr-comment-body"},V3={key:0,class:"paper-table-empty"};function yl(e,t){let o=et("markdown");return l(),d("div",r3,[s("div",i3,[t[15]||(t[15]=s("div",{class:"paper-crumbs"},[s("a",{href:"/dashboard"},"Reviewer"),y(" \xA0/\xA0 "),s("span",{class:"here"},"Pull request")],-1)),s("header",a3,[s("h1",l3,[e.details?.title?(l(),d("span",{key:0,textContent:c(e.details?.title)},null,8,d3)):m("v-if",!0),e.details?.title?m("v-if",!0):(l(),d("span",u3,"Untitled pull request")),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:2,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[2]||(t[2]=[s("i",{class:"far fa-edit"},null,-1),s("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,c3)):m("v-if",!0)]),s("div",p3,[s("span",{class:O(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[s("span",{class:O(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),y(" "+c(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(l(),d("span",f3,[t[3]||(t[3]=s("i",{class:"fab fa-github"},null,-1)),t[4]||(t[4]=y()),s("span",{textContent:c(e.details?.baseRepositoryFullName)},null,8,m3)])):m("v-if",!0),e.details?.updatedDate?(l(),d("span",h3,[t[5]||(t[5]=s("i",{class:"far fa-clock"},null,-1)),t[6]||(t[6]=y()),s("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,v3)])):m("v-if",!0),e.details?.anonymizeDate?(l(),d("span",y3,[t[7]||(t[7]=s("i",{class:"fas fa-user-secret"},null,-1)),t[8]||(t[8]=y(" Anonymized ",-1)),s("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,g3)])):m("v-if",!0)])]),e.details?.body?(l(),d("section",b3,[t[9]||(t[9]=s("div",{class:"paper-section-eyebrow"},"Description",-1)),De(o,{content:e.details?.body},null,8,["content"])])):m("v-if",!0),e.details?.diff||e.details?.comments?(l(),d("nav",w3,[e.details?.diff?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",onClick:t[0]||(t[0]=r=>e.tabState.active="diff")},[...t[10]||(t[10]=[s("i",{class:"fas fa-code"},null,-1),y(" Diff ",-1)])],2)):m("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",onClick:t[1]||(t[1]=r=>e.tabState.active="comments")},[t[11]||(t[11]=s("i",{class:"far fa-comment-dots"},null,-1)),s("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,k3)],2)):m("v-if",!0)])):m("v-if",!0),s("div",_3,[e.details?.diff&&e.tabState?.active=="diff"?(l(),d("div",E3,[s("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,C3)])):m("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",N3,[s("ul",S3,[(l(!0),d(Y,null,oe(e.details?.comments,(r,n)=>(l(),d("li",D3,[s("div",R3,[r?.author?(l(),d("span",T3,[t[12]||(t[12]=s("i",{class:"far fa-user"},null,-1)),t[13]||(t[13]=y(" @",-1)),s("span",{textContent:c(r?.author)},null,8,O3)])):m("v-if",!0),r?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(r?.updatedDate))},null,8,A3)):m("v-if",!0)]),r?.body?(l(),d("div",I3,[De(o,{content:r?.body},null,8,["content"])])):m("v-if",!0)]))),256)),e.details?.comments?.length?m("v-if",!0):(l(),d("li",V3,[...t[14]||(t[14]=[s("i",{class:"far fa-comment-dots"},null,-1),s("span",null,"No comments on this pull request.",-1)])]))])])):m("v-if",!0)])])])}var P3={class:"container paper-page"},q3={class:"d-flex align-items-end justify-content-between flex-wrap",style:{gap:"12px"}},M3={class:"paper-page-title"},$3=["textContent"],L3={key:1},F3={class:"paper-settings-section"},U3={key:0,class:"paper-ratelimit-card",role:"status"},z3={class:"paper-error-msg"},H3=["aria-valuenow"],B3={class:"paper-progress-label"},G3=["textContent"],j3={key:0},W3=["textContent"],K3={class:"paper-progress-pct"},Y3={key:2,class:"paper-error-card",role:"alert"},J3={key:0,class:"paper-error-msg"},Q3={key:1,class:"paper-error-msg"},X3={class:"paper-error-actions"},x3=["href"],Z3={class:"paper-detail-grid"},eq={class:"detail-value"},tq=["href"],sq={key:0,class:"detail-label"},nq={key:1,class:"detail-value"},oq=["href"],rq={key:3,class:"anonymize-submit-bar"},iq=["href"],aq=["href"];function gl(e,t){return l(),d("div",P3,[t[16]||(t[16]=s("div",{class:"paper-crumbs"},[y("Anonymization \xA0/\xA0 "),s("span",{class:"here"},"Status")],-1)),s("div",q3,[s("div",null,[s("h1",M3,[t[0]||(t[0]=y("Status of ",-1)),s("em",null,c(e.repoId),1)]),t[1]||(t[1]=s("p",{class:"paper-page-lede"},"Track progress as your anonymization is prepared.",-1))]),s("span",{class:O(["status-pill",{"status-pill-ready":e.repo?.status=="ready","status-pill-error":e.repo?.status=="error","status-pill-removed":e.repo?.status=="removed"||e.repo?.status=="expired","status-pill-ratelimit":e.rateLimitResetAt}])},[s("span",{class:O(["status-dot",{"status-ready":e.repo?.status=="ready","status-error":e.repo?.status=="error","status-removed":e.repo?.status=="removed"||e.repo?.status=="expired","status-ratelimit":e.rateLimitResetAt}])},null,2),e.rateLimitResetAt?m("v-if",!0):(l(),d("span",{key:0,textContent:c(e.fmt?.title(e.repo?.status))},null,8,$3)),e.rateLimitResetAt?(l(),d("span",L3,"Rate limited")):m("v-if",!0)],2)]),s("section",F3,[t[14]||(t[14]=s("div",{class:"paper-section-eyebrow"},"Progress",-1)),t[15]||(t[15]=s("p",{class:"paper-section-copy"},[y(" The repository will take a few minutes to get ready, depending on its size. Visit the "),s("a",{href:"/faq"},"FAQ"),y(" for more information. ")],-1)),e.rateLimitResetAt?(l(),d("div",U3,[t[4]||(t[4]=s("div",{class:"paper-ratelimit-head"},[s("i",{class:"fas fa-hourglass-half"}),s("div",null,[s("div",{class:"paper-error-eyebrow"},"Temporarily paused"),s("div",{class:"paper-error-title"},"GitHub API rate limit reached")])],-1)),s("p",z3,[t[2]||(t[2]=y("Anonymization will resume automatically in ",-1)),s("strong",null,c(e.rateLimitCountdown),1),t[3]||(t[3]=y(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):m("v-if",!0),e.repo?.status!="error"&&!e.rateLimitResetAt?(l(),d("div",{key:1,class:O(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[s("div",{class:"paper-progress-bar",style:Ve("width: "+e.progress+"%;")},null,4),s("div",B3,[s("span",{textContent:c(e.fmt?.title(e.repo?.status))},null,8,G3),e.repo?.statusMessage?(l(),d("span",j3,[t[5]||(t[5]=y("\xA0\xB7\xA0",-1)),s("span",{textContent:c(e.repo?.statusMessage)},null,8,W3)])):m("v-if",!0),s("span",K3,c(e.progress||0)+"%",1)])],10,H3)):m("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(l(),d("div",Y3,[t[9]||(t[9]=s("div",{class:"paper-error-head"},[s("i",{class:"fas fa-exclamation-triangle"}),s("div",null,[s("div",{class:"paper-error-eyebrow"},"Anonymization failed"),s("div",{class:"paper-error-title"},"Something went wrong while preparing this repository.")])],-1)),e.repo?.statusMessage?(l(),d("p",J3,c(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):m("v-if",!0),e.repo?.statusMessage?m("v-if",!0):(l(),d("p",Q3,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),t[10]||(t[10]=s("ul",{class:"paper-error-hints"},[s("li",null,"Make sure the source URL points to a repository or pull request you can access."),s("li",null,"Check that the chosen branch and commit still exist on GitHub."),s("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),s("div",X3,[s("a",{class:"btn btn-ink",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[6]||(t[6]=[s("i",{class:"far fa-edit mr-1"},null,-1),y(" Edit anonymization",-1)])],8,x3),t[7]||(t[7]=s("a",{class:"btn",href:"/faq"},[s("i",{class:"far fa-question-circle mr-1"}),y(" Read the FAQ")],-1)),t[8]||(t[8]=s("a",{class:"btn",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[s("i",{class:"fas fa-bug mr-1","aria-hidden":"true"}),y(" Report a bug in Anonymous GitHub")],-1))])])):m("v-if",!0),s("div",Z3,[t[11]||(t[11]=s("div",{class:"detail-label"},"Repository",-1)),s("div",eq,[s("a",{target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},"/r/"+c(e.repoId)+"/",9,tq)]),e.repo?.options?.page?(l(),d("div",sq,"GitHub Page")):m("v-if",!0),e.repo?.options?.page?(l(),d("div",nq,[s("a",{target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},"/w/"+c(e.repoId)+"/",9,oq)])):m("v-if",!0)]),e.repo?.status=="ready"?(l(),d("div",rq,[s("a",{class:"btn btn-ink",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[12]||(t[12]=[s("i",{class:"far fa-eye mr-1"},null,-1),y(" Go to anonymized repository ",-1)])],8,iq),e.repo?.options?.page?(l(),d("a",{key:0,class:"btn",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[13]||(t[13]=[s("i",{class:"fas fa-globe mr-1"},null,-1),y(" Go to anonymized GitHub page ",-1)])],8,aq)):m("v-if",!0)])):m("v-if",!0)]),t[17]||(t[17]=ge('
Support Anonymous GitHub

A small team keeps this running. If it helps you, please consider contributing back \u2014 in code, ideas, or coffee.

',1))])}var Jn={"partials/connections.htm":ja,"partials/signin.htm":Wa,"partials/404.htm":Ka,"partials/admin/conferences.htm":Ya,"partials/admin/errors.htm":Ja,"partials/admin/overview.htm":Qa,"partials/admin/queues.htm":Xa,"partials/admin/repositories.htm":xa,"partials/admin/user.htm":Za,"partials/admin/users.htm":el,"partials/anonymize.htm":tl,"partials/anonymizePullRequest.htm":sl,"partials/claim.htm":nl,"partials/conference.htm":ol,"partials/conferences.htm":rl,"partials/dashboard.htm":il,"partials/explorer.htm":al,"partials/faq.htm":ll,"partials/gist.htm":dl,"partials/header.htm":ul,"partials/home.htm":cl,"partials/loading.htm":pl,"partials/newConference.htm":fl,"partials/pageView.htm":ml,"partials/pr-dashboard.htm":hl,"partials/profile.htm":vl,"partials/pullRequest.htm":yl,"partials/status.htm":gl};function bl(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"}),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let r={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(r){let n=tt(()=>t.fmt.orderBy(t.fmt.filter(r[1](),t[r[2]]),t.orderBy));Object.defineProperty(t,r[0],{configurable:!0,get:()=>n.value})}}function wl(e=(...t)=>fetch(...t)){async function t(r,n,i,a={}){let u=new URL(n,window.location.href);for(let[v,g]of Object.entries(a.params||{}))if(g!=null)for(let f of Array.isArray(g)?g:[g])u.searchParams.append(v,typeof f=="object"?JSON.stringify(f):f);let p=new AbortController,h;a.timeout?.then?a.timeout.then(()=>p.abort()):a.timeout&&(h=setTimeout(()=>p.abort(),a.timeout));try{let v={Accept:"application/json, text/plain, */*",...a.headers},g=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);g&&u.origin===window.location.origin&&(v["X-XSRF-TOKEN"]=decodeURIComponent(g[1]));let f;i!==void 0&&(i instanceof FormData?f=i:(v["Content-Type"]||(v["Content-Type"]="application/json;charset=utf-8"),f=JSON.stringify(i)));let w=await e(u.href,{method:r,headers:v,body:f,credentials:"same-origin",signal:p.signal}),k=await w.text(),b=k;if(a.transformResponse)b=a.transformResponse(k);else if(k&&(/json/i.test(w.headers.get("content-type")||"")||/^[\[{]/.test(k.trim())))try{b=JSON.parse(k)}catch{}let T={data:b,status:w.status,headers:N=>w.headers.get(N)};if(!w.ok)throw T;return T}catch(v){throw v.name==="AbortError"?{status:-1,data:null}:v}finally{clearTimeout(h)}}let o={};for(let r of["get","delete","head"])o[r]=(n,i)=>t(r.toUpperCase(),n,void 0,i);for(let r of["post","put","patch"])o[r]=(n,i,a)=>t(r.toUpperCase(),n,i,a);return o}var kl={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((r,n)=>{e=r,t=n}),resolve:e,reject:t}}};var _l=function(e){function t(o){return o=o||{used:0,total:0},o.unlimited=!o.total,o.percent=o.unlimited?0:Math.min(100,o.used*100/o.total),o.level=o.unlimited?"unlimited":o.percent>=95?"danger":o.percent>=80?"warn":"ok",o}return{decorate:t,load:function(){return e.get("/api/user/quota").then(o=>{let r=o.data||{};return r.storage=t(r.storage),r.file=t(r.file),r.repository=t(r.repository),r})}}};var Qo={};zl(Qo,{bigNum:()=>dq,date:()=>wq,diff:()=>mq,filter:()=>gq,humanFileSize:()=>lq,humanTime:()=>uq,limitTo:()=>yq,number:()=>hq,orderBy:()=>bq,plural:()=>kq,statusLabel:()=>pq,statusMsg:()=>fq,title:()=>cq,uppercase:()=>vq});var lq=e=>window.humanFileSize(e),dq=(function(){return function(t){let o=Number(t)||0,r=Math.abs(o);return r<1e3?String(o):r<1e4?(o/1e3).toFixed(1).replace(/\.0$/,"")+"k":r<1e6?Math.round(o/1e3)+"k":r<1e7?(o/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(o/1e6)+"M"}})(),uq=(function(){return function(t){if(!t)return"never";t instanceof Date&&(t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(t=Math.round((Date.now()-new Date(t))/1e3));var o=t<0?"from now":"ago";if(Math.abs(t)>7200*24){let p=new Date;return p.setSeconds(p.getSeconds()-t),"on "+p.toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}t=Math.abs(t);for(var r=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],n=["year","month","week","day","hour","minute","second"],i=0;i1&&(u+="s"),a>=1)return a+" "+u+" "+o}return"0 seconds "+o}})(),cq=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),o=t.map(function(r){return r.charAt(0).toUpperCase()+r.substring(1,r.length)});return o.join(" ")}})(),pq=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var o=String(t).replace(/[_-]+/g," ").toLowerCase();return o.charAt(0).toUpperCase()+o.slice(1)}})(),fq=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var o=t.match(/^rate_limited:(\d+)$/);if(o){var r=Math.max(0,Math.ceil((parseInt(o[1],10)-Date.now())/1e3));if(r<=0)return"Rate limited \u2014 resuming soon";var n=Math.floor(r/60),i=r%60;return"Rate limited \u2014 retrying in "+(n>0?n+"m "+i+"s":i+"s")}if(e[t])return e[t];if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var a=t.replace(/_/g," ");return a.charAt(0).toUpperCase()+a.slice(1)}return t}})(),mq=(function(e){let t=r=>r.replace(/&/g,"&").replace(//g,">");function o(r,n){if(!n)return;let i=n.newPath&&n.newPath!=="/dev/null"?n.newPath:n.oldPath||"",a=n.oldPath==="/dev/null"?"added":n.newPath==="/dev/null"?"deleted":n.oldPath&&n.newPath&&n.oldPath!==n.newPath?"renamed":"modified";if(r.push('
'),r.push('
'+t(i)+''+a+"
"),n.lines.length){r.push('');for(let u of n.lines)r.push('");r.push("
'+(u.oldNo||"")+''+(u.newNo||"")+''+(u.kind==="add"?"+":u.kind==="remove"?"-":u.kind==="hunk"?"@":"")+''+t(u.text)+"
")}r.push("
")}return function(r){if(!r)return r;let n=[],i=null,a=0,u=0,p=()=>(i||(i={oldPath:"",newPath:"",lines:[]}),i),h=()=>{i&&(i.lines.length||i.oldPath||i.newPath)&&(o(n,i),i=null)},v=r.split(` -`);for(let g=0;ge});function hq(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function vq(e){return String(e??"").toUpperCase()}function yq(e,t,o=0){return(e||[]).slice(o,o+t)}function gq(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function bq(e,t){if(!t)return e||[];let o=Array.isArray(t)?t:[t];return[...e||[]].sort((r,n)=>{for(let i of o){let a=i[0]==="-"?-1:1;i=i.replace(/^[+-]/,"");let u=i.split(".").reduce((h,v)=>h?.[v],r),p=i.split(".").reduce((h,v)=>h?.[v],n);if(typeof u=="string"&&(u=u.toLowerCase()),typeof p=="string"&&(p=p.toLowerCase()),u!==p)return(u==null?-1:p==null?1:ur[n])}function kq(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}var El={ERRORS:{repository_job_cancelled:"The repository changed or was removed while processing.",storage_delete_failed:"Unable to remove cached files. Please try again later.",unknown_error:"Unknown error, contact the admin.",unreachable:"Anonymous GitHub is unreachable, contact the admin.",request_error:"Unable to download the file, check your connection or contact the admin.",not_found:"The requested resource could not be found.",not_connected:"You must be logged in to perform this action.",not_authorized:"You do not have permission to perform this action.",unable_to_connect_user:"Unable to connect your account. Please try again later.",user_not_found:"The requested user could not be found.",user_banned:"Your account has been banned. Contact the admin for more information.",repo_access_limited:"GitHub blocked access because the repository's organization restricts third-party OAuth apps. Ask an org owner to approve Anonymous GitHub under Settings \u2192 Third-party Access \u2192 OAuth app policy, or anonymize a personal fork instead.",repo_saml_enforcement:"The repository's organization enforces SAML single sign-on. Authorize your token for that organization (GitHub \u2192 Settings \u2192 Applications, or re-run the org's SSO sign-in), then retry. Alternatively, anonymize a personal fork.",repo_not_found:"The repository was not found on GitHub. Check the URL and spelling, make sure you are signed in to the account that can see it, and confirm the repo isn't hidden under an org that restricts third-party app access.",repo_empty:"The selected branch has no commits on GitHub. Push at least one commit, or pick a different branch, then retry.",repo_not_accessible:"Anonymous GitHub cannot access this repository. Verify the repository exists and that Anonymous GitHub has been authorized for the owning organization.",repository_archived:"This repository has been archived and its files are no longer available.",repository_expired:"The repository is expired.",invalid_status:"This action cannot be performed while the resource is in its current state.",repository_not_ready:"Anonymous GitHub is still processing the repository, it can take several minutes.",repository_not_accessible:"This repository is currently not accessible.",repo_is_updating:"Anonymous GitHub is still processing the repository, it can take several minutes.",invalid_repo:"The provided repository is not valid.",invalid_source_repository:"The repository source name is invalid; expected the form 'owner/name'.",repoId_not_defined:"A repository ID must be provided.",repoUrl_not_defined:"The repository URL needs to be defined.",source_not_provided:"A repository source must be provided.",github_rate_limit_exceeded:"GitHub temporarily blocked the request because we hit its API rate limit. Wait a few minutes and try again. If the problem persists and you contact GitHub Support, include the request ID and timestamp shown in GitHub's response (the 'X-GitHub-Request-Id' header).",rate_limited:"GitHub API rate limit reached. The repository will be available shortly \u2014 please wait a moment and refresh.",repoId_already_used:"The repository ID is already used.",invalid_repoId:"The format of the repository ID is invalid.",unsupported_source:"The repository source type is not supported.",branch_not_specified:"The branch is not specified.",branch_not_found:"The branch of the repository cannot be found.",commit_not_specified:"A commit must be specified.",commit_not_found:"The configured commit no longer exists in the source repository. It may have been force-pushed, rebased, or removed.",repo_renamed:"The source repository appears to have been renamed or moved on GitHub. Please refresh and try again \u2014 the cached name has been updated.",invalid_commit_format:"The commit hash format is invalid. It must be a hexadecimal string.",pull_request_not_found:"The requested pull request could not be found.",pull_request_expired:"This pull request has expired and is no longer available.",pull_request_not_ready:"This pull request is still being prepared. Please try again shortly.",pull_request_not_available:"This pull request is currently not available.",invalid_pullRequestId:"The pull request ID is invalid.",pullRequestId_already_used:"This pull request ID is already in use. Please choose a different one.",repository_not_specified:"A repository must be specified for this pull request.",pullRequestId_not_specified:"A pull request ID must be specified.",pullRequestId_is_not_a_number:"The source pull request ID must be a number.",options_not_provided:"Anonymization options are mandatory.",terms_not_specified:"Anonymization terms must be specified.",invalid_terms_format:"Terms are in an invalid format.",missing_content:"No content was provided to the anonymization preview.",unable_to_anonymize:"An error happened during the anonymization process. Please try later or report the issue.",non_supported_mode:"The selected anonymization mode is invalid, only download and stream are supported.",invalid_path:"The provided path is invalid or missing.",path_not_specified:"A file path must be specified.",path_not_defined:"The file path has not been resolved yet.",invalid_file_path:"The requested file path is not valid.",invalid_request:"The request is missing required fields or is malformed.",no_file_selected:"Please select a file.",file_not_found:"The requested file is not found.",file_not_accessible:"The requested file is not accessible.",file_not_supported:"The file type is not supported. Anonymous GitHub cannot handle it.",file_too_big:"The file size exceeds the limit of Anonymous GitHub.",is_folder:"The path points to a folder.",folder_not_supported:"The path points to a folder. Please select a file.",unable_to_write_file:"Unable to write file on disk.",download_not_enabled:"Repository downloads are not enabled on this server.",unable_to_download:"The repository could not be downloaded. Please try again later.",s3_config_not_provided:"Object storage has not been configured on this server.",stats_unsupported:"Statistics are only supported in download mode.",branches_not_found:"The requested branch is not found.",readme_not_available:"No README for the repository is found.",page_not_supported_on_different_branch:"GitHub Pages is served from a different branch than the one selected. Pick the branch that GitHub Pages is configured to use.",page_not_activated:"GitHub Pages is not enabled on this repository. Enable it in the repository settings on GitHub before anonymizing.",is_removed:"This resource has been removed and is no longer available.",conf_name_missing:"A conference name is required.",conf_id_missing:"A conference ID is required.",conf_id_used:"This conference ID is already in use. Please choose a different one.",conf_start_date_missing:"A start date is required for the conference.",conf_end_date_missing:"An end date is required for the conference.",conf_start_date_invalid:"The start date must be before the end date.",conf_end_date_invalid:"The end date must be in the future.",invalid_plan:"The selected plan is not valid.",conference_not_found:"The requested conference could not be found.",conf_not_found:"The requested conference could not be found.",conf_not_activated:"The conference is not activated.",billing_missing:"Billing information is required for this plan.",billing_name_missing:"A billing name is required.",billing_email_missing:"A billing email is required.",billing_address_missing:"A billing address is required.",billing_city_missing:"A billing city is required.",billing_zip_missing:"A billing ZIP/postal code is required.",billing_country_missing:"A billing country is required.",queue_not_found:"The specified queue could not be found.",job_not_found:"The specified job could not be found in the queue.",error_retrying_job:"An error occurred while retrying the job.",gist_expired:"The gist is expired.",gist_not_ready:"Anonymous GitHub is still processing the gist, it can take several minutes.",gist_not_found:"The requested gist could not be found.",gist_not_available:"This gist is currently not available.",invalid_gistId:"The format of the gist ID is invalid.",gistId_not_specified:"A gist ID must be provided.",gistId_already_used:"The gist ID is already used.",missing_token:"An authentication token is required.",invalid_token:"The provided authentication token is invalid.",login_failed:"Login failed. Please try again.",server_error:"An unexpected server error occurred. Please try again later.",username_not_defined:"A username must be provided.",github_user_not_found:"The specified GitHub user could not be found.",cannot_coauthor_self:"You cannot add yourself as a co-author.",storage_write_size_mismatch:"The downloaded file was smaller than expected. The upstream source may have returned an incomplete response \u2014 please try again.",storage_read_error:"An error occurred while reading the file from storage \u2014 please try again.",upstream_error:"A temporary error occurred while fetching from GitHub \u2014 please try again.",token_expired:"Your GitHub access token has expired. Please log out and log in again to refresh it.",job_is_active:"This job is currently running \u2014 wait for it to finish or remove it first.",github_app_access_required:"Allow this repository on GitHub using the read-only access button, then retry. Organization access may require administrator approval.",github_app_reconnect_required:"Reconnect your GitHub App account to restore read-only access.",github_app_disabled:"New GitHub App connections are currently unavailable.",github_oauth_required:"Connect legacy GitHub OAuth to use this feature.",github_identity_mismatch:"Use the same GitHub account that you are signed in with here.",github_app_permissions_invalid:"The GitHub App must be configured with read-only permissions.",github_unavailable:"GitHub is temporarily unavailable. Please retry.",connection_changed:"The repository connection changed. Reload and try again.",repository_busy:"Wait for the repository operation to finish before changing its connection.",invalid_connection:"Select a supported GitHub connection.",github_oauth_disabled:"Legacy OAuth sign-in is currently disabled.",invalid_auth_state:"The authorization session expired. Please start again from Anonymous GitHub.",invalid_webhook_signature:"The webhook signature is invalid.",webhook_processing_failed:"Webhook processing failed. Retry the delivery.",github_app_authorization_cancelled:"GitHub authorization was cancelled.",github_account_link_required:"This username belongs to an existing account. Sign in with legacy GitHub OAuth to keep access to your existing anonymizations, then connect the read-only GitHub App from GitHub connections.",github_app_refresh_busy:"GitHub credentials are being renewed. Please retry shortly.",github_grant_revocation_failed:"Unable to revoke the GitHub grant. Please retry.",another_login_required:"Connect and verify another sign-in method before disconnecting OAuth.",oauth_resources_remaining:"Some resources still require OAuth. Migrate or remove them before disconnecting.",invalid_github_path:"The GitHub repository path is invalid."},WARNINGS:{page_not_enabled_on_repo:"GitHub Pages is not enabled on this repository. Enable it in the repository's Settings \u2192 Pages on GitHub, then refresh.",page_branch_mismatch:"GitHub Pages on this repository is served from the '{{pageBranch}}' branch, but you selected '{{selectedBranch}}'. Switch the branch above to '{{pageBranch}}' to anonymize the Pages site.",folder_truncated:"This folder has more than 10,000 entries; only a partial listing is shown.",repo_truncated:"Some folders in this repository have too many files to be fully listed. Affected folders are marked with a warning icon.",submodules_not_included:"This repository uses git submodules. Submodule contents are not included in the anonymized repository and appear as empty folders."}};var Cl={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=xe(null);return It(()=>{let r=[t.value][0];r.classList.add("html-doc");function n(){r.innerHTML="";let i=e.content;if(typeof i!="string")return;let a=document.createElement("iframe");a.className="html-doc-frame",a.setAttribute("title","Rendered HTML document");let u=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&u.push("allow-scripts","allow-forms","allow-modals"),a.setAttribute("sandbox",u.join(" ")),a.setAttribute("referrerpolicy","no-referrer"),r.appendChild(a);let p="";e.baseUrl&&(p=''),a.srcdoc=p+i}He(()=>e.content,n,{immediate:!0}),He(()=>e.baseUrl,n,{immediate:!0}),He(()=>e.allowScripts,n,{immediate:!0})}),()=>Ne("html-doc",{ref:t})}};var Nl={name:"pdfviewer",props:["src"],setup(e){let t=xe(null);return It(()=>{let o=[t.value],r=400,n=[.5,.75,1,1.25,1.5,2,3],i=1e3,a=o[0];a.classList.add("pdf-viewer");let u=null,p=[],h=!1,v=null,g=1,f=1,w=0,k=0,b=612/792,T=0,N=document.createElement("div");N.className="pdf-toolbar";let D=document.createElement("div");D.className="pdf-pages",D.tabIndex=0,D.setAttribute("aria-label","PDF pages"),a.appendChild(N),a.appendChild(D);function I(F,W,fe){let Ce=document.createElement("button");return Ce.type="button",Ce.className="pdf-toolbar-btn",Ce.title=W,Ce.setAttribute("aria-label",W),Ce.innerHTML='',Ce.addEventListener("click",fe),Ce}let C=I("fa-chevron-up","Previous page",function(){be(f-1)}),A=I("fa-chevron-down","Next page",function(){be(f+1)}),q=document.createElement("input");q.type="text",q.className="pdf-toolbar-page",q.setAttribute("aria-label","Page number"),q.title="Page number \u2014 type a page and press Enter",q.addEventListener("keydown",function(F){F.key==="Enter"&&(be(parseInt(q.value,10)),q.blur())}),q.addEventListener("blur",function(){q.value=String(f)});let Z=document.createElement("span");Z.className="pdf-toolbar-count";let X=I("fa-search-minus","Zoom out",function(){qe(n[Math.max(0,re()-1)])}),K=I("fa-search-plus","Zoom in",function(){qe(n[Math.min(n.length-1,re()+1)])}),U=document.createElement("button");U.type="button",U.className="pdf-toolbar-btn pdf-toolbar-zoom",U.title="Reset zoom to fit the width",U.setAttribute("aria-label","Reset zoom to fit the width"),U.addEventListener("click",function(){qe(1)}),N.appendChild(C),N.appendChild(A);let ue=document.createElement("span");ue.className="pdf-toolbar-group",ue.appendChild(q),ue.appendChild(Z),N.appendChild(ue);let te=document.createElement("span");te.className="pdf-toolbar-group pdf-toolbar-right",te.appendChild(X),te.appendChild(U),te.appendChild(K),N.appendChild(te);function re(){let F=0;for(let W=0;W=F,U.textContent=Math.round(g*100)+"%",X.disabled=re()===0,K.disabled=re()===n.length-1}function me(F){let W=p[F-1];W&&(D.scrollTop+=W.getBoundingClientRect().top-D.getBoundingClientRect().top)}function be(F){if(!u||isNaN(F))return;let W=Math.min(Math.max(1,F),u.numPages);p[W-1]&&(me(W),f=W,w=W,k=Date.now()+800,pe(),V())}function he(){if(!p.length||Date.now()Ce||S.bottome.src,ne,{immediate:!0}),ss(function(){D.removeEventListener("scroll",H),$(window).off("resize",L),le()})}),()=>Ne("pdfviewer",{ref:t})}};var Dl={props:["content","terms","options"],setup(e){let t=xe(null),o=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../")};return It(()=>{o(),He(()=>[e.content,e.terms,e.options],o,{deep:!0})}),()=>Ne("markdown",{ref:t})}},Eq={props:["file","terms","options"],setup(e){let t=xe(null),o=()=>_t(()=>t.value?.querySelectorAll("pre code").forEach(r=>window.Prism?.highlightElement(r)));return It(o),He(()=>[e.file?.content,e.terms,e.options],o,{deep:!0}),()=>{let r=e.file||{},n=(r.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(n)||r.language==="Markdown")return Ne("gist-file",{ref:t},Ne(Dl,{content:r.content,terms:e.terms,options:e.options}));let i={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},a=(r.language||n||"none").toLowerCase();return Ne("gist-file",{ref:t},Ne("pre",{class:"line-numbers"},Ne("code",{class:"language-"+(i[a]||a),key:r.content},r.content||"")))}}},Cq={props:["file","content"],setup(e){let t=xe(null),o=0,r,n=async()=>{let i=++o;r?.abort(),r=new AbortController;try{let a=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:r.signal}).then(u=>{if(!u.ok)throw Error("Notebook request failed");return u.json()});if(await Wt("notebook"),i!==o)return;t.value.innerHTML=DOMPurify.sanitize(nb.parse(a).render()),t.value.querySelectorAll("pre code").forEach(u=>window.Prism?.highlightElement(u))}catch(a){i===o&&a.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return It(()=>{n(),He(()=>[e.file,e.content],n)}),ss(()=>{o++,r?.abort()}),()=>Ne("notebook",{ref:t})}},Nq={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,r])=>r.code),o=t.reduce((r,[,n])=>r+n.code,0);return Ne("loc",t.map(([r,n])=>Ne("div",{class:"lang",title:`${r}: ${n.code.toLocaleString()} lines`,style:{width:n.code*100/o+"%",background:langColors[r]}})))}}},Rl={Markdown:Dl,GistFile:Eq,Notebook:Cq,Loc:Nq,HtmlDoc:Cl,Pdfviewer:Zr(async()=>(await Wt("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",Nl))},Tl={async mounted(e,{value:t}){e._editorValue=t;try{if(await tr(),e._editorDisposed)return;let o=e._editorValue,r=ace.edit(e);e._editor=r,r.setValue(String(o.content??""),-1),Sl(e,o.options),o.options?.onLoad?.(r)}catch(o){e._editorDisposed||(e.textContent=o.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),Sl(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editor?.destroy()}};function Sl(e,t={}){t.mode&&e._editor.session.setMode("ace/mode/"+t.mode),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var Ol={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],o=new Set,r=new IntersectionObserver(n=>{n.forEach(a=>a.isIntersecting?o.add(a.target.id):o.delete(a.target.id));let i=t.find(a=>o.has(a.hash.slice(1)));t.forEach(a=>a.classList.toggle("active",a===i))},{rootMargin:"-20% 0px -60% 0px",threshold:0});_t(()=>t.forEach(n=>{let i=document.getElementById(n.hash.slice(1));i&&r.observe(i)})),e._observer=r},beforeUnmount(e){e._observer?.disconnect()}};function Sq(e){let t={children:[]},o=new Map([["",t]]);function r(n){if(o.has(n))return o.get(n);let i=n.lastIndexOf("/"),a=r(i<0?"":n.slice(0,i)),u={name:n.slice(i+1),children:[]};return o.set(n,u),a.children.push(u),u}for(let n of e||[]){let i=n.path?`${n.path}/${n.name}`:n.name;n.size==null?r(i):r(n.path||"").children.push({...n})}return t.children}var Al={name:"FileTree",props:["file","parent","searchQuery","searchResults","page"],setup(e){let t=Ea(),o=xe(null),r=ze(Object.create(null)),n=null,i=tt(()=>Sq(e.file)),a=()=>"/"+(Array.isArray(t.params.path)?t.params.path.join("/"):t.params.path||"");He(()=>[t.params.repoId,t.params.path],()=>{let f="";a().split("/").filter(Boolean).forEach(w=>{f+="/"+w,r[f]=!0})},{immediate:!0});let u=tt(()=>{if(!e.searchQuery||!e.searchResults)return null;let f=new Set,w=new Set;return e.searchResults.forEach(k=>{f.add(k.path?`${k.path}/${k.name}`:k.name);let b="";(k.path||"").split("/").filter(Boolean).forEach(T=>{b=b?b+"/"+T:T,w.add(b)})}),{files:f,folders:w}}),p=()=>[...o.value.querySelectorAll("li > a")],h=f=>{o.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),f&&(n=f.dataset.path,f.classList.add("tree-focused"),f.scrollIntoView?.({block:"nearest"}),o.value.focus())};function v(f){let w=p(),k=o.value.querySelector(".tree-focused")||w[0],b=w.indexOf(k);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(f.key)||(f.preventDefault(),f.key==="ArrowDown"&&h(w[(b+1)%w.length]),f.key==="ArrowUp"&&h(w[(b-1+w.length)%w.length]),!k))return;let T=k.closest("li");f.key==="ArrowRight"&&T.classList.contains("folder")&&(T.classList.contains("open")?h(T.querySelector(":scope > ul > li > a")):k.click()),f.key==="ArrowLeft"&&(T.classList.contains("folder")&&T.classList.contains("open")?k.click():h(T.parentElement.closest("li.folder")?.querySelector(":scope > a"))),f.key==="Enter"&&k.click()}function g(f,w=""){let k=[...f].sort((b,T)=>+!!T.children-+!!b.children||b.name.localeCompare(T.name));return Ne("ul",k.flatMap(b=>{let T=b,N=T.name,D=(w+"/"+N).slice(1);if(u.value&&!u.value.files.has(D)&&!u.value.folders.has(D))return[];for(;T.children?.length===1;)T=T.children[0],N+="/"+T.name;let I=w+"/"+N,C=!!T.children,A=u.value?r[I]!==!1:!!r[I],q=C&&e.page?.options?.truncatedFolders?.includes(I.slice(1)),Z=e.page?.fileCounts?.[I.slice(1)]||0,X=Ne("span",{class:C?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},C?Ne("svg",{viewBox:"0 0 14 12",focusable:"false"},Ne("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),K=Ne("span",{class:"tree-name"},N),U=te=>{h(te.currentTarget),C&&(te.preventDefault(),r[I]=!A,r[I]&&!T.children.length&&e.page.getFiles(I.slice(1)),_t(()=>h(p().find(re=>re.dataset.path===n))))},ue=Ne("a",{"data-path":I,href:C?void 0:`/r/${encodeURIComponent(t.params.repoId)}${encodePathForUrl(I)}`,class:{"tree-focused":n===I},onClick:U},[C?Ne("span",{class:"tree-toggle"}):w?Ne("span",{class:"tree-spacer"}):null,X,K,q?Ne("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},Ne("i",{class:"fas fa-exclamation-triangle"})):null,C&&Z?Ne("span",{class:"tree-count"},Z):null]);return Ne("li",{key:I,class:{file:!0,folder:C,open:A,active:a()===I,truncated:q},title:C?"":`Size: ${humanFileSize(T.size||0)}`},[ue,C&&A?g(T.children,I):null])}))}return()=>Ne("tree",{ref:o,tabindex:0,onKeydown:v},e.file?.length?u.value?.files.size===0?Ne("div",{class:"tree-search-empty"},"No files found"):g(i.value):"Empty repository")}};function Vl(){return ze({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function Pl(e,t){if(!e[t]){let o=Vl();Object.defineProperty(o,"invalid",{get(){return Object.values(o.errors).some(Boolean)||Object.keys(o).some(r=>r!=="invalid"&&o[r]&&typeof o[r]=="object"&&o[r].invalid)}}),e[t]=o}return e[t]}var ql={beforeMount(e,{value:t}){e._formState=Pl(t,e.name),e.addEventListener("submit",o=>o.preventDefault())}};function Dq(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function Il(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?Dq(t):t??""),Xo(e)}function Xo(e){let t=e._field.validation;if(!t)return;let o=e.validity;for(let[r,n]of Object.entries({required:o.valueMissing,pattern:o.patternMismatch,min:o.rangeUnderflow,max:o.rangeOverflow,date:o.badInput,email:o.typeMismatch&&e.type==="email",url:o.typeMismatch&&e.type==="url"}))t.setValidity(r,e.disabled||!n)}var Ml={beforeMount(e,{value:t}){var a;let o=t.form&&Pl(t.state,t.form),r=o&&e.name?o[a=e.name]||(o[a]=Vl()):null;e._field={binding:t,validation:r,timer:null};let n=()=>{clearTimeout(e._field.timer),e._field.timer=null;let u=e._field.binding,p=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(p=e.value===""?null:Number(e.value)),e.type==="date"&&(p=e.value?new Date(e.value+"T00:00:00"):null),r){r.setDirty();for(let h of Object.keys(r.errors))r.setValidity(h,!0)}u.set(p),Xo(e),u.change?.()}};e._field.commit=n;let i=u=>{let p=e._field.binding.options?.debounce||0,h=typeof p=="number"?p:p[u.type]??p.default??0;clearTimeout(e._field.timer),h?e._field.timer=setTimeout(n,h):n()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",i),e.addEventListener("blur",()=>{r&&(r.touched=!0),e._field.timer&&n()})},mounted:Il,updated(e,{value:t}){e._field.binding=t,Il(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:o}=e._field,r=t.form&&t.state[t.form];r&&r[e.name]===o&&delete r[e.name]}};function $l(e,t){let o=e.target.closest("form");if(o?._formState&&(o._formState.submitted=!0),o?.querySelectorAll("input, select, textarea").forEach(r=>{r._field?.timer&&r._field.commit(),r._field&&Xo(r)}),o&&!o.checkValidity()){let r=o.querySelector(":invalid");r?.scrollIntoView?.({block:"center"}),r?.focus(),o.reportValidity();return}return t()}var Ll=Symbol("session"),Rq=/^\/(w|api|github)(\/|$)/;function Fl(e,t={}){let o=e?.split(".").reduce((r,n)=>r?.[n],El);return String(o??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(r,n)=>t[n]??"")}var Tq={...Qo,translate:Fl};function Oq(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function Aq(e="#app",t={}){let o=new Map,r=wl(t.fetch),n,i;function a(){let h=mt(),v={url(f){return f===void 0?i.currentRoute.value.fullPath:(i.push(f),v)},path(){return i.currentRoute.value.path},search(){return i.currentRoute.value.query}},g=new Proxy({},{get(f,w){let k=i.currentRoute.value.params[w];return Array.isArray(k)?k.join("/"):k}});return{http:r,...h,location:v,params:g,window,promises:kl,html:{trustAsHtml:f=>f},translate:(f,w)=>Promise.resolve(Fl(f,w)),quotaService:_l(r)}}function u(h){return{name:h.template,setup(){let v=Ko(lt(Ll),o);h.setup(v,a()),bl(h.template,v);let g=[];return()=>Jn[h.template](v,g)}}}i=_a({history:t.history||ba(),routes:Ga.map(h=>h.redirect?h:{path:h.path,component:u(h),meta:{title:h.title,preserveExplorer:h.preserveExplorer}})});let p=Ui({setup(){n=Ko(null,o),n.fmt=Tq,n.window=window,n.Math=Math,n.sanitize=f=>DOMPurify.sanitize(f??""),n.submitForm=$l,n.safeUrl=Oq;let h=a();Na(n,h.http,h.location,h.timeout),ts(Ll,n),He(()=>n.title,f=>{document.title=f||"Anonymous GitHub"});let v=[],g=f=>{let w=f.target.closest?.("a[href]");if(f.defaultPrevented||f.button!==0||f.metaKey||f.ctrlKey||f.shiftKey||f.altKey||!w||w.hasAttribute("download")||w.target&&w.target!=="_self"||w.dataset.toggle||w.getAttribute("href").startsWith("#"))return;let b=new URL(w.href,window.location.href);b.origin!==window.location.origin||Rq.test(b.pathname)||(f.preventDefault(),i.push(b.pathname+b.search+b.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",g),ss(()=>document.removeEventListener("click",g)),()=>[Ne("header",{class:"app-header"},Jn["partials/header.htm"](n,v)),Ne("main",{class:"app-view align-items-stretch w-100"},Ne(Wo,null,{default:({Component:f,route:w})=>f?Ne(f,{key:w.meta.preserveExplorer?w.matched[0]?.path:w.path}):null})),Ne("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},n.toasts.map((f,w)=>Ne("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:w},[Ne("div",{class:"toast-header"},[Ne("strong",{class:"mr-auto"},f.title),Ne("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>n.removeToast(f)},"\xD7")]),Ne("div",{class:"toast-body"},f.body)])))]}});for(let[h,v]of Object.entries(Rl))p.component(h,v);return p.component("Tree",Al),p.component("PartialView",{props:["name","state"],setup(h){let v=[];return()=>Jn[h.name](h.state,v)}}),p.directive("field",Ml),p.directive("form",ql),p.directive("code-editor",Tl),p.directive("paper-scrollspy",Ol),p.use(i),i.beforeEach(async h=>{n?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await Wt("markdown"),/^\/(r|repository)\//.test(h.path)&&await Wt("org")}),i.afterEach(h=>{if(!n)return;n.title=h.meta.title,n.emit("routeChange",{title:h.meta.title}),n.emit("routeUpdate",{title:h.meta.title});let v=document.querySelector(".app-view");!h.meta.preserveExplorer&&v&&(v.scrollTop=0)}),p.mount(e),{app:p,router:i,state:n}}document.querySelector("#app")&&(window.anonymousApp=Aq());})(); +jane.smith@example.org`},AP={id:"termsHelp",class:"form-text text-muted"},IP={class:"invalid-feedback"},VP={id:"settings-display",class:"paper-settings-section"},PP={class:"form-group paper-check-list"},qP={class:"form-check"},MP={class:"form-check-input",type:"checkbox",id:"link",name:"link"},$P={class:"form-check"},LP={class:"form-check-input",type:"checkbox",id:"image",name:"image"},FP={class:"form-check"},UP={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},zP={class:"form-check"},HP={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},BP={id:"settings-features",class:"paper-settings-section"},GP={class:"form-group paper-check-list"},jP={class:"form-check"},WP={class:"form-check-input",type:"checkbox",id:"page",name:"page"},KP={class:"form-check"},YP={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},JP={class:"form-check"},QP={class:"form-check-input",type:"checkbox",id:"update",name:"update"},XP={class:"form-group"},ZP={class:"form-control",id:"mode",name:"mode"},xP={class:"form-text text-muted"},e3={id:"settings-expiration",class:"paper-settings-section"},t3={class:"form-group"},s3={class:"form-control",id:"expiration",name:"expiration"},n3={class:"paper-settings-footer"},o3={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},r3=["textContent"],i3={class:"paper-settings-actions"},a3=["disabled"],l3={key:0,class:"fas fa-check mr-1","aria-hidden":"true"},d3={id:"settings-account",class:"paper-settings-section"},u3={class:"paper-account-card"},c3=["src"],p3={class:"paper-account-identity"},f3={class:"paper-account-name"},m3={class:"paper-danger-zone"},h3={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},v3=["textContent"],y3=["disabled"];function vl(e,t){let o=we("paper-scrollspy"),r=we("field"),n=we("form");return l(),d("div",uP,[t[48]||(t[48]=ge('
My work \xA0/\xA0 Settings

Your settings

Defaults applied to every new anonymization, your quotas, and your account.

',3)),s("div",cP,[E((l(),d("aside",pP,[...t[2]||(t[2]=[ge('
On this page
',2)])])),[[o]]),s("div",fP,[f(" Quota: same markup as the dashboard, driven by quotaService "),s("section",mP,[t[4]||(t[4]=s("div",{class:"paper-section-eyebrow"},"Quota",-1)),t[5]||(t[5]=s("p",{class:"paper-section-copy"},"What you are using across all your anonymizations. Conferences can lift these limits during a review window.",-1)),e.quota?(l(),d("div",hP,[(l(),d(Y,null,oe([{key:"repository",label:"Repositories",kind:"count"},{key:"storage",label:"Storage",kind:"bytes"},{key:"file",label:"Files",kind:"count"}],(i,a)=>s("div",vP,[s("div",yP,[s("span",gP,c(i?.label),1),i?.kind==="count"?(l(),d("span",bP,[v(c(e.fmt?.number(e.quota[i?.key].used)),1),e.quota[i?.key].unlimited?f("v-if",!0):(l(),d("span",wP," / "+c(e.fmt?.number(e.quota[i?.key].total)),1)),e.quota[i?.key].unlimited?(l(),d("span",kP,"Unlimited")):f("v-if",!0)])):f("v-if",!0),i?.kind==="bytes"?(l(),d("span",_P,[v(c(e.fmt?.humanFileSize(e.quota[i?.key].used)),1),e.quota[i?.key].unlimited?f("v-if",!0):(l(),d("span",EP," / "+c(e.fmt?.humanFileSize(e.quota[i?.key].total)),1)),e.quota[i?.key].unlimited?(l(),d("span",CP,"Unlimited")):f("v-if",!0)])):f("v-if",!0)]),s("div",{class:O(["quota-track","quota-"+e.quota[i?.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":i?.label+" quota","aria-valuenow":e.quota[i?.key].used,"aria-valuemax":e.quota[i?.key].unlimited?e.quota[i?.key].used:e.quota[i?.key].total,"aria-valuetext":e.quota[i?.key].unlimited?"unlimited":e.fmt.number(e.quota[i?.key].percent,0)+"% used"},[e.quota[i?.key].unlimited?f("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:Ve({width:e.quota[i?.key].percent+"%"})},null,4))],10,NP)])),64))])):f("v-if",!0),e.quota?f("v-if",!0):(l(),d("div",SP,[(l(),d(Y,null,oe([1,2,3],(i,a)=>s("div",DP,[...t[3]||(t[3]=[s("div",{class:"quota-header"},[s("span",{class:"skeleton skeleton-line",style:{width:"40%"}}),s("span",{class:"skeleton skeleton-line",style:{width:"25%"}})],-1),s("div",{class:"quota-track"},null,-1)])])),64))]))]),E((l(),d("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onSubmit:t[0]||(t[0]=ke(i=>e.submitForm(i,()=>{e.saveDefault(i)}),["prevent"]))},[s("section",RP,[t[11]||(t[11]=s("div",{class:"paper-section-eyebrow"},"Terms to redact",-1)),t[12]||(t[12]=s("p",{class:"paper-section-copy"},"Pre-filled in every new anonymization. You can still edit the list per anonymization.",-1)),s("div",TP,[t[10]||(t[10]=s("label",{class:"paper-field-label",for:"terms"},"Default terms",-1)),E(s("textarea",OP,null,512),[[r,{state:e.viewState,set:i=>{e.terms=i},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),s("small",AP,[t[6]||(t[6]=v(" One term per line (regex allowed). Each match is replaced by ",-1)),s("code",null,c(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[7]||(t[7]=v(", or use ",-1)),t[8]||(t[8]=s("code",null,"term=>replacement",-1)),t[9]||(t[9]=v(" to pick your own. ",-1))]),E(s("div",IP," Terms are in an invalid format ",512),[[G,e.defaultsForm?.terms?.errors?.format]])])]),s("section",VP,[t[21]||(t[21]=s("div",{class:"paper-section-eyebrow"},"Display",-1)),t[22]||(t[22]=s("p",{class:"paper-section-copy"},"What reviewers can see inside an anonymized repository.",-1)),s("div",PP,[s("div",qP,[E(s("input",MP,null,512),[[r,{state:e.viewState,set:i=>{e.options.link=i},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[13]||(t[13]=s("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=s("small",{class:"form-text text-muted"},"Unchecked, every link in text files is removed.",-1))]),s("div",$P,[E(s("input",LP,null,512),[[r,{state:e.viewState,set:i=>{e.options.image=i},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[15]||(t[15]=s("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=s("small",{class:"form-text text-muted"},"Images are shown as is. They are not anonymized.",-1))]),s("div",FP,[E(s("input",UP,null,512),[[r,{state:e.viewState,set:i=>{e.options.pdf=i},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[17]||(t[17]=s("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[18]||(t[18]=s("small",{class:"form-text text-muted"},"PDFs are shown as is. They are not anonymized.",-1))]),s("div",zP,[E(s("input",HP,null,512),[[r,{state:e.viewState,set:i=>{e.options.notebook=i},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[19]||(t[19]=s("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[20]||(t[20]=s("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])])]),s("section",BP,[t[31]||(t[31]=s("div",{class:"paper-section-eyebrow"},"Features",-1)),s("div",GP,[s("div",jP,[E(s("input",WP,null,512),[[r,{state:e.viewState,set:i=>{e.options.page=i},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[23]||(t[23]=s("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[24]||(t[24]=s("small",{class:"form-text text-muted"},"Serve an anonymized copy of the repository's GitHub Pages site. Only pages built from the anonymized branch are supported.",-1))]),s("div",KP,[E(s("input",YP,null,512),[[r,{state:e.viewState,set:i=>{e.options.loc=i},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[25]||(t[25]=s("label",{class:"form-check-label",for:"loc"},"Lines of code",-1)),t[26]||(t[26]=s("small",{class:"form-text text-muted"},"Show the line count of the repository in the explorer.",-1))]),s("div",JP,[E(s("input",QP,null,512),[[r,{state:e.viewState,set:i=>{e.options.update=i},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[27]||(t[27]=s("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=s("small",{class:"form-text text-muted"},"Follow the branch and pull the latest commit automatically, at most once an hour.",-1))])]),s("div",XP,[t[30]||(t[30]=s("label",{class:"paper-field-label",for:"mode"},"Fetch mode",-1)),E((l(),d("select",ZP,[...t[29]||(t[29]=[s("option",{value:"GitHubStream",selected:""},"Stream from GitHub on demand",-1),s("option",{value:"GitHubDownload"},"Download to Anonymous GitHub",-1)])])),[[r,{state:e.viewState,set:i=>{e.options.mode=i},value:e.options?.mode,form:"defaultsForm",options:{}}]]),s("small",xP," Download is faster for reviewers and enables every feature. Streaming is the only option above "+c(e.fmt?.humanFileSize(e.site_options?.MAX_REPO_SIZE*1024))+". ",1)])]),s("section",e3,[t[35]||(t[35]=s("div",{class:"paper-section-eyebrow"},"Expiration",-1)),s("div",t3,[t[33]||(t[33]=s("label",{class:"paper-field-label",for:"expiration"},"When an anonymization expires",-1)),E((l(),d("select",s3,[...t[32]||(t[32]=[s("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),s("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[r,{state:e.viewState,set:i=>{e.options.expirationMode=i},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),t[34]||(t[34]=s("small",{class:"form-text text-muted"}," The expiration date itself is chosen per anonymization. Redirecting reveals the source repository, so pick it only once the review is over. ",-1))])]),s("div",n3,[e.error?(l(),d("div",o3,[t[36]||(t[36]=s("i",{class:"fas fa-exclamation-circle","aria-hidden":"true"},null,-1)),t[37]||(t[37]=v()),s("span",{textContent:c(e.error)},null,8,r3)])):f("v-if",!0),s("div",i3,[s("button",{id:"save",type:"submit",class:"btn btn-ink",disabled:e.saving},[e.message?(l(),d("i",l3)):f("v-if",!0),v(c(e.saving?"Saving\u2026":e.message?"Saved":"Save defaults"),1)],8,a3),t[38]||(t[38]=s("span",{class:"paper-settings-hint"},"Applies to new anonymizations only. Existing ones keep their settings.",-1))])])],32)),[[n,e.viewState]]),s("section",d3,[t[46]||(t[46]=s("div",{class:"paper-section-eyebrow"},"Account",-1)),s("div",u3,[e.user?.photo?(l(),d("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,c3)):f("v-if",!0),s("div",p3,[s("div",f3,"@"+c(e.user?.username),1),t[39]||(t[39]=s("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[40]||(t[40]=s("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),t[47]||(t[47]=s("a",{class:"paper-settings-connection-link",href:"/connections"},[s("i",{class:"fab fa-github","aria-hidden":"true"}),s("span",null,[v("GitHub connections"),s("small",null,"Manage repository access and legacy OAuth.")]),s("span",{"aria-hidden":"true"},"\u2192")],-1)),s("div",m3,[t[44]||(t[44]=s("div",{class:"paper-danger-head"},"Delete account",-1)),t[45]||(t[45]=s("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(l(),d("div",h3,[t[41]||(t[41]=s("i",{class:"fas fa-exclamation-circle","aria-hidden":"true"},null,-1)),t[42]||(t[42]=v()),s("span",{textContent:c(e.deleteError)},null,8,v3)])):f("v-if",!0),s("button",{type:"button",class:"btn btn-outline-danger",onClick:t[1]||(t[1]=i=>e.deleteAccount()),disabled:e.deletingAccount},[t[43]||(t[43]=s("i",{class:"fas fa-trash-alt mr-1","aria-hidden":"true"},null,-1)),v(c(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,y3)])])])])])}var g3={class:"pr-page"},b3={class:"container paper-page pr-page-inner"},w3={class:"pr-header"},k3={class:"paper-page-title pr-title"},_3=["textContent"],E3={key:1,class:"text-muted"},C3=["href"],N3={class:"pr-header-meta"},S3={key:0,class:"pr-meta-item"},D3=["textContent"],R3={key:1,class:"pr-meta-item"},T3=["textContent"],O3={key:2,class:"pr-meta-item"},A3=["textContent"],I3={key:0,class:"pr-body-card"},V3={key:1,class:"paper-tabs",role:"tablist"},P3=["textContent"],q3={class:"paper-tab-content"},M3={key:0},$3=["innerHTML"],L3={key:1},F3={class:"pr-comments"},U3={class:"pr-comment"},z3={class:"pr-comment-head"},H3={key:0,class:"pr-comment-author"},B3=["textContent"],G3=["textContent"],j3={key:0,class:"pr-comment-body"},W3={key:0,class:"paper-table-empty"};function yl(e,t){let o=et("markdown");return l(),d("div",g3,[s("div",b3,[t[15]||(t[15]=s("div",{class:"paper-crumbs"},[s("a",{href:"/dashboard"},"Reviewer"),v(" \xA0/\xA0 "),s("span",{class:"here"},"Pull request")],-1)),s("header",w3,[s("h1",k3,[e.details?.title?(l(),d("span",{key:0,textContent:c(e.details?.title)},null,8,_3)):f("v-if",!0),e.details?.title?f("v-if",!0):(l(),d("span",E3,"Untitled pull request")),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:2,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[2]||(t[2]=[s("i",{class:"far fa-edit"},null,-1),s("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,C3)):f("v-if",!0)]),s("div",N3,[s("span",{class:O(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[s("span",{class:O(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),v(" "+c(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(l(),d("span",S3,[t[3]||(t[3]=s("i",{class:"fab fa-github"},null,-1)),t[4]||(t[4]=v()),s("span",{textContent:c(e.details?.baseRepositoryFullName)},null,8,D3)])):f("v-if",!0),e.details?.updatedDate?(l(),d("span",R3,[t[5]||(t[5]=s("i",{class:"far fa-clock"},null,-1)),t[6]||(t[6]=v()),s("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,T3)])):f("v-if",!0),e.details?.anonymizeDate?(l(),d("span",O3,[t[7]||(t[7]=s("i",{class:"fas fa-user-secret"},null,-1)),t[8]||(t[8]=v(" Anonymized ",-1)),s("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,A3)])):f("v-if",!0)])]),e.details?.body?(l(),d("section",I3,[t[9]||(t[9]=s("div",{class:"paper-section-eyebrow"},"Description",-1)),De(o,{content:e.details?.body},null,8,["content"])])):f("v-if",!0),e.details?.diff||e.details?.comments?(l(),d("nav",V3,[e.details?.diff?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",onClick:t[0]||(t[0]=r=>e.tabState.active="diff")},[...t[10]||(t[10]=[s("i",{class:"fas fa-code"},null,-1),v(" Diff ",-1)])],2)):f("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",onClick:t[1]||(t[1]=r=>e.tabState.active="comments")},[t[11]||(t[11]=s("i",{class:"far fa-comment-dots"},null,-1)),s("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,P3)],2)):f("v-if",!0)])):f("v-if",!0),s("div",q3,[e.details?.diff&&e.tabState?.active=="diff"?(l(),d("div",M3,[s("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,$3)])):f("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",L3,[s("ul",F3,[(l(!0),d(Y,null,oe(e.details?.comments,(r,n)=>(l(),d("li",U3,[s("div",z3,[r?.author?(l(),d("span",H3,[t[12]||(t[12]=s("i",{class:"far fa-user"},null,-1)),t[13]||(t[13]=v(" @",-1)),s("span",{textContent:c(r?.author)},null,8,B3)])):f("v-if",!0),r?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(r?.updatedDate))},null,8,G3)):f("v-if",!0)]),r?.body?(l(),d("div",j3,[De(o,{content:r?.body},null,8,["content"])])):f("v-if",!0)]))),256)),e.details?.comments?.length?f("v-if",!0):(l(),d("li",W3,[...t[14]||(t[14]=[s("i",{class:"far fa-comment-dots"},null,-1),s("span",null,"No comments on this pull request.",-1)])]))])])):f("v-if",!0)])])])}var K3={class:"container paper-page"},Y3={class:"d-flex align-items-end justify-content-between flex-wrap",style:{gap:"12px"}},J3={class:"paper-page-title"},Q3=["textContent"],X3={key:1},Z3={class:"paper-settings-section"},x3={key:0,class:"paper-ratelimit-card",role:"status"},eq={class:"paper-error-msg"},tq=["aria-valuenow"],sq={class:"paper-progress-label"},nq=["textContent"],oq={key:0},rq=["textContent"],iq={class:"paper-progress-pct"},aq={key:2,class:"paper-error-card",role:"alert"},lq={key:0,class:"paper-error-msg"},dq={key:1,class:"paper-error-msg"},uq={class:"paper-error-actions"},cq=["href"],pq={class:"paper-detail-grid"},fq={class:"detail-value"},mq=["href"],hq={key:0,class:"detail-label"},vq={key:1,class:"detail-value"},yq=["href"],gq={key:3,class:"anonymize-submit-bar"},bq=["href"],wq=["href"];function gl(e,t){return l(),d("div",K3,[t[16]||(t[16]=s("div",{class:"paper-crumbs"},[v("Anonymization \xA0/\xA0 "),s("span",{class:"here"},"Status")],-1)),s("div",Y3,[s("div",null,[s("h1",J3,[t[0]||(t[0]=v("Status of ",-1)),s("em",null,c(e.repoId),1)]),t[1]||(t[1]=s("p",{class:"paper-page-lede"},"Track progress as your anonymization is prepared.",-1))]),s("span",{class:O(["status-pill",{"status-pill-ready":e.repo?.status=="ready","status-pill-error":e.repo?.status=="error","status-pill-removed":e.repo?.status=="removed"||e.repo?.status=="expired","status-pill-ratelimit":e.rateLimitResetAt}])},[s("span",{class:O(["status-dot",{"status-ready":e.repo?.status=="ready","status-error":e.repo?.status=="error","status-removed":e.repo?.status=="removed"||e.repo?.status=="expired","status-ratelimit":e.rateLimitResetAt}])},null,2),e.rateLimitResetAt?f("v-if",!0):(l(),d("span",{key:0,textContent:c(e.fmt?.title(e.repo?.status))},null,8,Q3)),e.rateLimitResetAt?(l(),d("span",X3,"Rate limited")):f("v-if",!0)],2)]),s("section",Z3,[t[14]||(t[14]=s("div",{class:"paper-section-eyebrow"},"Progress",-1)),t[15]||(t[15]=s("p",{class:"paper-section-copy"},[v(" The repository will take a few minutes to get ready, depending on its size. Visit the "),s("a",{href:"/faq"},"FAQ"),v(" for more information. ")],-1)),e.rateLimitResetAt?(l(),d("div",x3,[t[4]||(t[4]=s("div",{class:"paper-ratelimit-head"},[s("i",{class:"fas fa-hourglass-half"}),s("div",null,[s("div",{class:"paper-error-eyebrow"},"Temporarily paused"),s("div",{class:"paper-error-title"},"GitHub API rate limit reached")])],-1)),s("p",eq,[t[2]||(t[2]=v("Anonymization will resume automatically in ",-1)),s("strong",null,c(e.rateLimitCountdown),1),t[3]||(t[3]=v(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):f("v-if",!0),e.repo?.status!="error"&&!e.rateLimitResetAt?(l(),d("div",{key:1,class:O(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[s("div",{class:"paper-progress-bar",style:Ve("width: "+e.progress+"%;")},null,4),s("div",sq,[s("span",{textContent:c(e.fmt?.title(e.repo?.status))},null,8,nq),e.repo?.statusMessage?(l(),d("span",oq,[t[5]||(t[5]=v("\xA0\xB7\xA0",-1)),s("span",{textContent:c(e.repo?.statusMessage)},null,8,rq)])):f("v-if",!0),s("span",iq,c(e.progress||0)+"%",1)])],10,tq)):f("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(l(),d("div",aq,[t[9]||(t[9]=s("div",{class:"paper-error-head"},[s("i",{class:"fas fa-exclamation-triangle"}),s("div",null,[s("div",{class:"paper-error-eyebrow"},"Anonymization failed"),s("div",{class:"paper-error-title"},"Something went wrong while preparing this repository.")])],-1)),e.repo?.statusMessage?(l(),d("p",lq,c(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):f("v-if",!0),e.repo?.statusMessage?f("v-if",!0):(l(),d("p",dq,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),t[10]||(t[10]=s("ul",{class:"paper-error-hints"},[s("li",null,"Make sure the source URL points to a repository or pull request you can access."),s("li",null,"Check that the chosen branch and commit still exist on GitHub."),s("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),s("div",uq,[s("a",{class:"btn btn-ink",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[6]||(t[6]=[s("i",{class:"far fa-edit mr-1"},null,-1),v(" Edit anonymization",-1)])],8,cq),t[7]||(t[7]=s("a",{class:"btn",href:"/faq"},[s("i",{class:"far fa-question-circle mr-1"}),v(" Read the FAQ")],-1)),t[8]||(t[8]=s("a",{class:"btn",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[s("i",{class:"fas fa-bug mr-1","aria-hidden":"true"}),v(" Report a bug in Anonymous GitHub")],-1))])])):f("v-if",!0),s("div",pq,[t[11]||(t[11]=s("div",{class:"detail-label"},"Repository",-1)),s("div",fq,[s("a",{target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},"/r/"+c(e.repoId)+"/",9,mq)]),e.repo?.options?.page?(l(),d("div",hq,"GitHub Page")):f("v-if",!0),e.repo?.options?.page?(l(),d("div",vq,[s("a",{target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},"/w/"+c(e.repoId)+"/",9,yq)])):f("v-if",!0)]),e.repo?.status=="ready"?(l(),d("div",gq,[s("a",{class:"btn btn-ink",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[12]||(t[12]=[s("i",{class:"far fa-eye mr-1"},null,-1),v(" Go to anonymized repository ",-1)])],8,bq),e.repo?.options?.page?(l(),d("a",{key:0,class:"btn",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[13]||(t[13]=[s("i",{class:"fas fa-globe mr-1"},null,-1),v(" Go to anonymized GitHub page ",-1)])],8,wq)):f("v-if",!0)])):f("v-if",!0)]),t[17]||(t[17]=ge('
Support Anonymous GitHub

A small team keeps this running. If it helps you, please consider contributing back \u2014 in code, ideas, or coffee.

',1))])}var Jn={"partials/connections.htm":ja,"partials/signin.htm":Wa,"partials/404.htm":Ka,"partials/admin/conferences.htm":Ya,"partials/admin/errors.htm":Ja,"partials/admin/overview.htm":Qa,"partials/admin/queues.htm":Xa,"partials/admin/repositories.htm":Za,"partials/admin/user.htm":xa,"partials/admin/users.htm":el,"partials/anonymize.htm":tl,"partials/anonymizePullRequest.htm":sl,"partials/claim.htm":nl,"partials/conference.htm":ol,"partials/conferences.htm":rl,"partials/dashboard.htm":il,"partials/explorer.htm":al,"partials/faq.htm":ll,"partials/gist.htm":dl,"partials/header.htm":ul,"partials/home.htm":cl,"partials/loading.htm":pl,"partials/newConference.htm":fl,"partials/pageView.htm":ml,"partials/pr-dashboard.htm":hl,"partials/profile.htm":vl,"partials/pullRequest.htm":yl,"partials/status.htm":gl};function bl(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"}),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let r={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(r){let n=tt(()=>t.fmt.orderBy(t.fmt.filter(r[1](),t[r[2]]),t.orderBy));Object.defineProperty(t,r[0],{configurable:!0,get:()=>n.value})}}function wl(e=(...t)=>fetch(...t)){async function t(r,n,i,a={}){let u=new URL(n,window.location.href);for(let[y,g]of Object.entries(a.params||{}))if(g!=null)for(let m of Array.isArray(g)?g:[g])u.searchParams.append(y,typeof m=="object"?JSON.stringify(m):m);let p=new AbortController,h;a.timeout?.then?a.timeout.then(()=>p.abort()):a.timeout&&(h=setTimeout(()=>p.abort(),a.timeout));try{let y={Accept:"application/json, text/plain, */*",...a.headers},g=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);g&&u.origin===window.location.origin&&(y["X-XSRF-TOKEN"]=decodeURIComponent(g[1]));let m;i!==void 0&&(i instanceof FormData?m=i:(y["Content-Type"]||(y["Content-Type"]="application/json;charset=utf-8"),m=JSON.stringify(i)));let w=await e(u.href,{method:r,headers:y,body:m,credentials:"same-origin",signal:p.signal}),k=await w.text(),b=k;if(a.transformResponse)b=a.transformResponse(k);else if(k&&(/json/i.test(w.headers.get("content-type")||"")||/^[\[{]/.test(k.trim())))try{b=JSON.parse(k)}catch{}let T={data:b,status:w.status,headers:N=>w.headers.get(N)};if(!w.ok)throw T;return T}catch(y){throw y.name==="AbortError"?{status:-1,data:null}:y}finally{clearTimeout(h)}}let o={};for(let r of["get","delete","head"])o[r]=(n,i)=>t(r.toUpperCase(),n,void 0,i);for(let r of["post","put","patch"])o[r]=(n,i,a)=>t(r.toUpperCase(),n,i,a);return o}var kl={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((r,n)=>{e=r,t=n}),resolve:e,reject:t}}};var _l=function(e){function t(o){return o=o||{used:0,total:0},o.unlimited=!o.total,o.percent=o.unlimited?0:Math.min(100,o.used*100/o.total),o.level=o.unlimited?"unlimited":o.percent>=95?"danger":o.percent>=80?"warn":"ok",o}return{decorate:t,load:function(){return e.get("/api/user/quota").then(o=>{let r=o.data||{};return r.storage=t(r.storage),r.file=t(r.file),r.repository=t(r.repository),r})}}};var Qo={};zl(Qo,{bigNum:()=>_q,date:()=>Vq,diff:()=>Dq,filter:()=>Aq,humanFileSize:()=>kq,humanTime:()=>Eq,limitTo:()=>Oq,number:()=>Rq,orderBy:()=>Iq,plural:()=>Pq,statusLabel:()=>Nq,statusMsg:()=>Sq,title:()=>Cq,uppercase:()=>Tq});var kq=e=>window.humanFileSize(e),_q=(function(){return function(t){let o=Number(t)||0,r=Math.abs(o);return r<1e3?String(o):r<1e4?(o/1e3).toFixed(1).replace(/\.0$/,"")+"k":r<1e6?Math.round(o/1e3)+"k":r<1e7?(o/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(o/1e6)+"M"}})(),Eq=(function(){return function(t){if(!t)return"never";t instanceof Date&&(t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(t=Math.round((Date.now()-new Date(t))/1e3));var o=t<0?"from now":"ago";if(Math.abs(t)>7200*24){let p=new Date;return p.setSeconds(p.getSeconds()-t),"on "+p.toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}t=Math.abs(t);for(var r=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],n=["year","month","week","day","hour","minute","second"],i=0;i1&&(u+="s"),a>=1)return a+" "+u+" "+o}return"0 seconds "+o}})(),Cq=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),o=t.map(function(r){return r.charAt(0).toUpperCase()+r.substring(1,r.length)});return o.join(" ")}})(),Nq=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var o=String(t).replace(/[_-]+/g," ").toLowerCase();return o.charAt(0).toUpperCase()+o.slice(1)}})(),Sq=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var o=t.match(/^rate_limited:(\d+)$/);if(o){var r=Math.max(0,Math.ceil((parseInt(o[1],10)-Date.now())/1e3));if(r<=0)return"Rate limited \u2014 resuming soon";var n=Math.floor(r/60),i=r%60;return"Rate limited \u2014 retrying in "+(n>0?n+"m "+i+"s":i+"s")}if(e[t])return e[t];if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var a=t.replace(/_/g," ");return a.charAt(0).toUpperCase()+a.slice(1)}return t}})(),Dq=(function(e){let t=r=>r.replace(/&/g,"&").replace(//g,">");function o(r,n){if(!n)return;let i=n.newPath&&n.newPath!=="/dev/null"?n.newPath:n.oldPath||"",a=n.oldPath==="/dev/null"?"added":n.newPath==="/dev/null"?"deleted":n.oldPath&&n.newPath&&n.oldPath!==n.newPath?"renamed":"modified";if(r.push('
'),r.push('
'+t(i)+''+a+"
"),n.lines.length){r.push('');for(let u of n.lines)r.push('");r.push("
'+(u.oldNo||"")+''+(u.newNo||"")+''+(u.kind==="add"?"+":u.kind==="remove"?"-":u.kind==="hunk"?"@":"")+''+t(u.text)+"
")}r.push("
")}return function(r){if(!r)return r;let n=[],i=null,a=0,u=0,p=()=>(i||(i={oldPath:"",newPath:"",lines:[]}),i),h=()=>{i&&(i.lines.length||i.oldPath||i.newPath)&&(o(n,i),i=null)},y=r.split(` +`);for(let g=0;ge});function Rq(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function Tq(e){return String(e??"").toUpperCase()}function Oq(e,t,o=0){return(e||[]).slice(o,o+t)}function Aq(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function Iq(e,t){if(!t)return e||[];let o=Array.isArray(t)?t:[t];return[...e||[]].sort((r,n)=>{for(let i of o){let a=i[0]==="-"?-1:1;i=i.replace(/^[+-]/,"");let u=i.split(".").reduce((h,y)=>h?.[y],r),p=i.split(".").reduce((h,y)=>h?.[y],n);if(typeof u=="string"&&(u=u.toLowerCase()),typeof p=="string"&&(p=p.toLowerCase()),u!==p)return(u==null?-1:p==null?1:ur[n])}function Pq(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}var El={ERRORS:{repository_job_cancelled:"The repository changed or was removed while processing.",storage_delete_failed:"Unable to remove cached files. Please try again later.",unknown_error:"Unknown error, contact the admin.",unreachable:"Anonymous GitHub is unreachable, contact the admin.",request_error:"Unable to download the file, check your connection or contact the admin.",not_found:"The requested resource could not be found.",not_connected:"You must be logged in to perform this action.",not_authorized:"You do not have permission to perform this action.",unable_to_connect_user:"Unable to connect your account. Please try again later.",user_not_found:"The requested user could not be found.",user_banned:"Your account has been banned. Contact the admin for more information.",repo_access_limited:"GitHub blocked access because the repository's organization restricts third-party OAuth apps. Ask an org owner to approve Anonymous GitHub under Settings \u2192 Third-party Access \u2192 OAuth app policy, or anonymize a personal fork instead.",repo_saml_enforcement:"The repository's organization enforces SAML single sign-on. Authorize your token for that organization (GitHub \u2192 Settings \u2192 Applications, or re-run the org's SSO sign-in), then retry. Alternatively, anonymize a personal fork.",repo_not_found:"The repository was not found on GitHub. Check the URL and spelling, make sure you are signed in to the account that can see it, and confirm the repo isn't hidden under an org that restricts third-party app access.",repo_empty:"The selected branch has no commits on GitHub. Push at least one commit, or pick a different branch, then retry.",repo_not_accessible:"Anonymous GitHub cannot access this repository. Verify the repository exists and that Anonymous GitHub has been authorized for the owning organization.",repository_archived:"This repository has been archived and its files are no longer available.",repository_expired:"The repository is expired.",invalid_status:"This action cannot be performed while the resource is in its current state.",repository_not_ready:"Anonymous GitHub is still processing the repository, it can take several minutes.",repository_not_accessible:"This repository is currently not accessible.",repo_is_updating:"Anonymous GitHub is still processing the repository, it can take several minutes.",invalid_repo:"The provided repository is not valid.",invalid_source_repository:"The repository source name is invalid; expected the form 'owner/name'.",repoId_not_defined:"A repository ID must be provided.",repoUrl_not_defined:"The repository URL needs to be defined.",source_not_provided:"A repository source must be provided.",github_rate_limit_exceeded:"GitHub temporarily blocked the request because we hit its API rate limit. Wait a few minutes and try again. If the problem persists and you contact GitHub Support, include the request ID and timestamp shown in GitHub's response (the 'X-GitHub-Request-Id' header).",rate_limited:"GitHub API rate limit reached. The repository will be available shortly \u2014 please wait a moment and refresh.",repoId_already_used:"The repository ID is already used.",invalid_repoId:"The format of the repository ID is invalid.",unsupported_source:"The repository source type is not supported.",branch_not_specified:"The branch is not specified.",branch_not_found:"The branch of the repository cannot be found.",commit_not_specified:"A commit must be specified.",commit_not_found:"The configured commit no longer exists in the source repository. It may have been force-pushed, rebased, or removed.",repo_renamed:"The source repository appears to have been renamed or moved on GitHub. Please refresh and try again \u2014 the cached name has been updated.",invalid_commit_format:"The commit hash format is invalid. It must be a hexadecimal string.",pull_request_not_found:"The requested pull request could not be found.",pull_request_expired:"This pull request has expired and is no longer available.",pull_request_not_ready:"This pull request is still being prepared. Please try again shortly.",pull_request_not_available:"This pull request is currently not available.",invalid_pullRequestId:"The pull request ID is invalid.",pullRequestId_already_used:"This pull request ID is already in use. Please choose a different one.",repository_not_specified:"A repository must be specified for this pull request.",pullRequestId_not_specified:"A pull request ID must be specified.",pullRequestId_is_not_a_number:"The source pull request ID must be a number.",options_not_provided:"Anonymization options are mandatory.",terms_not_specified:"Anonymization terms must be specified.",invalid_terms_format:"Terms are in an invalid format.",missing_content:"No content was provided to the anonymization preview.",unable_to_anonymize:"An error happened during the anonymization process. Please try later or report the issue.",non_supported_mode:"The selected anonymization mode is invalid, only download and stream are supported.",invalid_path:"The provided path is invalid or missing.",path_not_specified:"A file path must be specified.",path_not_defined:"The file path has not been resolved yet.",invalid_file_path:"The requested file path is not valid.",invalid_request:"The request is missing required fields or is malformed.",no_file_selected:"Please select a file.",file_not_found:"The requested file is not found.",file_not_accessible:"The requested file is not accessible.",file_not_supported:"The file type is not supported. Anonymous GitHub cannot handle it.",file_too_big:"The file size exceeds the limit of Anonymous GitHub.",is_folder:"The path points to a folder.",folder_not_supported:"The path points to a folder. Please select a file.",unable_to_write_file:"Unable to write file on disk.",download_not_enabled:"Repository downloads are not enabled on this server.",unable_to_download:"The repository could not be downloaded. Please try again later.",s3_config_not_provided:"Object storage has not been configured on this server.",stats_unsupported:"Statistics are only supported in download mode.",branches_not_found:"The requested branch is not found.",readme_not_available:"No README for the repository is found.",page_not_supported_on_different_branch:"GitHub Pages is served from a different branch than the one selected. Pick the branch that GitHub Pages is configured to use.",page_not_activated:"GitHub Pages is not enabled on this repository. Enable it in the repository settings on GitHub before anonymizing.",is_removed:"This resource has been removed and is no longer available.",conf_name_missing:"A conference name is required.",conf_id_missing:"A conference ID is required.",conf_id_used:"This conference ID is already in use. Please choose a different one.",conf_start_date_missing:"A start date is required for the conference.",conf_end_date_missing:"An end date is required for the conference.",conf_start_date_invalid:"The start date must be before the end date.",conf_end_date_invalid:"The end date must be in the future.",invalid_plan:"The selected plan is not valid.",conference_not_found:"The requested conference could not be found.",conf_not_found:"The requested conference could not be found.",conf_not_activated:"The conference is not activated.",billing_missing:"Billing information is required for this plan.",billing_name_missing:"A billing name is required.",billing_email_missing:"A billing email is required.",billing_address_missing:"A billing address is required.",billing_city_missing:"A billing city is required.",billing_zip_missing:"A billing ZIP/postal code is required.",billing_country_missing:"A billing country is required.",queue_not_found:"The specified queue could not be found.",job_not_found:"The specified job could not be found in the queue.",error_retrying_job:"An error occurred while retrying the job.",gist_expired:"The gist is expired.",gist_not_ready:"Anonymous GitHub is still processing the gist, it can take several minutes.",gist_not_found:"The requested gist could not be found.",gist_not_available:"This gist is currently not available.",invalid_gistId:"The format of the gist ID is invalid.",gistId_not_specified:"A gist ID must be provided.",gistId_already_used:"The gist ID is already used.",missing_token:"An authentication token is required.",invalid_token:"The provided authentication token is invalid.",login_failed:"Login failed. Please try again.",server_error:"An unexpected server error occurred. Please try again later.",username_not_defined:"A username must be provided.",github_user_not_found:"The specified GitHub user could not be found.",cannot_coauthor_self:"You cannot add yourself as a co-author.",storage_write_size_mismatch:"The downloaded file was smaller than expected. The upstream source may have returned an incomplete response \u2014 please try again.",storage_read_error:"An error occurred while reading the file from storage \u2014 please try again.",upstream_error:"A temporary error occurred while fetching from GitHub \u2014 please try again.",token_expired:"Your GitHub access token has expired. Please log out and log in again to refresh it.",job_is_active:"This job is currently running \u2014 wait for it to finish or remove it first.",github_app_access_required:"Allow this repository on GitHub using the read-only access button, then retry. Organization access may require administrator approval.",github_app_reconnect_required:"Reconnect your GitHub App account to restore read-only access.",github_app_disabled:"New GitHub App connections are currently unavailable.",github_oauth_required:"Connect legacy GitHub OAuth to use this feature.",github_identity_mismatch:"Use the same GitHub account that you are signed in with here.",github_app_permissions_invalid:"The GitHub App must be configured with read-only permissions.",github_unavailable:"GitHub is temporarily unavailable. Please retry.",connection_changed:"The repository connection changed. Reload and try again.",repository_busy:"Wait for the repository operation to finish before changing its connection.",invalid_connection:"Select a supported GitHub connection.",github_oauth_disabled:"Legacy OAuth sign-in is currently disabled.",invalid_auth_state:"The authorization session expired. Please start again from Anonymous GitHub.",invalid_webhook_signature:"The webhook signature is invalid.",webhook_processing_failed:"Webhook processing failed. Retry the delivery.",github_app_authorization_cancelled:"GitHub authorization was cancelled.",github_account_link_required:"This username belongs to an existing account. Sign in with legacy GitHub OAuth to keep access to your existing anonymizations, then connect the read-only GitHub App from GitHub connections.",github_app_refresh_busy:"GitHub credentials are being renewed. Please retry shortly.",github_grant_revocation_failed:"Unable to revoke the GitHub grant. Please retry.",another_login_required:"Connect and verify another sign-in method before disconnecting OAuth.",oauth_resources_remaining:"Some resources still require OAuth. Migrate or remove them before disconnecting.",invalid_github_path:"The GitHub repository path is invalid."},WARNINGS:{page_not_enabled_on_repo:"GitHub Pages is not enabled on this repository. Enable it in the repository's Settings \u2192 Pages on GitHub, then refresh.",page_branch_mismatch:"GitHub Pages on this repository is served from the '{{pageBranch}}' branch, but you selected '{{selectedBranch}}'. Switch the branch above to '{{pageBranch}}' to anonymize the Pages site.",folder_truncated:"This folder has more than 10,000 entries; only a partial listing is shown.",repo_truncated:"Some folders in this repository have too many files to be fully listed. Affected folders are marked with a warning icon.",submodules_not_included:"This repository uses git submodules. Submodule contents are not included in the anonymized repository and appear as empty folders."}};var Cl={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=Ze(null);return It(()=>{let r=[t.value][0];r.classList.add("html-doc");function n(){r.innerHTML="";let i=e.content;if(typeof i!="string")return;let a=document.createElement("iframe");a.className="html-doc-frame",a.setAttribute("title","Rendered HTML document");let u=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&u.push("allow-scripts","allow-forms","allow-modals"),a.setAttribute("sandbox",u.join(" ")),a.setAttribute("referrerpolicy","no-referrer"),r.appendChild(a);let p="";e.baseUrl&&(p=''),a.srcdoc=p+i}He(()=>e.content,n,{immediate:!0}),He(()=>e.baseUrl,n,{immediate:!0}),He(()=>e.allowScripts,n,{immediate:!0})}),()=>Ne("html-doc",{ref:t})}};var Nl={name:"pdfviewer",props:["src"],setup(e){let t=Ze(null);return It(()=>{let o=[t.value],r=400,n=[.5,.75,1,1.25,1.5,2,3],i=1e3,a=o[0];a.classList.add("pdf-viewer");let u=null,p=[],h=!1,y=null,g=1,m=1,w=0,k=0,b=612/792,T=0,N=document.createElement("div");N.className="pdf-toolbar";let R=document.createElement("div");R.className="pdf-pages",R.tabIndex=0,R.setAttribute("aria-label","PDF pages"),a.appendChild(N),a.appendChild(R);function I(F,W,fe){let Ce=document.createElement("button");return Ce.type="button",Ce.className="pdf-toolbar-btn",Ce.title=W,Ce.setAttribute("aria-label",W),Ce.innerHTML='',Ce.addEventListener("click",fe),Ce}let C=I("fa-chevron-up","Previous page",function(){be(m-1)}),A=I("fa-chevron-down","Next page",function(){be(m+1)}),q=document.createElement("input");q.type="text",q.className="pdf-toolbar-page",q.setAttribute("aria-label","Page number"),q.title="Page number \u2014 type a page and press Enter",q.addEventListener("keydown",function(F){F.key==="Enter"&&(be(parseInt(q.value,10)),q.blur())}),q.addEventListener("blur",function(){q.value=String(m)});let x=document.createElement("span");x.className="pdf-toolbar-count";let X=I("fa-search-minus","Zoom out",function(){qe(n[Math.max(0,re()-1)])}),K=I("fa-search-plus","Zoom in",function(){qe(n[Math.min(n.length-1,re()+1)])}),U=document.createElement("button");U.type="button",U.className="pdf-toolbar-btn pdf-toolbar-zoom",U.title="Reset zoom to fit the width",U.setAttribute("aria-label","Reset zoom to fit the width"),U.addEventListener("click",function(){qe(1)}),N.appendChild(C),N.appendChild(A);let ue=document.createElement("span");ue.className="pdf-toolbar-group",ue.appendChild(q),ue.appendChild(x),N.appendChild(ue);let te=document.createElement("span");te.className="pdf-toolbar-group pdf-toolbar-right",te.appendChild(X),te.appendChild(U),te.appendChild(K),N.appendChild(te);function re(){let F=0;for(let W=0;W=F,U.textContent=Math.round(g*100)+"%",X.disabled=re()===0,K.disabled=re()===n.length-1}function me(F){let W=p[F-1];W&&(R.scrollTop+=W.getBoundingClientRect().top-R.getBoundingClientRect().top)}function be(F){if(!u||isNaN(F))return;let W=Math.min(Math.max(1,F),u.numPages);p[W-1]&&(me(W),m=W,w=W,k=Date.now()+800,pe(),V())}function he(){if(!p.length||Date.now()Ce||S.bottome.src,ne,{immediate:!0}),ss(function(){R.removeEventListener("scroll",H),$(window).off("resize",L),le()})}),()=>Ne("pdfviewer",{ref:t})}};var Dl={props:["content","terms","options"],setup(e){let t=Ze(null),o=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../")};return It(()=>{o(),He(()=>[e.content,e.terms,e.options],o,{deep:!0})}),()=>Ne("markdown",{ref:t})}},Mq={props:["file","terms","options"],setup(e){let t=Ze(null),o=()=>_t(()=>t.value?.querySelectorAll("pre code").forEach(r=>window.Prism?.highlightElement(r)));return It(o),He(()=>[e.file?.content,e.terms,e.options],o,{deep:!0}),()=>{let r=e.file||{},n=(r.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(n)||r.language==="Markdown")return Ne("gist-file",{ref:t},Ne(Dl,{content:r.content,terms:e.terms,options:e.options}));let i={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},a=(r.language||n||"none").toLowerCase();return Ne("gist-file",{ref:t},Ne("pre",{class:"line-numbers"},Ne("code",{class:"language-"+(i[a]||a),key:r.content},r.content||"")))}}},$q={props:["file","content"],setup(e){let t=Ze(null),o=0,r,n=async()=>{let i=++o;r?.abort(),r=new AbortController;try{let a=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:r.signal}).then(u=>{if(!u.ok)throw Error("Notebook request failed");return u.json()});if(await Wt("notebook"),i!==o)return;t.value.innerHTML=DOMPurify.sanitize(nb.parse(a).render()),t.value.querySelectorAll("pre code").forEach(u=>window.Prism?.highlightElement(u))}catch(a){i===o&&a.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return It(()=>{n(),He(()=>[e.file,e.content],n)}),ss(()=>{o++,r?.abort()}),()=>Ne("notebook",{ref:t})}},Lq={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,r])=>r.code),o=t.reduce((r,[,n])=>r+n.code,0);return Ne("loc",t.map(([r,n])=>Ne("div",{class:"lang",title:`${r}: ${n.code.toLocaleString()} lines`,style:{width:n.code*100/o+"%",background:langColors[r]}})))}}},Rl={Markdown:Dl,GistFile:Mq,Notebook:$q,Loc:Lq,HtmlDoc:Cl,Pdfviewer:xr(async()=>(await Wt("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",Nl))},Tl={async mounted(e,{value:t}){e._editorValue=t;try{if(await tr(),e._editorDisposed)return;let o=e._editorValue,r=ace.edit(e);e._editor=r,r.setValue(String(o.content??""),-1),Sl(e,o.options),o.options?.onLoad?.(r)}catch(o){e._editorDisposed||(e.textContent=o.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),Sl(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editor?.destroy()}};function Sl(e,t={}){t.mode&&e._editor.session.setMode("ace/mode/"+t.mode),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var Ol={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],o=new Set,r=new IntersectionObserver(n=>{n.forEach(a=>a.isIntersecting?o.add(a.target.id):o.delete(a.target.id));let i=t.find(a=>o.has(a.hash.slice(1)));t.forEach(a=>a.classList.toggle("active",a===i))},{rootMargin:"-20% 0px -60% 0px",threshold:0});_t(()=>t.forEach(n=>{let i=document.getElementById(n.hash.slice(1));i&&r.observe(i)})),e._observer=r},beforeUnmount(e){e._observer?.disconnect()}};function Fq(e){let t={children:[]},o=new Map([["",t]]);function r(n){if(o.has(n))return o.get(n);let i=n.lastIndexOf("/"),a=r(i<0?"":n.slice(0,i)),u={name:n.slice(i+1),children:[]};return o.set(n,u),a.children.push(u),u}for(let n of e||[]){let i=n.path?`${n.path}/${n.name}`:n.name;n.size==null?r(i):r(n.path||"").children.push({...n})}return t.children}var Al={name:"FileTree",props:["file","parent","searchQuery","searchResults","page"],setup(e){let t=Ea(),o=Ze(null),r=ze(Object.create(null)),n=null,i=tt(()=>Fq(e.file)),a=()=>"/"+(Array.isArray(t.params.path)?t.params.path.join("/"):t.params.path||"");He(()=>[t.params.repoId,t.params.path],()=>{let m="";a().split("/").filter(Boolean).forEach(w=>{m+="/"+w,r[m]=!0})},{immediate:!0});let u=tt(()=>{if(!e.searchQuery||!e.searchResults)return null;let m=new Set,w=new Set;return e.searchResults.forEach(k=>{m.add(k.path?`${k.path}/${k.name}`:k.name);let b="";(k.path||"").split("/").filter(Boolean).forEach(T=>{b=b?b+"/"+T:T,w.add(b)})}),{files:m,folders:w}}),p=()=>[...o.value.querySelectorAll("li > a")],h=m=>{o.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),m&&(n=m.dataset.path,m.classList.add("tree-focused"),m.scrollIntoView?.({block:"nearest"}),o.value.focus())};function y(m){let w=p(),k=o.value.querySelector(".tree-focused")||w[0],b=w.indexOf(k);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(m.key)||(m.preventDefault(),m.key==="ArrowDown"&&h(w[(b+1)%w.length]),m.key==="ArrowUp"&&h(w[(b-1+w.length)%w.length]),!k))return;let T=k.closest("li");m.key==="ArrowRight"&&T.classList.contains("folder")&&(T.classList.contains("open")?h(T.querySelector(":scope > ul > li > a")):k.click()),m.key==="ArrowLeft"&&(T.classList.contains("folder")&&T.classList.contains("open")?k.click():h(T.parentElement.closest("li.folder")?.querySelector(":scope > a"))),m.key==="Enter"&&k.click()}function g(m,w=""){let k=[...m].sort((b,T)=>+!!T.children-+!!b.children||b.name.localeCompare(T.name));return Ne("ul",k.flatMap(b=>{let T=b,N=T.name,R=(w+"/"+N).slice(1);if(u.value&&!u.value.files.has(R)&&!u.value.folders.has(R))return[];for(;T.children?.length===1;)T=T.children[0],N+="/"+T.name;let I=w+"/"+N,C=!!T.children,A=u.value?r[I]!==!1:!!r[I],q=C&&e.page?.options?.truncatedFolders?.includes(I.slice(1)),x=e.page?.fileCounts?.[I.slice(1)]||0,X=Ne("span",{class:C?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},C?Ne("svg",{viewBox:"0 0 14 12",focusable:"false"},Ne("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),K=Ne("span",{class:"tree-name"},N),U=te=>{h(te.currentTarget),C&&(te.preventDefault(),r[I]=!A,r[I]&&!T.children.length&&e.page.getFiles(I.slice(1)),_t(()=>h(p().find(re=>re.dataset.path===n))))},ue=Ne("a",{"data-path":I,href:C?void 0:`/r/${encodeURIComponent(t.params.repoId)}${encodePathForUrl(I)}`,class:{"tree-focused":n===I},onClick:U},[C?Ne("span",{class:"tree-toggle"}):w?Ne("span",{class:"tree-spacer"}):null,X,K,q?Ne("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},Ne("i",{class:"fas fa-exclamation-triangle"})):null,C&&x?Ne("span",{class:"tree-count"},x):null]);return Ne("li",{key:I,class:{file:!0,folder:C,open:A,active:a()===I,truncated:q},title:C?"":`Size: ${humanFileSize(T.size||0)}`},[ue,C&&A?g(T.children,I):null])}))}return()=>Ne("tree",{ref:o,tabindex:0,onKeydown:y},e.file?.length?u.value?.files.size===0?Ne("div",{class:"tree-search-empty"},"No files found"):g(i.value):"Empty repository")}};function Vl(){return ze({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function Pl(e,t){if(!e[t]){let o=Vl();Object.defineProperty(o,"invalid",{get(){return Object.values(o.errors).some(Boolean)||Object.keys(o).some(r=>r!=="invalid"&&o[r]&&typeof o[r]=="object"&&o[r].invalid)}}),e[t]=o}return e[t]}var ql={beforeMount(e,{value:t}){e._formState=Pl(t,e.name),e.addEventListener("submit",o=>o.preventDefault())}};function Uq(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function Il(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?Uq(t):t??""),Xo(e)}function Xo(e){let t=e._field.validation;if(!t)return;let o=e.validity;for(let[r,n]of Object.entries({required:o.valueMissing,pattern:o.patternMismatch,min:o.rangeUnderflow,max:o.rangeOverflow,date:o.badInput,email:o.typeMismatch&&e.type==="email",url:o.typeMismatch&&e.type==="url"}))t.setValidity(r,e.disabled||!n)}var Ml={beforeMount(e,{value:t}){var a;let o=t.form&&Pl(t.state,t.form),r=o&&e.name?o[a=e.name]||(o[a]=Vl()):null;e._field={binding:t,validation:r,timer:null};let n=()=>{clearTimeout(e._field.timer),e._field.timer=null;let u=e._field.binding,p=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(p=e.value===""?null:Number(e.value)),e.type==="date"&&(p=e.value?new Date(e.value+"T00:00:00"):null),r){r.setDirty();for(let h of Object.keys(r.errors))r.setValidity(h,!0)}u.set(p),Xo(e),u.change?.()}};e._field.commit=n;let i=u=>{let p=e._field.binding.options?.debounce||0,h=typeof p=="number"?p:p[u.type]??p.default??0;clearTimeout(e._field.timer),h?e._field.timer=setTimeout(n,h):n()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",i),e.addEventListener("blur",()=>{r&&(r.touched=!0),e._field.timer&&n()})},mounted:Il,updated(e,{value:t}){e._field.binding=t,Il(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:o}=e._field,r=t.form&&t.state[t.form];r&&r[e.name]===o&&delete r[e.name]}};function $l(e,t){let o=e.target.closest("form");if(o?._formState&&(o._formState.submitted=!0),o?.querySelectorAll("input, select, textarea").forEach(r=>{r._field?.timer&&r._field.commit(),r._field&&Xo(r)}),o&&!o.checkValidity()){let r=o.querySelector(":invalid");r?.scrollIntoView?.({block:"center"}),r?.focus(),o.reportValidity();return}return t()}var Ll=Symbol("session"),zq=/^\/(w|api|github)(\/|$)/;function Fl(e,t={}){let o=e?.split(".").reduce((r,n)=>r?.[n],El);return String(o??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(r,n)=>t[n]??"")}var Hq={...Qo,translate:Fl};function Bq(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function Gq(e="#app",t={}){let o=new Map,r=wl(t.fetch),n,i;function a(){let h=mt(),y={url(m){return m===void 0?i.currentRoute.value.fullPath:(i.push(m),y)},path(){return i.currentRoute.value.path},search(){return i.currentRoute.value.query}},g=new Proxy({},{get(m,w){let k=i.currentRoute.value.params[w];return Array.isArray(k)?k.join("/"):k}});return{http:r,...h,location:y,params:g,window,promises:kl,html:{trustAsHtml:m=>m},translate:(m,w)=>Promise.resolve(Fl(m,w)),quotaService:_l(r)}}function u(h){return{name:h.template,setup(){let y=Ko(lt(Ll),o);h.setup(y,a()),bl(h.template,y);let g=[];return()=>Jn[h.template](y,g)}}}i=_a({history:t.history||ba(),routes:Ga.map(h=>h.redirect?h:{path:h.path,component:u(h),meta:{title:h.title,preserveExplorer:h.preserveExplorer}})});let p=Ui({setup(){n=Ko(null,o),n.fmt=Hq,n.window=window,n.Math=Math,n.sanitize=m=>DOMPurify.sanitize(m??""),n.submitForm=$l,n.safeUrl=Bq;let h=a();Na(n,h.http,h.location,h.timeout),ts(Ll,n),He(()=>n.title,m=>{document.title=m||"Anonymous GitHub"});let y=[],g=m=>{let w=m.target.closest?.("a[href]");if(m.defaultPrevented||m.button!==0||m.metaKey||m.ctrlKey||m.shiftKey||m.altKey||!w||w.hasAttribute("download")||w.target&&w.target!=="_self"||w.dataset.toggle||w.getAttribute("href").startsWith("#"))return;let b=new URL(w.href,window.location.href);b.origin!==window.location.origin||zq.test(b.pathname)||(m.preventDefault(),i.push(b.pathname+b.search+b.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",g),ss(()=>document.removeEventListener("click",g)),()=>[Ne("header",{class:"app-header"},Jn["partials/header.htm"](n,y)),Ne("main",{class:"app-view align-items-stretch w-100"},Ne(Wo,null,{default:({Component:m,route:w})=>m?Ne(m,{key:w.meta.preserveExplorer?w.matched[0]?.path:w.path}):null})),Ne("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},n.toasts.map((m,w)=>Ne("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:w},[Ne("div",{class:"toast-header"},[Ne("strong",{class:"mr-auto"},m.title),Ne("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>n.removeToast(m)},"\xD7")]),Ne("div",{class:"toast-body"},m.body)])))]}});for(let[h,y]of Object.entries(Rl))p.component(h,y);return p.component("Tree",Al),p.component("PartialView",{props:["name","state"],setup(h){let y=[];return()=>Jn[h.name](h.state,y)}}),p.directive("field",Ml),p.directive("form",ql),p.directive("code-editor",Tl),p.directive("paper-scrollspy",Ol),p.use(i),i.beforeEach(async h=>{n?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await Wt("markdown"),/^\/(r|repository)\//.test(h.path)&&await Wt("org")}),i.afterEach(h=>{if(!n)return;n.title=h.meta.title,n.emit("routeChange",{title:h.meta.title}),n.emit("routeUpdate",{title:h.meta.title});let y=document.querySelector(".app-view");!h.meta.preserveExplorer&&y&&(y.scrollTop=0)}),p.mount(e),{app:p,router:i,state:n}}document.querySelector("#app")&&(window.anonymousApp=Gq());})(); /*! Bundled license information: @vue/shared/dist/shared.esm-bundler.js: diff --git a/test/vue-ui.test.js b/test/vue-ui.test.js index 85b3d78..2c3ed14 100644 --- a/test/vue-ui.test.js +++ b/test/vue-ui.test.js @@ -129,6 +129,17 @@ describe("Vue 3 UI", function () { }); } + it("selects the connected GitHub App by default beside the source URL", async () => { + ui = await browser("/anonymize", { "/github/connections": { appEnabled: true, appConnected: true, oauthConnected: true } }); + const panel = ui.window.document.querySelector(".anonymize-landing-inner .repo-access"); + expect(panel).not.to.equal(null); + expect(panel.querySelector('button[aria-pressed="true"]').textContent).to.include("Read-only GitHub App"); + [...panel.querySelectorAll("button")].find(b => b.textContent.includes("Legacy OAuth")).click(); + await delay(30); + expect(panel.querySelector('button[aria-pressed="true"]').textContent).to.include("Legacy OAuth"); + expect(ui.errors).to.deep.equal([]); + }); + it("preserves redactions, identifiers and pinned commits when switching connections", async () => { ui = await browser("/anonymize", { "/github/connections": { appEnabled: true, appConnected: true, oauthConnected: true },